[후기]구글 개발자와 함께하는 GDG Korea Android 컨퍼런스

주말인데도 역시! 강연장을 꽉 채울 정도로 많이들 오셨습니다. 다들 영어도 너무 훌륭하게 잘 하시고, 열정적으로 배울려는 모습 정말 멋있었습니다.

못 오신 분들을 위해 핵심적인 내용만 정리 해드리겠습니다.


▶ 10 things you need to know about Android and Google Play – Tony Chan (Google)

첫번째 세션 토니 챈 이라는 구글 개발자가 안드로이드와 구글 플레이에 대해 알아야 할 10가지 사항이라는 주제는 가지고 발표 했습니다.

사실 어제 구글코리아 사무실에서 만나서 이와 관련된 부분을 이야기를 나누었는데, 그중에 핵심적인 내용만 골라서 발표를 해주셨네요.

디자인에 관한 것들이 거의 대부분 이였는데 다른 플렛폼이 아닌 구글 가이드 라인에 맞도록 잘 좀 따라 주면 좋겠다는 내용입니다. 디자이너 분들이 오셔서 들었으면 좋았을것 같네요.

 다른 플렛폼의 UI를 모방하지 마라, 소프트메뉴인 경우 하단 버튼 메뉴를 사용 하지 마라.

리스트뷰의 아이템위에 또 다른 버튼을 넣지 마라. 특히 아이폰의 리스트뷰의 끝에 “>” 표시!

px과 dp의 차이점을 확실하게 보여주는 그림 입니다. 아주 쉽게 이해 되네요. dp는 어떠한 dpi의 사이즈에서도 같은 물리적인 크기를 보여준다는 개념입니다.

안드로이드는 기본적으로 dpi에 따라 스케일링을 지원한다.

 Back에 대한 이벤트를 강제적으로 막지마라. 예를 들어 종료 할때 다이얼로그로 종료할지 한번더 물어 본다 던가..

노티피케이션을 뛰울때 핵심적인 정보만 표시 해라. 그리고 프라이어퍼티도 가이드라인에 맞게 지켜달라.

 앱 퀄리티 체크리스트

구글 Play Service들.

 별점을 높이기 위해 이벤트나 링크를 유도하는 것은 문제있다. 정책에 맞지 않으면 앱이 내려갈 수도 있으니 꼭 지켜달라.

▶ Google+ for Mobile Developers – Chris Cartland (Google)

Chris Cartland 구글 개발자분이 크롬북으로 발표를 진행 해주셨습니다.

Google+ 에 API, SDK대한 설명..

페이스북 SSO와 같이 서드파티에 대한 로그인 기능지원입니다. 앱설치부터 실행까지 가능하다는점도 있습니다.

IOS도 지원하는데, 모두 안드로이드 개발자 분들 이기 때문에 패스하는 모습만 기억이 남네요;;;;

자세한 사항은 https://developers.google.com/+/quickstart/android

 

▶ 헐리우드 액션 바 – 김태환 (Vingle)

액션바 사용시 탭바와 같이 쓰면 가로세로 모드에 따라서 최적의 뷰를 만들어 준다,

액티비티에 액션바가 있을떄 각각의 플레그먼트별로 디자인을 바꾸고 싶다면
각각의 플레그먼튼에 액션바에 대한 스타일을 지정해놓은 다음 플레그먼트 매니저의  onBackStackChageListener를 통해서 플레그먼트 변화를 알 수 있다.
리스너 한번 쓰고 없애자. 계속 호출 되면 문제가 있으니까.

 

▶ 안드로이드용 백엔드 앱 개발하기 – 고강태 (Thinkbee)

  • node.js

javascript로 서버프로그래밍을 할 수 있다. 다양한 플렛폼 지원(윈도우, IOS)
npm을 통해서 라이브러리 제공(2만 4천개)

mongodb

  • baas.io
    kth에서 만든 것
    국내 현실을 위해 만들어 졌다
    open api를 쉽게 구축 할 수 있다.
    android sdk제공으로 쉽게 구현 (os 2.2~ 이상 )

 

▶ 비동기 처리를 위한 Loader – 김기완 (IdeaFork)

안드로이드 프레임웍 (GUI) 싱글쓰레드
GUI는 데드락, 동기화등의 이유로 멀티쓰레드로는 구현이 어렵다.

VIew를 새로운 쓰레드로 동작시 Exception이난다. 반드시 메인쓰레드(handler post)를 통해 그려져야 한다.

  • AsyncTask

~os 1.5 단인스레드 순차 실행
1.6 ~ 스레드 풀에 의한 멀티스레드
3.0~ 다시 단일스레드에서 순차 실행(멀치스레드 실행를 위해 onExecuteonExecuton()메서드로 실행)

문제점: 화면 회전시 액티비티를 재실행 하게 되는데, 회전전 백그라운드로 실행시 회전 후 다시 백그라운드가 호출 되게 되는 문제가 있다.

  • save instance state 구현
    반드시 구련 해라
    백그라운드 진입시 메모리 부족할 경우 죽인다.
    기존 죽이는 시간이 30분 인지 알았는데, 젤리빈은 0으로 되어 있다, 메모리가 높으리 우선 순위에 맞긴다.

onSaveins….(), onRetain…()

  • Loader
    Activity와 Fragment에서 원활한 비동기 데이터 로딩을 위해 OS 3.0 부터 등장 ( support lib v4를 통해 하위 버전 지원)

contentObserver를 통한 데이터 변경 감지 (컨텐트 프로바이더 리스트뷰 자동 갱신)
화면 회전 이슈 해결 구현 (onStop()시 회전하는지 백그라운드로 나가는지에 대한 관리가 철저하다)

AsyncTaskLoader를 확장 해서 사용(스로틀링 시간 지정, 최소 작업 시간 지정)
cursorLoader contentObserver를 구현하여 데이터 변경을 감지 하면 자동으로 다시 로드한다.

  • LoaderManager
    activity, fragment모두 지원

 

실행
initLoader
최초 실행, 백그라운드 로드

restartLoader
항상 백그라운드로

 

  • LoaderCallbacks

onCreateLodaer()
새로운 Loader가 필요 할때 호출된다.

onLoadFinished()
완료시 호출, 파라미터로 결과값을 넘겨준다.

onLoaderReset()
Loader가 리셋되어 가진 데이터를 더이상 사용 할수 없을 때 호출된다. 자원 해제

http://github.com/hi5pma/Loader… (예제)

CursorLoad와 CursorAdapter를 같이 쓰는 경우 중복으로 리쿼리 되므로  CursorAdapter의 AutoRequery를 꺼야 된다.

LoaderManager없이 Loader사용 가능하다. Cancel기능(16부터 사용가능)

아쉬운점

PreferenceActivity 에서는 사용 할 수 없다.

버그: Fragment에서 화면 회전이 일어 날때 onActivityCreated() 에서 initLoader()를 호출 하면 onLoadFinished()가 두번 호출 되는 버그가 있다.
=>Flag로 해결 하자.

 

 

▶ 안드로이드 뷰 렌더링의 이해 – 김용욱 (Thinkware)

기존의 호환성을 유지하면서 최상의 조건의 애니메이션을 만들자.

설정 – 개발자 옵션 (show GPU overDrawer 활성 – 4.2이상 Debug앱 만 가능)
불필요한 드로잉 발생을 알려 준다.

blue 1x
green 2x
light red 3x
dark red 4x 이상

가장 이상적인건 red색이 나오지 않으면 좋다.

우리의 소원은 2x

윈도우 배경 1회
뷰 배경 1회

효과적으로 뷰 그리기
윈도우 배경 제거

theme: windows:Background@null == code: getwindow().setBackground(null)

투명으로 지정해도 한번 그리게된다.

하드웨어 가속
android:hardwareAccelerated = “true”
높은 버전일수록 디폴트는 true인데 기기별로 다르다. 그래서 명시적으로 적어 주자.

한프레임 16ms를 지켜야 된다. 초당 60프레임이 나오기 위해

에니메이션을 빠르게 하는 방법 (젤리빈)

=>DisplayList Properties를 쓰자
alpha value,  translaation xy, scale xy, rotation xy

ObjectAnimator
ObjectAnimator.ofFloat(myObk, “alpha” ….).start();

ViewPropertyAnimation 이게 좀더 편리 하게 쓸 수 있다.(뷰에서만 쓸수 있다)

애니메이션 구현시 진저브레드 이하:  레거시 애니메이션, 이후 : 새로운 버전의 애니메이션을 쓰자.

SurfaceView(+GL)는 알파, 확대등 제한적인다.
대안: TextureView (젤리빈 이상)

앞으로 TextureView를 많이 쓰게 될것이다. 공부좀 해두면 좋을 것이다.

“[후기]구글 개발자와 함께하는 GDG Korea Android 컨퍼런스”에 대한 7개의 생각

  1. 저도 여기 갔다왔는데 정리 정말 잘 하셨네요^^ 잘 읽고 갑니다. 감사합니다.

  2. 저도 그날 갔었는데, 잘 정리해주셔서 감사합니다..

    중간에 DP에 대한 사진을 제 블로그에서 써도 될까요?

    http://benelog.egloos.com/3017439 에 포스트에 올렸는데 출처를 명기했지만 혹시나 원하시지 않는다면 삭제하도록 하겠습니다..

댓글 남기기