Google for Mobile I/O RECAP 2018 (06)
06. Developer. 빠르고 세련된 Android 개발 - Android Jetpack & Android Studio
발표자 : 김태호 (Mobile Apps Technical Specialist, Online Partnership Group, Google)
세션설명 : 견고하고 현대적인 안드로이드 애플리케이션을 만드려면 어떻게 해야할까요? 세련되고 빠른 Android 앱을 만들기 위한 컴포넌트, 도구 및 지침들을 담고 있는 Android Jetpack과 Android Studio를 소개합니다.
Android Studio
Layout Inspector
참고 : https://developer.android.com/studio/debug/layout-inspector?hl=ko
Profile
참고 :
CPU : https://developer.android.com/studio/profile/cpu-profiler?hl=ko
Memory : https://developer.android.com/studio/profile/memory-profiler?hl=ko
Network : https://developer.android.com/studio/profile/network-profiler?hl=ko
Runtime
- Dalvik : 앱 Size가 중요하고, Heap Fragment 등의 이슈가 있음.
- ART : Performance 에 최적화
Language
Java, Kotlin 사용하며, 부분적인 Kotlin 개발이 가능함. Kotlin Lint 체크 지원.
Library & API
- AbsoluteLayout : 사용하지 말 것. 강조. 또 강조. 또 또 강조.
- LinearLayout : 간단한 경우 사용.
- FameLayout : 역시 간단히 사용.
- GridLayout : 권장하지 않음.
- RelativeLayout : 사용에 대한 비용이 비쌈.
- ConstraintLayout : 권장하며 2.0 버전 나올 예정.
AdapterView
기존 ListView, GridView는 뷰홀더 패턴 직접 작성 등 처리 복잡하고 어려움.
RecyclerView가 다양한 레이아웃을 제공하며 사용하기 좋음.
Fragment
참고 : https://developer.android.com/reference/android/app/Fragment
This class was deprecated in API level 28. Use the Support Library
Fragment
for consistent behavior across all devices and access to Lifecycle.
Support Library에 있는 Fragment 사용 권장
- android.app.Fragment
- android.support.v4.app.Fragment (권장)
Activities
가능하다면 싱글 액티비티 권장
Architecture
참고 : https://developer.android.com/topic/libraries/architecture/
기존에는 권장하는 부분이 없었음. 현재는 AAC(Android Architecture Components) 로 가이드 제공함.(필수는 아님)
Life Cycle
참고 : https://developer.android.com/topic/libraries/architecture/lifecycle
Callback 처리 등으로 액티비티나 프래그먼트가 heavy 해짐. AAC 에서 액티비티와 독립적으로 Life Cycle을 제공함.
Views and Data
참고 : https://developer.android.com/topic/libraries/architecture/viewmodel
ViewModel이 처리하며, 인스턴스만 Activity에서 관리
Data
참고 : https://developer.android.com/topic/libraries/architecture/room
Room 등에서 지원함.
Android Jetpack
참고 :
https://developer.android.com/jetpack/
https://android-developers.googleblog.com/2018/05/use-android-jetpack-to-accelerate-your.html
Guidance
Android X
참고 :
https://developer.android.com/topic/libraries/support-library/refactor
https://android-developers.googleblog.com/2018/05/hello-world-androidx.html
기존 Support Library (android.support.*)와 AAC(android.arch.*)를 AndroidX(androidx.*)로 패키지명 교체.
버전은 1.0.0으로 리셋되며 -v4, -v7 같은 네이밍 제거됨.
Old | New |
---|---|
android.support.** | androidx.@ |
android.databinding.** | androidx.databinding.@ |
android.design.** | com.google.android.material.@ |
android.support.test.** | (in a future release) androidx.test.@ |
android.arch.** | androidx.@ |
android.arch.persistence.room.** | androidx.room.@ |
android.arch.persistence.** | androidx.sqlite.@ |
Migration to Android X
Android Studio Canary 14 버전으로 Refactor
메뉴의 Refactor to AndroidX...
메뉴로 실행
그 외
AAR, JAR
D8 (Dex Compiler)
참고 : https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html
R8 (Proguard replacement)
SQL Query (@Query 애너테이션 사용)
참고 : https://developer.android.com/reference/android/arch/persistence/room/Query
Kotlin Lint check 지원
Q&A
시간 관계상 생략
'IT > 행사' 카테고리의 다른 글
[행사] Google for Mobile I/O RECAP 2018 참석기 - 08 (0) | 2018.06.29 |
---|---|
[행사] Google for Mobile I/O RECAP 2018 참석기 - 07 (0) | 2018.06.29 |
[행사] Google for Mobile I/O RECAP 2018 참석기 - 05 (0) | 2018.06.29 |
[행사] Google for Mobile I/O RECAP 2018 참석기 - 04 (0) | 2018.06.29 |
[행사] Google for Mobile I/O RECAP 2018 참석기 - 03 (0) | 2018.06.29 |