๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๐Ÿ Client/Android3

[Android] Jetpack - Data binding Data binding์€ ๋ ˆ์ด์•„์›ƒ์˜ UI ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์•ฑ์˜ ๋ฐ์ดํ„ฐ์™€ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ViewModel ๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ฐธ์กฐํ•ด ํ…์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ• ๋•Œ, ๊ธฐ์กด์—๋Š” ์ง์ ‘ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ํ…์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ–ˆ๋‹ค. tv.text = viewModel.getUserName() Data binding์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ๋ ˆ์ด์•„์›ƒ ํŒŒ์ผ์—์„œ ์ง์ ‘ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•ด ํ…์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ๋‹ค. Data binding์„ ํ†ตํ•ด ๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ(boilerplate code)๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๋”๋ณด๊ธฐ boilerplate code ? ๋น„์Šทํ•œ ํ˜•ํƒœ์—์„œ ์ตœ์†Œํ•œ์˜ ๋ณ€๊ฒฝ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์žฌ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ๋œปํ•œ๋‹ค. ์ค‘๋ณต๋˜์–ด ๋งŽ์€ ์–‘์˜ ์ฝ”๋“œ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ , ๋ฆฌํŒฉํ† ๋ง์‹œ ๋ฒˆ๊ฑฐ๋กœ์›Œ.. 2020. 11. 25.
[Android] MVVM ๋””์ž์ธํŒจํ„ด, Jetpack ์•„ํ‚คํ…์ณ Android ๊ฐœ๋ฐœ์ž | Android DevelopersJetpack์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ด€์‹ฌ ์žˆ๋Š” ์ฝ”๋“œ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒ์žฅ์‚ฌํ•ญ ์ค€์ˆ˜, ์ƒ์šฉ๊ตฌ ์ฝ”๋“œ ์ œ๊ฑฐ, ๋ชจ๋“  Android ๋ฒ„์ „๊ณผ ๊ธฐ๊ธฐ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ ์ž‘์„ฑ์„ ๋•๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. Jetpack ์€ androidx.* ํŒจํ‚ค์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ œ๊ณต๋œ๋‹ค. ์ด๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹Œ ์ด์œ ๋Š” ํ•˜์œ„ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜ํ•˜๊ธฐ ์œ„ํ•จ์ด๋ผ๊ณ  ํ•œ๋‹ค. Jetpack ์€ ํฌ๊ฒŒ 4๊ฐœ์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.Foundation(๊ธฐ์ดˆ)Architecture(์•„ํ‚คํ…์ณ)Behavior(๋™์ž‘)User Interface(์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค) ๊ทธ ์ค‘ Architecture ์—๋Š” ์•„๋ž˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ์†ํ•œ๋‹ค. Data BindingLifecyclesLiveDataNavigationPa.. 2020. 11. 25.
[Android/Kotlin] BLE Device ์Šค์บ”์‹œ ์œ„์น˜ ๊ถŒํ•œํ—ˆ์šฉ (Fine vs Coarse) ์ตœ๊ทผ์— ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•ด์„œ BLE ํ†ต์‹ ๊ณผ ์ฐจํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค. BLE Device ๋ฅผ ์Šค์บ”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ„์น˜ ๊ถŒํ•œ์„ ํ—ˆ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์œ„์น˜ ๊ถŒํ•œ์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•ด ํ—ท๊ฐˆ๋ ธ์—ˆ๋‹ค. ์ผ๋‹จ, Activity ๊ฐ€ ์•„๋‹Œ AppCompatActivity ๋ฅผ ์ƒ์†๋ฐ›์•˜์„ ๋•Œ ๊ถŒํ•œ ํ—ˆ์šฉ์„ ๋ฌผ์–ด๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), 1) arrayOf() ํ•จ์ˆ˜ ์•ˆ์— ์›ํ•˜๋Š” ์œ„์น˜ ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. LOCATION ๊ณผ ๊ด€๋ จ๋œ permission ์ข…๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ACCESS_FINE_LOCATION : GPS, ๋„คํŠธ์›Œํฌ๋ฅผ.. 2020. 11. 4.
728x90