• 안드로이드 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
#스하리1000명프로젝트,
A veces es difícil hablar con trabajadores extranjeros, ¿verdad?
¡Hice una aplicación sencilla que ayuda! Escribes en tu idioma y los demás lo ven en el suyo.
Se traduce automáticamente según la configuración.
Súper útil para chatear fácilmente. ¡Echa un vistazo cuando tengas la oportunidad!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416