๋ฐ˜์‘ํ˜•

compose 14

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋งŒ๋“ค๊ธฐ : GoogleMap(๊ตฌ๊ธ€๋งต) (feat Jetpack Compose)

์•ฑ์„ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ์ง€๋„๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์•ฑ์„ ๋งŒ๋“ค๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. GoogleMap API ๋“ฑ์„ ์ด์šฉํ•ด์„œ ์•ฑ์„ ๋งŒ๋“ค๊ฒŒ ๋˜๋Š” ๋ฐ, ์ด๋ฒˆ์—๋Š” Jetpack Compose ๊ธฐ๋ฐ˜์˜ GoogleMap ์„ ๊ตฌํ˜„ํ•ด ๋ณผ๊นŒ ํ•œ๋‹ค. ์•„์ง์€ ์˜ˆ์ „ java ์ฝ”๋“œ์—์„œ kotlin ์ฝ”๋“œ๋กœ ์ด์ „ ์ž‘์—…์„ ํ•˜๋Š” ์ค‘์ด๋ผ ๋ฏธ์™„์„ฑ์˜ ๋ชจ์Šต์œผ๋กœ ๋ณด์ด๋Š” ๋ฐ, ์ผ๋‹จ, ์•ฑ์— ๊ตฌ๊ธ€๋งต์„ ๋„ฃ์–ด ๋ณด์•˜๋‹ค. ๋จผ์ € gradle ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. // compose Maps implementation 'com.google.android.gms:play-services-maps:18.1.0' implementation "com.google.accompanist:accompanist-permissions:0.26.0-alpha" implem..

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋งŒ๋“ค๊ธฐ : navigation ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ? (๋‘๋ฒˆ์งธ ์ด์•ผ๊ธฐ)

https://flatteredwithflutter.com/using-compose-destinations%ef%bf%bc/ Using compose destinations๏ฟผ We will cover briefly: Current navigation in composeUsing compose destinations(Optional) Modify existing test cases Current navigation in compose We get Compose Navigation from the Jetpack Comโ€ฆ flatteredwithflutter.com navigation ์˜ ์ฒซ ์ด์•ผ๊ธฐ ๋‹ค์Œ... ๊ทธ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ํ’€์–ด๋‚ผ ๊ฒƒ์ธ๊ฐ€๋ฅผ ์ฐพ์•„ ๋Œ์•„๋‹ค๋‹ˆ๋‹ค๊ฐ€ ๋˜ ํ•˜๋‚˜์˜ ๋งํฌ๋ฅผ ์ฐพ์•˜๋‹ค. ์ด๊ฒƒ์„ ๋ณด๋ฉด์„œ ์ดํ•ด๋ฅผ ํ•˜๊ธฐ..

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋งŒ๋“ค๊ธฐ : navigation ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ?

https://medium.com/@ibrajix/how-i-built-this-nice-looking-app-using-jetpack-compose-3974db7eb9e How I built this nice looking app using Jetpack Compose Jetpack compose is the future of building UIโ€™s on Android. ibrajix.medium.com ์ด ๊ธ€์„ ์ฝ๊ณ  ์žˆ๋Š” ์ค‘์ด๋‹ค... kotlin์„ ์ด์šฉํ•ด์„œ ์•ฑ์„ ๊ตฌํ˜„ํ•ด ๋ณด๊ณ  ์žˆ๋Š” ์ค‘์ด๋ผ์„œ... ์ด๊ธ€์—๋Š” splash ํ™”๋ฉด์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋„ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๊ณ , navigation์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋„ ์žˆ๋Š” ๋“ฏํ•˜๋‹ค. navigation ์€ ์›๋ž˜ ์ด๋ถ„์ด ์ž‘์„ฑํ•œ ๊ฒƒ์€ ์•„๋‹Œ ๋“ฏํ•˜๊ณ , ์ € ๊ธ€์—์„œ ๋ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ splas..

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋งŒ๋“ค๊ธฐ : kotlin ๊ณผ compose ์˜ ํ˜ธํ™˜์„ฑ ์ง€๋„ ?

์•ฑ์„ ๋งŒ๋“ค๋‹ค ๋ณด๋‹ˆ ์ด๋Ÿฐ ๊ฑด๋„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋„ค... Caused by: org.gradle.api.GradleException: Compilation error. See log for more details ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๊ธฐ ์ „์— ์ง€๋‚˜๊ฐ€๋ฒ„๋ฆฐ ๋ฉ”์‹œ์ง€ ๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ทธ๊ฑด ์ž˜ ๋ณด์ด์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋นŒ๋“œ์ฐฝ์„ ์œ„์•„๋ž˜๋กœ ๋“œ๋ž˜๊ทธ๋ฅผ ํ•ด ๋ด๋„ ์ด๊ฒƒ๋งŒ ๋ด์„œ๋Š” ์•Œ ์ˆ˜๊ฐ€ ์—†๊ณ , ๊ตฌ๊ธ€๋ง์„ ํ•ด๋„ ๋”ฑํžˆ ๋งž๋Š” ์˜ค๋ฅ˜ ๋Œ€์ฒ˜ ๋ฐฉ์•ˆ์ด ๋ณด์ด์ง€ ์•Š๋Š” ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์‹œ ๋นŒ๋“œ๋ฅผ ํ•˜๋ฉด์„œ ๋ฉ”์‹œ์ง€๋“ค์ด ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก ์กฐ์ ˆ์„ ํ•ด์„œ ์ฐพ์€ ์ด์ „ ๋ฉ”์‹œ์ง€ ์•ž์—์„œ ๋กœ๊ทธ์˜ ์ž์„ธํžˆ ๋ณด๋ผ๊ณ  ํ–ˆ์œผ๋‹ˆ ์ž˜ ์ฐพ์•„ ๋ณด์•˜๋‹ค๋ฉด ํ—ค๋งค์ง€ ์•Š์•„๋„ ๋˜๊ฒ ์ง€๋งŒ, ์˜์–ด๊ฐ€ ์งง์€ ๊ฐœ๋ฐœ์ž๋Š” ๋งˆ์ง€๋ง‰ ๋ฉ”์‹œ์ง€๋ฅผ ๊ทธ๋ƒฅ ๊ตฌ๊ธ€๋ง์„ ํ•ด ๋ณด๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ใ…‹ใ…‹~ ๊ทธ๋ž˜์„œ ์ฐพ์€ ์ƒ์„ธ ๋ฉ”์‹œ์ง€์—๋Š” kot..

JetPack Compose : Cloud Storage์— ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  Firestore์— URL์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? (feat ๊ตฌ๊ธ€๋ง)

https://medium.com/firebase-tips-tricks/how-to-upload-an-image-to-cloud-storage-and-save-the-url-in-firestore-42711ca1df46 How to upload an image to Cloud Storage and save the URL in Firestore? A simple solution for saving an image to Firebase Storage, writing the URL in Firestore, and reading it back using Jetpack Compose. medium.com ์š”์ƒˆ ์ž‘์—…์ค‘์ธ ์•ฑ์— ์ ์šฉํ•ด ๋ณผ ์š”๋Ÿ‰์œผ๋กœ ์ด๋Ÿฐ ์ž๋ฃŒ๋ฅผ ์ฐพ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๋งˆ์นจ ์ฐพ์•˜๋‹ค. ์žŠ์„ ๊นŒ ์‹ถ์–ด ๋งํฌ๋ฅผ ๊ฑธ์–ด๋‘..

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋งŒ๋“ค๊ธฐ : Compose Navigation ... ์ธํ„ฐ๋„ท ํŽŒ.

https://medium.com/@cybercoder.naj/compose-navigation-in-3-minutes-5cff3c57c34e Compose Navigation in 3 Minutes Quick guide for navigation between composables in a Compose project medium.com ๋‚˜๋ฆ„๋Œ€๋กœ ์ด์ œ ๋ฐฐ์›€์„ ์ •๋ฆฌํ•ด ๊ฐ€๊ณ  ์žˆ๊ธฐ๋Š” ํ•˜๋‚˜, ์•„์ง๋„ ๊ฐˆ ๊ธธ์ด ๋ฉ€์–ด ๋ณด์ด๊ธฐ๋Š” ํ•˜๋‹ค. ์˜ค๋Š˜์€ navigation ์„ ๊ตฌํ˜„ํ•ด ๋ณผ ์ค€๋น„๋ฅผ ํ•ด์•ผ ๊ฒ ๋‹ค. ์ด๊ธ€์„ ์ฝ์–ด ๋ณด๋ฉด์„œ ๋ง์ด๋‹ค. ์ด์ „ posting ์—์„œ ๊ตฌํ˜„ํ•ด ๋ณด๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ๋“ค์€ ์•„์ง ๋ฏธ ์™„์„ฑ์ธ์ง€๋ผ, ๊ธ€๋กœ ์˜ฎ๊ฒจ ์˜ค๊ธฐ์—๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์–ด ๋ณด์ธ๋‹ค. ์ž˜ ์ฝ์–ด ๋ณด๊ณ  ์˜ค๋Š˜๋„ ๋„์ „ !!! 2022.05.28 ์ฝ”๋”ฉ์œผ๋กœ ์˜ฎ๊ฒจ ๋ณด๋ฉด์„œ... ..

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋งŒ๋“ค๊ธฐ : Splash screen ๋งŒ๋“ค์–ด ๋ณด๊ธฐ (feat ์ธํ„ฐ๋„ท ํŽŒ)

https://itnext.io/a-comprehensive-guide-to-android-12s-splash-screen-api-644609c811fa A Comprehensive Guide to Android 12โ€™s Splash Screen API For years Android Devs have always resorted to using a windowBackground or Activity or Fragment for their splash screen. Using theโ€ฆ itnext.io ์Šคํ”Œ๋ž˜์‰ฌ ํ™”๋ฉด : ์•ฑ์ด ์‹คํ–‰ ๋˜๊ธฐ ์ „์— ๋กœ๋”ฉ์ค‘ ๋ณด์ด๋Š” ํ™”๋ฉด ( ์•ฑ์ด ์ฒ˜๋ฆฌ ๋˜๋Š” ๋™์•ˆ ๋ณด์ด๋Š” progressbar ์™€๋Š” ๋‹ค๋ฅธ ...) ์˜ค๋Š˜์€ ์ธํ„ฐ๋„ท์—์„œ ํผ์˜จ ๊ธ€ ํ•˜๋‚˜๋ฅผ ์˜ฌ๋ ค ๋ณธ๋‹ค. ์š”์ƒˆ ๋ฐฐ์šฐ๋Š”์ค‘์ธ jetpa..

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋งŒ๋“ค๊ธฐ : Jetpack Compose ์—์„œ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ์ €์žฅํ•ด ๋ณด๊ธฐ

์•ฑ์„ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ํ”„๋กœํ•„ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ณด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฐ„ํ˜น ์ƒ๊ธด ๊ฒŒ ๋œ๋‹ค. ์˜ค๋Š˜์€ compose์„ ์ด์šฉํ•œ ๊ตฌํ˜„์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ํ”„๋กœํ•„ ์‚ฌ์ง„์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ณผ์ •์„ ๊ตฌํ˜„ํ•ด ๋ณด๊ณ ์ž ํ•œ๋‹ค. ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•ด ๋ณผ ์˜ˆ์ •์ด๋‹ค. ์ „์ฒด ์†Œ์Šค์˜ ์ผ๋ถ€๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌํ˜„์ด ๋˜์—ˆ๋‹ค. @Composable private fun mainContent(padding: Modifier) { Column(modifier = Modifier .fillMaxHeight() .fillMaxWidth() .padding(16.dp), verticalArrangement = Arrangement.Top, horizontalAlignment = Alignment.Start ) { var imageUri by ..

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋งŒ๋“ค๊ธฐ : ์ฑ„ํŒ…์ฐฝ ๋งŒ๋“ค์–ด ๋ณด๊ธฐ (Jetpack Compose ์— AndroidView Binding)

Compose์„ ํ™œ์šฉํ•œ ์•ฑ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋™์•ˆ์— ์ด์ „์— ๋งŒ๋“ค์—ˆ๋˜ layout ์„ ํ™œ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด... Androind ViewBinding์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ๋‹ค. https://developer.android.com/jetpack/compose/interop/interop-apis?hl=ko ์ƒํ˜ธ ์šด์šฉ์„ฑ API | Jetpack Compose | Android Developers ์ƒํ˜ธ ์šด์šฉ์„ฑ API ์•ฑ์— Compose๋ฅผ ์ฑ„ํƒํ•˜๋Š” ๋™์•ˆ Compose์™€ ๋ทฐ ๊ธฐ๋ฐ˜ UI๋ฅผ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์—๋Š” Compose๋กœ์˜ ์ „ํ™˜์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” API, ๊ถŒ์žฅ์‚ฌํ•ญ ๋ฐ ํŒ์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. Android ๋ทฐ์˜ Compose developer.android.com ๊ตฌํ˜„์„ ์‹œ์ž‘ํ•ด ๋ณด๋ฉด, ๋จผ์ € gr..

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋งŒ๋“ค๊ธฐ : ์ฑ„ํŒ… ๋ฐฉ ๋งŒ๋“ค์–ด ๋ณด๊ธฐ (feat : jetpack compose)

์˜ค๋Š˜์€ firebase์˜ real time database์— ์ฑ„ํŒ…๋ฐฉ ๊ฐœ์„ค์„ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ณด์•„์•ผ๊ฒ ๋‹ค. ๋จผ์ € ์ €์žฅํ•  ์ฑ„ํŒ…๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ฒด๋ฅผ ๊ตฌํ˜„ํ•ด ๋ณด์ž. import java.util.* data class ChatRooms( var chatRooms:String = "", var chatTitle:String = "", var roomOwner:String = "", var chatNo:String = "" ) ๋“ค์–ด๊ฐ€๋Š” ํ•ญ๋ชฉ์€ ๋ฐฉ ์ด๋ฆ„, ๋ฐฉ์ œ๋ชฉ, ๋ฐฉ ๊ฐœ์„ค์ž, ๋ฐฉ ๋ฒˆํ˜ธ(์ด๊ฑด key๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ) firebase์˜ realtime database ์—ฐ๋™์„ ์œ„ํ•œ ์ค€๋น„๋Š” ์ด์ „์— posting ํ–ˆ๋˜ ๊ธ€์ด๋‚˜, ๊ตฌ๊ธ€์—์„œ ์ฐพ์•„๋ณด๋ฉด ๋งŽ์ด ๋‚˜์˜ค๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ƒ๋žต... ๋‹ค์Œ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„..

๋ฐ˜์‘ํ˜•