• 컴포즈 컴파일러 그래들 플러그인은 안드로이드 개발을 위한 현대적인 UI 툴킷인 제트팩 컴포즈의 설정과 구성을 단순화한다. 코틀린 버전 2.0 이상이 필요하며 libs.versions.toml 파일에서 컴포즈 컴파일러에 대한 참조를 제거하고 플러그인 섹션에 새로운 종속성을 추가하고 프로젝트의 루트 build.gradle.kts 파일에 플러그인을 적용하는 것을 포함한다.
• Compose를 사용하는 모듈의 경우, 플러그인은 각 모듈의 build.gradle.kts 파일에 적용되어야 한다. 개발자들은 또한 모듈의 build.gradle.kts 파일에 컴포즈 컴파일러 블록을 추가함으로써 그래들 플러그인을 사용하여 컴포즈 컴파일러를 구성할 수 있다.
• 플러그인은 강력한 스킵 모드를 가능하게 하고, 보고 목적지를 지정하고, 안정성 구성 파일을 정의하는 등 다양한 구성 옵션을 제공한다. 문서는 사용 가능한 옵션의 포괄적인 목록을 제공합니다.
• 안드로이드 14는 개발자가 2024년 8월 31일까지 SDK 버전 34를 대상으로 앱을 업데이트해야 하는 전경 서비스 변경 사항을 도입한다. 한 가지 중요한 변화는 전경 서비스 유형을 지정하는 것이 이제 의무화되어 장치 전반에 걸쳐 올바른 사용과 일관성을 보장한다는 것입니다.
• 전경 서비스는 가시적인 작업을 수행하며 시스템 알림을 표시해야 합니다. 예를 들어 음악 플레이어, 피트니스 앱 및 내비게이션 앱이 있습니다.
• 안드로이드 14는 헬스, 리모트 메시징 등 새로운 포어그라운드 서비스 유형을 도입하고 데이터싱크 유형을 감가상각한다. 개발자들은 AndroidManifest 파일에서 적절한 유형을 선언하고 서비스의 기능에 따라 특정 권한을 요청해야 합니다.
• 포그라운드 서비스를 시작할 때 개발자는 ServiceCompat.startForeground()로 전화하여 올바른 포그라운드 서비스 유형을 지정해야 합니다. 그렇게 하지 않으면 예외가 됩니다.
• 각 전경 서비스 유형에는 특정 허가 요구 사항이 있습니다. 개발자들은 예외를 피하기 위해 서비스를 시작하기 전에 이러한 권한을 요청하고 부여받아야 합니다.
• 안드로이드 13은 알림 게시를 위한 런타임 허가를 도입했다. 개발자는 POST_NOTIFICATIONS 허가를 요청하고 사용자가 허가를 승인하거나 거부하는 경우를 처리해야 한다.
• 포어그라운드 서비스 타입을 사용하는 구글 플레이 콘솔에 앱 업데이트를 게시할 때 개발자들은 앱의 기능에 대한 설명, 작업이 중단되면 사용자 영향, 기능을 보여주는 비디오를 포함한 추가 세부 정보를 제공해야 한다.
개발자 페이지에 나와 있는 wiki 정보는 해당 library 을 활용하는 데 도움이 됩니다. 끝까지 다 읽어 보면 좋기는 하겠지만, 긴급(?) 하게 작업을 해야 하는 경우에는 꼭 그럴 필요보다는 요약된 정보(?)를 활용해 보시는 것이 도움이 될 수 있습니다.
2. build gradle 설정
dependencies { // For Jetpack Compose. implementation("com.patrykandpatrick.vico:compose:2.0.0-alpha.22")
// For `compose`. Creates a `ChartStyle` based on an M2 Material Theme. implementation("com.patrykandpatrick.vico:compose-m2:2.0.0-alpha.22")
// For `compose`. Creates a `ChartStyle` based on an M3 Material Theme. implementation("com.patrykandpatrick.vico:compose-m3:2.0.0-alpha.22")
// Houses the core logic for charts and other elements. Included in all other modules. implementation("com.patrykandpatrick.vico:core:2.0.0-alpha.22")
// For the view system. implementation("com.patrykandpatrick.vico:views:2.0.0-alpha.22") }
앱 수준의 gradle 파일에는 이런 정도의 기술이 필요 합니다. android studio 가 korala 버전으로 넘어가고 gradle 버전 8.5 이상으로 넘어가면서 version 관리를 version catalog을 사용하는 방식으로 변경이 되면서 작성하는 방법이 달라지고 있습니다. 처음 보았을 때는 불편하지 않을까 하는 생각이 들기도 했지만, 익숙해지면 관리가 수월해집니다.
이번에는 version catalog 방식의 gradle 정보을 보겠습니다.
먼저 grable 폴더에 위치 하는 libs.versions.toml 파일의 작성 예시입니다. 버전은 이 글을 작성하는 시점이기 때문에 달라질 수 있습니다.
[versions] vico = "2.0.0-alpha.22"
[libraries] # For Jetpack Compose. vico-compose = { group = "com.patrykandpatrick.vico", name = "compose", version.ref = "vico" }
# For `compose`. Creates a `ChartStyle` based on an M2 Material Theme. vico-compose-m2 = { group = "com.patrykandpatrick.vico", name = "compose-m2", version.ref = "vico" }
# For `compose`. Creates a `ChartStyle` based on an M3 Material Theme. vico-compose-m3 = { group = "com.patrykandpatrick.vico", name = "compose-m3", version.ref = "vico" }
# Houses the core logic for charts and other elements. Included in all other modules. vico-core = { group = "com.patrykandpatrick.vico", name = "core", version.ref = "vico" }
# For the view system. vico-views = { group = "com.patrykandpatrick.vico", name = "views", version.ref = "vico" }
// compolse 에서 구현 되는 챠트 입니다. @Composable fun LineGraph() { val modelProducer = remember { CartesianChartModelProducer.build() } // 이 부분에서는 반복적으로 무의미한 숫자을 생성해 냅니다. // 아직 데이터가 없는 그래프 이기 때문에 임시 데이터을 생성해 내기 위해서 입니다. LaunchedEffect(Unit) { withContext(Dispatchers.Default) { while (isActive) { modelProducer.tryRunTransaction { /* Learn more: https://patrykandpatrick.com/vico/wiki/cartesian-charts/lay ers/line-layer#data. */ // 라인 챠트을 그리기 위해서 준비 합니다. lineSeries { repeat(Defaults.MULTI_SERIES_COUNT) { series( List(Defaults.ENTRY_COUNT) { Defaults.COLUMN_LAYER_MIN_Y + Random.nextFloat() * Defaults.COLUMN_LAYER_RELATIVE_MAX_Y } ) } } } // 이 부분을 풀면 반복 시간이 되었을 떄 다시 실행 됩니다. //delay(Defaults.TRANSACTION_INTERVAL_MS) } } }
// Color(0xffb983ff), Color(0xff91b1fd), Color(0xff8fdaff) // 챠트는 3개의 데이터을 이용해 그리는 것이라 구분 하기 위해서 color 을 선언 합니다. private val chartColors = listOf(smallGreen, smallYellow, largeGreen) // 챠트 하단에 표시될 제목 입니다. 데이터가 3개 이기 때문에 제목도 3개을 넣었습니다. private val legendString = listOf(R.string.walkStep,R.string.calorieBurn,R.string.exerciseTime)
이렇게 간단한 설명을 달아 보았습니다. 개발자 페이지를 잘 보면 상세한 정보를 보실 수 있을 듯합니다만, 속성(?)으로 차트 그리기가 필요하다면, 이 정도의 정보만으로도 멋있는 line chart을 그려 볼 수 있습니다.
4. 실행 예제
chart 예제
이렇게 그려지는 chart 을 보실 수 있습니다. 실행되는 앱의 전체 화면은 고객 보호를 위해서 이 부분만 참조하도록 하겠습니다.
#스하리1000명프로젝트,
In Korea verloren? Auch wenn Sie kein Koreanisch sprechen, hilft Ihnen diese App dabei, sich problemlos fortzubewegen.
Sprechen Sie einfach Ihre Sprache – es übersetzt, sucht und zeigt Ergebnisse in Ihrer Sprache an.
Ideal für Reisende! Unterstützt mehr als 10 Sprachen, darunter Englisch, Japanisch, Chinesisch, Vietnamesisch und mehr.
Probieren Sie es jetzt aus!
https://play.google.com/store/apps/details?id=com.billcoreatech.opdgang1127