๐Ÿ’ป ๊ฐœ๋ฐœ/Android 6

[Android] ์•Œ๋ฆผ ํด๋ฆญ์‹œ Activity, Fragment๋กœ ์ด๋™

๊ตฌํ˜„ ๋ฌธ์ œ ์•Œ๋ฆผ ํด๋ฆญํ•˜๋ฉด ํŠน์ • ํ™”๋ฉด์„ ๋„์–ด์ค˜์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• PendingIntent ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. Notification ์†์„ฑ์— Intent ์†์„ฑ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด ๋•Œ PendingIntent ๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค. ๋˜ํ•œ PendingIntent ๊ฐ์ฒด์— putExtra ๋กœ ํ™”๋ฉด ์ด๋™์œผ๋กœ ๋„์–ด์ค„ Fragment ์˜ ์‹๋ณ„์ž๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ MainActivity ๊ฐ€ onCreate ๋์„ ๋•Œ getStringExtra ๋กœ Fragment ์˜ ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ํ•ด๋‹น Fragment ๋กœ ์ „ํ™˜ํ•œ๋‹ค. ์ฝ”๋“œ - ReceiverService ์šฐ์„  ์ง€๋‚œ๋ฒˆ์— ๊ตฌํ˜„ํ–ˆ๋˜ ์ด๋ฒคํŠธ ์ˆ˜์‹  ์•Œ๋ฆผ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™”๋‹ค. // ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ–ˆ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆผ ์ „์†ก private fun occurEven..

[Android] ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์†Œ์ผ“ ํ†ต์‹ ์œผ๋กœ ์ด๋ฒคํŠธ ์ˆ˜์‹  ํ›„ ์•Œ๋ฆผ

๊ตฌํ˜„ ๋ฌธ์ œ ์กธ์—…ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์„œ๋ฒ„์—์„œ ํŠน์ •ํ•œ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ์ด๋ฒคํŠธ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ 2๊ฐœ์˜ ์•Œ๋ฆผ์„ ๋„์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ๋‹ค. ์†Œ์ผ“ ํ†ต์‹ ์œผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š”๋ฐ Activity ์ด๋™์ด๋‚˜ Fragment ์ด๋™์— ๊ด€๊ณ„ ์—†์ด ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅํ•œ ์†Œ์ผ“ ํ†ต์‹ ์ด ํ•„์š”ํ–ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• MVVM๊ณผ ๋‹จ์ผ Activity๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ์— Activity๋Š” MainActivity ํ•œ ๊ฐœ ๋ฟ์ด์—ˆ๊ณ  MainActivity ์—์„œ ์†Œ์ผ“ ํ†ต์‹ ์„ ๊ตฌํ˜„ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ํ•˜์ง€๋งŒ ์•ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์—์„œ๋„ ์•Œ๋ฆผ์„ ์ˆ˜์‹ ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ๊ณ  ์ด๋ฅผ ์œ„ํ•ด Service๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ๋ฌผ๋ก  MainActivity ์•ˆ์— ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์†Œ์ผ“ ํ†ต์‹ ์ด MainActivity ์ž์ฒด์— ์ข…์†๋˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๊ธฐ์— ..

[Android] MVVM ํŒจํ„ด ์ ์šฉ๊ธฐ - 2

GitHub - k906506/MVVM: ๐Ÿ”จ MVVM์ด ๋ญ์—์š”? ๐Ÿ”จ MVVM์ด ๋ญ์—์š”? Contribute to k906506/MVVM development by creating an account on GitHub. github.com MVVM ๋‘ ๋ฒˆ์งธ ์‹œ๊ฐ„์ด๋‹ค. ๊ฐ‘์ž‘์Šค๋Ÿฝ๊ฒŒ ์ฐพ์•„์˜จ ์ด์œ ๋Š” ์กธํ”„๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ RecyclerView ๋ฅผ Room ์„ ์‚ฌ์šฉํ•ด์„œ MVVM ํŒจํ„ด ์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์•„์„œ RecyclerView + Room + MVVM ์„ ์ •๋ฆฌํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์šฐ์„  MVVM ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ„์˜ ๊ทธ๋ฆผ์„ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ทธ๋ฆผ์—์„œ ์ฃผ์˜๊นŠ๊ฒŒ ๋ด์•ผํ•  ๊ฒƒ์€ ํ™”์‚ดํ‘œ์˜ ๋ฐฉํ–ฅ ์ด๋‹ค. ๋ชจ๋“  ํ™”์‚ดํ‘œ๊ฐ€ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์—ฐ๊ฒฐ ๋˜์–ด์žˆ๊ณ  ์ƒ์œ„ ์š”์†Œ๋Š” ํ•˜์œ„ ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. ์ฐธ์กฐ..

[Android] MVVM ํŒจํ„ด ์ ์šฉ๊ธฐ - 1

GitHub - k906506/MVVM: ๐Ÿ”จ MVVM์ด ๋ญ์—์š”? ๐Ÿ”จ MVVM์ด ๋ญ์—์š”? Contribute to k906506/MVVM development by creating an account on GitHub. github.com ์š”์ฆ˜ MVVM ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์•ฑ ๊ตฌํ˜„ํ•  ๋•Œ ๊ทธ๋ƒฅ ์•กํ‹ฐ๋น„ํ‹ฐ์— ๋‹ค ๋•Œ๋ ค๋ฐ•์•˜์—ˆ๋Š”๋ฐ ๋ชจ๋ธ์ด๋ž‘ ๋ทฐ๊ฐ€ ๋„ˆ๋ฌด ๊ฐ•ํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋˜์–ด ์žˆ๋Š” ๋Š๋‚Œ์ด ๊ฐ•ํ–ˆ๋‹ค. ๋˜ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋กœ์ง์„ ๋ทฐ(์•กํ‹ฐ๋น„ํ‹ฐ)์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋งค์šฐ ๋–จ์–ด์กŒ์—ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ฒจ์šธ๋ฐฉํ•™์— ์ง„ํ–‰ํ–ˆ๋˜ ๊ธ€๋กœ๋ฒŒ์ธ์žฌํŠธ๋ž™ ๋•Œ ์–ดํ”Œ ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์—ˆ๊ณ  ๋‚˜๋ฆ„ ๋ถ„๋ฆฌํ•œ๋‹ค๊ณ  ๋ถ„๋ฆฌํ–ˆ๋Š”๋ฐ ์ง„์งœ ์žฌ์‚ฌ์šฉ์„ฑ์ด 0 ์ด์—ˆ๋‹ค. MVC ๊ฐ€ ๊ตฌํ˜„ํ•˜๊ธฐ๋Š” ์ •๋ง ํŽธํ–ˆ์ง€๋งŒ ์ด ๊ธฐํšŒ์— ํŒจํ„ด ๊ณต๋ถ€๋„ ํ• ๊ฒธ MVVM ์„ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ฌผ๋ก  MVC ..

[Android] ์นด๋ฉ”๋ผ ๋˜๋Š” ๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ

๊ตฌํ˜„ ๊ธฐ๋Šฅ ์นด๋ฉ”๋ผ ์™€ ๊ฐค๋Ÿฌ๋ฆฌ ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์™€ ImageView ์— ๋„ฃ์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์ฝ”๋“œ ๊ตฌํ˜„ ๊ฒฐ๊ณผ ์˜ค๋ฅ˜ ๋‚ด์šฉ ์นด๋ฉ”๋ผ ์—์„œ ์ด๋ฏธ์ง€ ๋ฅผ ์ดฌ์˜ํ•˜๊ณ  ์ด๋ฅผ ์ „๋‹ฌ๋ฐ›์œผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ImageView ์— ์‚ฝ์ž…๋˜๋Š”๋ฐ ๊ฐค๋Ÿฌ๋ฆฌ ์—์„œ ์ด๋ฏธ์ง€ ๋ฅผ ์„ ํƒํ•˜๊ณ  ์ด๋ฅผ ์ „๋‹ฌ๋ฐ›์œผ๋ฉด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ข…๋ฃŒ๋˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์šฐ์„  ์˜ค๋ฅ˜ ๋‚ด์šฉ์€ null , ์ฝ์–ด๋ณด๋‹ˆ null ์„ ๋น„ํŠธ๋งต ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์˜ค๋ฅ˜์˜€๋‹ค. ์ด์œ ๋Š” ๊ฐ„๋‹จํ–ˆ๋‹ค. ์นด๋ฉ”๋ผ ์—์„œ ์ดฌ์˜ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ onActivityResult ํ•จ์ˆ˜์—์„œ data ๋ฅผ ํ†ตํ•ด ์ดฌ์˜ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์ด ๋•Œ data?.extras?.get("data") ๋ฅผ ํ†ตํ•ด์„œ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์œ„ ์ฝ”๋“œ๊ฐ€ ์นด๋ฉ”๋ผ์—์„œ ์ดฌ์˜ํ•œ ์ด๋ฏธ์ง€์ด๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€๋งŒ ๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ..

[Android] ๋‹ค๊ตญ์–ด ์ง€์›

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ์ž‘ ๊ณผ์ •์—์„œ ์—ฌ๋Ÿฌ ์–ธ์–ด๋ฅผ ์ง€์›ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. 1. ์šฐ์„  ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜์–ด๋กœ ์„ ์–ธํ–ˆ๋‹ค๊ณ  ์น˜์ž. 2. res > values > strings ์— ์ƒˆ๋กœ์šด strings.xml ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. 3. locale์„ ์„ ํƒํ•˜๊ณ  >> ๋ฅผ ํด๋ฆญํ•œ๋‹ค. 4. ko, South Korea ๋ฅผ ํด๋ฆญํ•œ๋‹ค. 5. ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ ๋ชจ์Šต์ด๋‹ค. 6. ์˜์–ด๋กœ ์„ ์–ธํ•œ string.xml ๊ณผ ๊ฐ™์€ name์„ ๊ฐ€์ง„ string ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  value๋งŒ ํ•œ๊ตญ์–ด๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. 7. ๋ณ„๋‹ค๋ฅธ ์ˆ˜์ • ์—†์ด ๊ธฐ๋ณธ ์–ธ์–ด๋งŒ ๋ณ€๊ฒฝํ•ด๋„ ์•ฑ ๋‚ด๋ถ€์˜ ํ…์ŠคํŠธ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.