이동식 저장소

[Android Studio] Flamingo 신기능 정리 본문

Primary/Android

[Android Studio] Flamingo 신기능 정리

해스끼 2022. 12. 7. 15:48

현재 Canary 9 버전인 Android Studio Flamingo에 추가된 기능을 살펴보자. 내가 개발할 때 체감할 수 있을 만한 내용만 선별하여 정리했다. 아직 개발 초기 단계인 만큼 기능이 계속 추가될 수 있는데, 가능한 한 최신 내용으로 갱신할 계획이다.

 

웬만하면 canary는 안 쓰는 편이지만, Android Dev Summit 2022에서 알게 된 기능을 체험해 보고 싶어서 사용하고 있다.

Network Inspector traffic interception

Flamingo Canary 1 버전부터 Network Inspector가 모든 네트워크 트래픽을 보여준다.

응답이 외계어인 이유는 인코딩이 깨졌기 때문이다. DB에는 정상적으로 저장된다.

 

그 밖에도 커스텀 rule을 만들어 특정 응답 코드나 헤더가 주어질 때 앱이 어떻게 동작하는지 검사할 수도 있다. 정확히는 rule에서 정의한 특정 규칙을 만족하는 응답의 response code, 헤더, body 등을 수정할 수 있는 기능으로, 매개변수를 하나씩 바꿔가면서 앱의 동작을 확인할 수 있다.

 

뭔가 엄청난 기능 같은데, 당장 활용하기에는 내 앱들이 너무 간단하다. 그래도 API 개발할 때 크게 도움될 만한 기능이니 잘 기억해 둬야겠다.

Module level ``app.gradle``에 namespace를 정의해야 함

Flamingo 업데이트는 아니지만, 원문에 breaking change라고 적힌 걸 보니 중요한 업데이트인 듯하다.

AGP 8.0.0-alpha03부터 manifest가 아닌 module-level ``build.gradle`` 파일에 namespace를 선언해야만 한다. Namespace는 모듈의 base 패키지명을 나타내는 값이다. (더 보기)

android {
    namespace = "com.example.myapp"
    
    // ...
}

Tools - AGP Upgrade Assistant를 사용하면 편리하게 namespace를 옮길 수 있다.

JDK 17 동봉

Canary 3 버전부터 JDK 17이 Android Studio와 함께 제공된다. Embedded JDK를 사용하도록 설정되었다면 JDK 17 버전이 사용된다. 

SDK Upgrade Assistant

Canary 6 버전에서 Android SDK Upgrade Assistant가 추가됐다. ``targetSdkVersion``을 높일 때 해당 버전의 중요한 변경 사항과 대응법을 알려준다. Tools - Android SDK Upgrade Assistant에서 볼 수 있다.

다만 모든 변경사항을 알려주지는 않는다. 모든 변경사항을 보고 싶다면 이 링크를 참고하자.

Project template 업데이트

새로운 안드로이드 프로젝트를 만들 때, 기본적으로 Material 3 기반의 Compose 프로젝트가 생성된다. Material 2도, View도 아닌 Material 3 + Compose라는 최신 기술의 조합이다. 구글에서 대놓고 밀어주는 모습이다.

Compose Live Edit 모드 추가

Live Edit에 자동 모드와 수동 모드가 추가되었다. 수동 모드에서는 코드를 ``Ctrl`` + ``S``로 저장할 때에만 변경 사항이 적용된다. 자동 모드에서는 코드를 작성한 즉시 변경 사항이 적용된다. 기본값은 수동 모드이다.

 

File - Settings - Editor - Live Edit에서 모드를 설정할 수 있다. 아예 Live Edit을 끄고 싶다면 None을 선택하면 된다.

Gradle Version Catalog 지원

Canary 7 버전부터 Gradle Version Catalog를 지원한다. ``.toml`` 파일에 작성한 카탈로그만 지원하며, ``settings.gradle``은 지원하지 않는다.

 

[Gradle] Version Catalog로 라이브러리 관리하기

모듈을 여러 개 작성하다 보면 ``build.gradle`` 파일이 복잡해지곤 한다. 같은 라이브러리를 여러 번 작성하다 보면 오타가 날 수도 있고, 버전 관리가 힘들어지기도 한다. 당장 위의 ``:database`` 모듈

thinking-face.tistory.com

다음과 같이 에디터에서 자동 완성을 지원하며,

Project Structure 창에서 버전 변수를 관리할 수 있다.

아쉽게도 아직 라이브러리 업데이트를 알려주지는 않는 듯하다. Flamingo 베타 버전에서 추가된다고 들었던 거 같은데..

Compose Tracing

System profiler에서 어떤 composable이 실제로 recompose되는지 대략적으로 확인할 수 있다. System Trace Recording을 보면 된다.

정확히 어떤 composable 함수가 recompose되는지는 확인할 수 없다. 말 그대로 대략적인 호출 구조 정도만 볼 수 있다. 그나마 시간이 오래 걸리는 recomposition을 파악할 수 있는 정도?

Comments