-
Android Native App 개발 - ④Android 2023. 4. 21. 16:12
들어가기 전에
Android Studio Download 페이지에서 Flamingo 버전으로 설치하도록 제시하고 있어 다운받고 프로젝트를 생성해보았다.
Android Studio 에서 Empty Activity를 생성해보니 폴더 구조와 파일 내용을 이해할 수 없어 Android Studio - Flamingo 와 Jetpack 라이브러리를 살펴보려고한다.
Android Studio Flamingo 버전은 Gradle 버전 3.2 ~ 8.0 까지 호환되는걸 볼 수 있다.
재밌는 정보가 있어 공유하자면,
2023.04.21 기준 ChatGPT 는 Android Studio 버전 Arctic Fox 를 최신 버전으로 알고 있다.
Android Studio 버전 Flamingo 무엇이 새로워졌나
UI Tools
Jetpack Compose and Material 3 templates
: Jetpack Compose는 이제 새 프로젝트에 권장되어 템플릿은 기본적으로 Jetpack Compose 및 Material 3을 사용한다.
Live Edit (Compose) experimental
: 코드 변경 사항을 연결된 장치 또는 에뮬레이터에 직접 푸시하여 Compose를 사용해 앱을 반복적으로 빌드한다.
파일 저장 또는 자동으로 변경 사항을 푸시하고 실시간으로 UI 업데이트를 확인할 수 있다. 라이브 편집은 실험적이며 편집기 설정에서 활성화할 수 있다. 설정 방법은 여기를 확인하자.
라이브 편집 Themed app icon Preview support
: 이제 도구 모음에서 시스템 UI 모드 선택기를 사용하여 배경화면을 전환하고 테마 앱 아이콘이 선택한 배경화면에 어떻게 반응하는지 확인할 수 있다. (참고: API 레벨 33 이상을 대상으로 하는 앱에 필요하다.)
다양한 배경화면에서 테마가 있는 앱 아이콘 미리보기 Dynamic color Preview
: 앱에서 동적 색상을 활성화 하고 @Preview *composable에서 새로운 배경 화면 속성을 사용하여 배경 화면을 전환하고 UI가 다양한 배경 화면에 어떻게 반응하는지 확인할 수 있다. (참고: Compose 1.4.0 이상을 사용해야한다.)
동적 색상 배경화면 미리보기 *composable: 둘 이상의 사물이 한데 합쳐질 수 있는 상태
Build
Build Analyzer task categorization
: 이제 빌드 분석기는 매니페스트, Android 리소스, Kotlin, Dexing 등과 같은 범주별로 작업을 그룹화한다.
범주는 기간별로 정렬되며 추가 분석을 위해 해당 작업 목록을 표시하도록 확장할 수 있다. 이렇게 하면 빌드 시간에 가장 큰 영향을 미치는 범주를 쉽게 알 수 있다.
작업마다 분류된 빌드 분석기 One-click automated profileable build and run
: 앱을 프로파일링할 때 디버깅 빌드 프로파일링을 피하고 싶을 것이다. 왜냐하면 개발 중에는 디버깅을 할 수 있어 좋지만 상용되는 앱에서는 결과가 왜곡될 수 있다. 때문에, 사용자가 실행하게 될 앱은 디버그를 안하고 빌드를 프로파일링해야 한다. 이제 원클릭 자동화 프로파일로 빌드 및 실행이 더욱 편리해졌다.
프로파일링 가능한 앱을 쉽게 구성하고 한 번의 클릭으로 프로파일링할 수 있다. 완전한 데이터로 앱 프로파일링을 선택하여 디버깅 빌드를 프로파일링하도록 선택 할 수 있다.
원클릭 자동화된 프로파일가능한 빌드 및 실행 Lint support for SDK extensions
: SDK 확장은 모듈식 시스템 구성 요소를 활용하여 이전에 릴리스된 API 수준에 대한 공개 SDK에 API를 추가한다.
이제 Lint 지원으로 SDK 확장 문제를 스캔하고 수정할 수 있다. Android Studio는 SDK 확장을 사용하여 실행되는 API에 대해 올바른 버전을 확인해 자동으로 생성한다.
SDK 확장에 대한 Lint 지원 Android Gradle Plugin 8.0.0
: Android Studio Flamingo는 Android Gradle 플러그인의 새로운 주 버전과 함께 제공된다. AGP(Android Gradle Plugin) 8.0.0 버전은 많은 동작 변경 사항과 Transform API 제거도 도입되었기 때문에 꼭 확인해야한다.
Inspect
Updates to App Quality Insights
: Firebase Crashlytics 의 비정상 종료 데이터를 Android Studio 에서 확인하고 조치를 취할 수 있다. AQI(App Quality Insights) 에서는 앱 버전, Crashlytics 신호, 기기 유형 또는 운영체제 버전별로 필터링 할 수 있다.
이번 업데이트로 Notes 창에서 문제를 닫거나 유용한 주석을 추가할 수 있다.
Notes 창 내에서 문제에 주석 달기 및 닫기 Network Inspector traffic interception
: 이제 Network Inspector 는 기본적으로 전체 타임라인에 대한 모든 트래픽 데이터를 표시한다.
상태 코드, 응답 헤더 및 본문과 같은 다양한 응답이 발생할 때 앱이 어떻게 작동하는지 테스트하는 데 도움이 되는 규칙을 만들고 관리한다. 규칙은 차단할 응답과 이러한 응답이 앱에 도달하기 전에 수정하는 방법을 결정한다. 각 규칙 옆에 있는 활성 상자를 선택하여 활성화 또는 비활성화할 규칙을 선택할 수 있다.
Network Inspector 트래픽 차단 Auto-connect to foreground process in Layout Inspector
: 이제 Layout Inspector 가 포그라운드 프로세스에 자동으로 연결된다. 더 이상 수동으로 클릭하여 앱에 첨부할 필요가 없다.
IntelliJ
IntelliJ Platform Update
: Android Studio Flamingo(2022.2.1)에는 IntelliJ 2022.2 플랫폼 릴리스가 포함되어 있으며, IDE 성능 개선, Metal API 덕분에 macOS에서 향상된 렌더링(rendering) 성능 등이 제공된다. 또한, Kotlin을 사용할 때 IDE 성능을 향상시켜 코드 강조 표시, 완성 및 사용 위치 찾기에 긍정적인 영향을 미친다.
요약
UI Tools
- 라이브 편집(작성) - 실험적
- 테마 앱 아이콘 미리보기 지원
- 동적 색상 미리보기
- Jetpack Compose 및 Material 3 템플릿
Build
- 빌드 분석기 작업 분류
- 프로파일가능한 원클릭 자동화된 빌드 및 실행
- SDK 확장에 대한 Lint 지원
- Android Gradle 플러그인 8.0의 브레이킹 체인지
Inspect
- 앱 품질 인사이트 업데이트
- Network Inspector 트래픽 차단
- Layout Inspector 에서 포그라운드 프로세스에 자동 연결
IntelliJ
- IntelliJ 플랫폼 2022.2 업데이트
더 자세한 내용은 여기를 확인하자.
Jetpack 라이브러리 살펴보기
Jetpack 라이브러리의 개수는 약 70개 이상으로 확인할 수 있다. 여기를 확인하자.(중복되어 작성된 라이브러리도 존재한다.)
아래와 같이 4개의 카테고리로 구성되어 있다.
- Foundation
: 앱 개발에 필요한 기본 구성 요소를 제공하는 라이브러리 (ex. AppCompat, Android KTX, Multidex 등) - Architecture
: 앱 아키텍처를 구성하는 라이브러리 (ex. ViewModel, LiveData, Room, Paging 등) - Behavior
: 앱의 특정 동작을 지원하는 라이브러리 (ex. Navigation, WorkManager, Preference 등) - UI
: 앱의 사용자 인터페이스를 개발하는 데 필요한 라이브러리 (ex. Fragment, RecyclerView, ViewPager2, ConstraintLayout 등)
각 카테고리에는 다수의 라이브러리가 있고 정확한 라이브러리 개수는 시간이 지남에 따라 계속 변할 수 있다.
사용할 Jetpack 라이브러리
- activity
: Activity에 기반하여 빌드된 구성 가능한 API에 액세스한다. - appcompat
: 이전 API 버전의 플랫폼에서 새 API에 액세스할 수 있다(대부분 Material Design 사용). - camera
: 모바일 카메라 앱을 빌드한다. - compose
: 모양과 데이터 종속 항목을 설명하는 구성 가능한 함수를 사용하여 프로그매틱 방식으로 UI를 정의한다. - compose.animation
: Jetpack Compose 애플리케이션에서 애니메이션을 빌드하여 풍부한 사용자 경험을 제공한다. - compose.compiler
: Kotlin 컴파일러 플러그인으로 최적화를 사용 설정하고 @Composable 함수를 변환한다. - compose.foundation
: 즉시 사용 가능한 구성요소를 사용해 Jetpack Compose 애플리케이션을 작성하고 기초를 확장해 나만의 디자인 시스템 요소를 빌드한다. - compose.material
: 즉시 사용 가능한 Material Design 구성요소로 Jetpack Compose UI를 빌드한다. 이는 Compose를 고급 수준에서 사용하는 첫 단계이며, www.material.io에 설명된 것과 동일한 구성요소를 제공한다. - compose.material3
: 차세대 Material Design인 Material Design 3 구성요소로 Jetpack Compose UI를 빌드한다. Material 3은 업데이트된 테마 설정 및 구성요소, Material You 맞춤설정 기능(동적 색상 등)을 포함하며 새로운 Android 12의 시각적 스타일 및 시스템 UI와 일관되도록 설계되었다. - compose.runtime
: Compose 의 프로그래밍 모델과 상태 관리를 위한 기본 구성요소이며, Compose 컴파일러 플러그인이 타겟팅하는 핵심 런타임이다. - compose.ui
: 레이아웃, 그리기, 입력 등 기기와 상호작용할 때 필요한 Compose UI의 기본적인 구성요소이다. - databinding
: 레이아웃의 UI 구성요소를 선언적 형식을 사용하여 앱의 데이터 소스에 결합한다. - fragment
: Activity 내에서 호스팅되는 여러 개의 독립적인 화면으로 앱을 분류한다. - hilt
: Dagger Hilt의 기능을 확장하여 androidx 라이브러리에서 특정 클래스의 종속 항목 삽입을 사용 설정한다. - lifecycle
: Activity나 Fragment의 현재 수명 주기 상태를 기반으로 동작을 조정할 수 있는 수명 주기 인식 구성요소를 빌드한다. - Material Design Components
: Android 용으로 맞춤설정이 가능한 모듈식 Material Design UI 구성요소이다. - navigation
: 인앱 UI를 빌드 및 구조화하고 딥 링크를 처리하며 화면 간 이동할 수 있다. - paging
: 페이지에 데이터를 로드하여 RecyclerView에 표시한다. - room
: SQLite 데이터베이스에서 지원하는 영구 데이터를 생성, 저장, 관리한다. - test
: Android 에서 테스트한다. - work
: 지연 가능한 제약 조건 기반 백그라운드 작업을 예약하고 실행한다. - transition
: 시작 및 종료 레이아웃에서 UI 모션에 애니메이션을 적용한다. - exifinterface
: 이미지 파일 EXIF(데이터) 태그를 읽고 쓴다. - media3
: 미디어 사용 사례를 위한 지원 라이브러리이다. - mediarouter
: 일반 사용자 인터페이스를 사용하여 원격 수신 기기에서 미디어 표시 및 재생을 사용 설정한다. - viewpager2
: 스와이프할 수 있는 형식으로 뷰 또는 프래그먼트를 표시한다. - appsearch
: 사용자를 위한 인앱 검색 기능을 빌드한다.
'Android' 카테고리의 다른 글
Jetpack compose Scaffold 와 Snackbar (0) 2023.05.03 Android Native App 개발 - ⑤ (0) 2023.04.25 Android Native App 개발 - ③ (0) 2023.04.17 Android Native App 개발 - ② (0) 2023.04.17 Android Native App 개발 - ① (0) 2023.04.11