[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๋ฆฌ์‹œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๋ฆฌ์‹œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๋ฆฌ์‹œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์˜ ์ดํ•ด์™€ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ–ˆ๋‹ค. ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๋ฆฌ์‹œ๋ฒ„๋Š” ์‹œ์Šคํ…œ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ, BroadcastReceiver ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„ํ•˜๋ฉฐ, ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์— ๋“ฑ๋กํ•˜๊ฑฐ๋‚˜ ๋™์ ์œผ๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ๋ถ€ํŒ… ์™„๋ฃŒ, ํ™”๋ฉด ์ผœ์ง/๊บผ์ง, ๋ฐฐํ„ฐ๋ฆฌ ์ƒํƒœ ๋“ฑ์˜ ์‹œ์Šคํ…œ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฃฌ๋‹ค. ๊ฐ ์ƒํ™ฉ์— ๋งž๋Š” ๋ฆฌ์‹œ๋ฒ„ ๋“ฑ๋ก๊ณผ ํ•ด์ œ ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ๋ฐฐํ„ฐ๋ฆฌ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ ์˜ˆ์ œ๋„ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
DriedPollack's avatar
Aug 19, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin
[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์•กํ‹ฐ๋น„ํ‹ฐ ์ปดํฌ๋„ŒํŠธ

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์•กํ‹ฐ๋น„ํ‹ฐ ์ปดํฌ๋„ŒํŠธ

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์•กํ‹ฐ๋น„ํ‹ฐ ์ปดํฌ๋„ŒํŠธ์™€ ์ธํ…ํŠธ, ์•กํ‹ฐ๋น„ํ‹ฐ ์ƒ๋ช…์ฃผ๊ธฐ, ANR ๋ฌธ์ œ์™€ ์ฝ”๋ฃจํ‹ด์„ ์ •๋ฆฌํ–ˆ๋‹ค. ์ธํ…ํŠธ ํ•„ํ„ฐ ์„ค์ •, ์ธํ…ํŠธ์˜ action๊ณผ data ํ”„๋กœํผํ‹ฐ ์‚ฌ์šฉ๋ฒ•, ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ์ƒํƒœ ๋ณ€ํ™”์™€ ์ƒ๋ช…์ฃผ๊ธฐ ์ฝœ๋ฐฑ ํ•จ์ˆ˜, ์•กํ‹ฐ๋น„ํ‹ฐ ์ข…๋ฃŒ ์‹œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ณต์› ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ANR ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ์ฝ”๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ•˜๋ฉฐ, ์ฝ”๋ฃจํ‹ด์˜ ์žฅ์ ๊ณผ ์Šค์ฝ”ํ”„, ๋””์ŠคํŒจ์ฒ˜ ์„ค์ • ๋“ฑ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
DriedPollack's avatar
Aug 14, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin
[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋จธํ‹ฐ๋ฆฌ์–ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋จธํ‹ฐ๋ฆฌ์–ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ฝ”ํ‹€๋ฆฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋จธํ‹ฐ๋ฆฌ์–ผ ๋””์ž์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์•ฑ๋ฐ”, ์ฝ”๋””๋„ค์ดํ„ฐ ๋ ˆ์ด์•„์›ƒ, ์ปฌ๋žฉ์‹ฑ ํˆด๋ฐ” ๋ ˆ์ด์•„์›ƒ, ํƒญ ๋ ˆ์ด์•„์›ƒ, ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ทฐ, ํ™•์žฅ๋œ ํ”Œ๋กœํŒ… ์•ก์…˜ ๋ฒ„ํŠผ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค. ๊ฐ ์„น์…˜์—์„œ๋Š” ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ์˜ ์„ค์ • ๋ฐฉ๋ฒ•๊ณผ ์ฝ”๋“œ ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ƒํ˜ธ์ž‘์šฉ ๋ฐ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฃฌ๋‹ค.
DriedPollack's avatar
Aug 13, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin
[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์ œํŠธํŒฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์ œํŠธํŒฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ œํŠธํŒฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ ๋ทฐ, ๋ทฐ ํŽ˜์ด์ €2, ๋“œ๋กœ์–ด ๋ ˆ์ด์•„์›ƒ์˜ ์‚ฌ์šฉ๋ฒ•์„ ์ •๋ฆฌํ–ˆ๋‹ค. ์ œํŠธํŒฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ”„๋ž˜๊ทธ๋จผํŠธ์˜ ๋™์  ์ œ์–ด์™€ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๋‹ค๋ฃจ๋ฉฐ, ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ ๋ทฐ๋Š” ๋ชฉ๋ก ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค. ๋ทฐ ํŽ˜์ด์ €2๋Š” ์Šค์™€์ดํ”„๋กœ ํ™”๋ฉด์„ ์ „ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋“œ๋กœ์–ด ๋ ˆ์ด์•„์›ƒ์€ ํ™”๋ฉด์˜ ์˜†์—์„œ ์—ด๋ฆฌ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค. ๊ฐ ์„น์…˜์€ ์ฝ”๋“œ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์ƒ์„ธํ•œ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.
DriedPollack's avatar
Aug 08, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin
[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋‹ค์ด์–ผ๋กœ๊ทธ์™€ ์•Œ๋ฆผ ์ด์šฉํ•˜๊ธฐ

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋‹ค์ด์–ผ๋กœ๊ทธ์™€ ์•Œ๋ฆผ ์ด์šฉํ•˜๊ธฐ

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํผ๋ฏธ์…˜ ํ™•์ธ ๋ฐ ์š”์ฒญ ๋ฐฉ๋ฒ•, ๋‹ค์–‘ํ•œ ๋‹ค์ด์–ผ๋กœ๊ทธ์™€ ์•Œ๋ฆผ ์ฐฝ ์‚ฌ์šฉ๋ฒ•, ์†Œ๋ฆฌ์™€ ์ง„๋™ ์•Œ๋ฆผ ์„ค์ •, ์•Œ๋ฆผ ์ฑ„๋„ ๋ฐ ๊ฐ์ฒด ๊ตฌ์„ฑ, ์•Œ๋ฆผ ์Šคํƒ€์ผ ์ ์šฉ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค. ์ฃผ์š” ๋‚ด์šฉ์œผ๋กœ๋Š” ํผ๋ฏธ์…˜ ํ—ˆ์šฉ ํ™•์ธ๊ณผ ์š”์ฒญ, ํ† ์ŠคํŠธ ๋ฉ”์‹œ์ง€, ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ์ž…๋ ฅ ๋‹ค์ด์–ผ๋กœ๊ทธ, ์•Œ๋ฆผ ์ฐฝ ๊ตฌ์„ฑ, ์†Œ๋ฆฌ ๋ฐ ์ง„๋™ ์•Œ๋ฆผ, ์•Œ๋ฆผ ์ฑ„๋„ ์„ค์ •, ์•Œ๋ฆผ ๊ฐ์ฒด ์ƒ์„ฑ, ์•Œ๋ฆผ ํ„ฐ์น˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ์•Œ๋ฆผ ์Šคํƒ€์ผ ์„ค์ • ๋“ฑ์ด ํฌํ•จ๋œ๋‹ค.
DriedPollack's avatar
Aug 01, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin
[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋ฆฌ์†Œ์Šค ํ™œ์šฉํ•˜๊ธฐ

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋ฆฌ์†Œ์Šค ํ™œ์šฉํ•˜๊ธฐ

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ–ˆ๋‹ค. ๋ฆฌ์†Œ์Šค๋Š” ์•ฑ ๋ฆฌ์†Œ์Šค์™€ ํ”Œ๋žซํผ ๋ฆฌ์†Œ์Šค๋กœ ๋‚˜๋‰˜๋ฉฐ, ๋ ˆ์ด์•„์›ƒ, ์ด๋ฏธ์ง€, ์‹คํ–‰ ์•„์ด์ฝ˜, ๊ฐ’, ์ƒ‰์ƒ, ๊ธ€๊ผด ๋ฆฌ์†Œ์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. ๋ฆฌ์†Œ์Šค ์กฐ๊ฑด ์„ค์ •์„ ํ†ตํ•ด ํŠน์ • ํ™˜๊ฒฝ์—์„œ๋งŒ ์ ์šฉ๋˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ™”๋ฉด ํšŒ์ „๊ณผ ๊ตญ์ œ ์–ธ์–ด ์ง€์›์—๋„ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ์•ˆ๋“œ๋กœ์ด๋“œ ํฐ์˜ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์— ํ˜ธํ™˜์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๊ณ , ๊ธฐ๊ธฐ์˜ ํฌ๊ธฐ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€ ์ง์ ‘ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
DriedPollack's avatar
Jul 26, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin
[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌํ•˜๊ธฐ

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌํ•˜๊ธฐ

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ–ˆ๋‹ค. ํ„ฐ์น˜ ์ด๋ฒคํŠธ๋Š” onTouchEvent() ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์žฌ์ •์˜ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์ฃผ์š” ์ด๋ฒคํŠธ๋กœ๋Š” ACTION_DOWN, ACTION_UP, ACTION_MOVE๊ฐ€ ์žˆ๋‹ค. ํ‚ค ์ด๋ฒคํŠธ๋Š” onKeyDown, onKeyUp, onKeyLongPress ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ํŠน์ • ํ‚ค ์ด๋ฒคํŠธ๋Š” onBackPressed()๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ทฐ ์ด๋ฒคํŠธ๋Š” ์ด๋ฒคํŠธ ์†Œ์Šค์™€ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ฆฌ์Šค๋„ˆ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ํด๋ฆญ๊ณผ ๋กฑํด๋ฆญ ์ด๋ฒคํŠธ๋Š” ๊ฐ๊ฐ setOnClickListener์™€ setOnLongClickListener๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ฝ”ํ‹€๋ฆฐ์˜ SAM ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
DriedPollack's avatar
Jul 18, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin
[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋ทฐ๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋ทฐ๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ

LinearLayout์€ ๋ทฐ๋ฅผ ๊ฐ€๋กœ๋‚˜ ์„ธ๋กœ๋กœ ๋‚˜์—ดํ•˜๊ณ , RelativeLayout์€ ์ƒ๋Œ€์ ์ธ ์œ„์น˜๋กœ ๋ทฐ๋ฅผ ๋ฐฐ์น˜ํ•œ๋‹ค. FrameLayout์€ ๋ทฐ๋ฅผ ๊ฒน์ณ์„œ ์ถœ๋ ฅํ•˜๋ฉฐ, GridLayout์€ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋กœ ๋ทฐ๋ฅผ ๋ฐฐ์น˜ํ•œ๋‹ค. ConstraintLayout์€ ๋” ๋งŽ์€ ์†์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์˜ ๋ ˆ์ด์•„์›ƒ ํŽธ์ง‘๊ธฐ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
DriedPollack's avatar
Jul 12, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin
[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋ทฐ๋ฅผ ์ด์šฉํ•œ ํ™”๋ฉด ๊ตฌ์„ฑ

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ๋ทฐ๋ฅผ ์ด์šฉํ•œ ํ™”๋ฉด ๊ตฌ์„ฑ

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์•กํ‹ฐ๋น„ํ‹ฐ ์ฝ”๋“œ์™€ ๋ ˆ์ด์•„์›ƒ XML ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์•กํ‹ฐ๋น„ํ‹ฐ ์ฝ”๋“œ๋กœ๋Š” ์ง์ ‘ ๋ทฐ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐฐ์น˜ํ•˜๋ฉฐ, XML ํŒŒ์ผ๋กœ๋Š” ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•œ๋‹ค. ๋ทฐ ํด๋ž˜์Šค๋Š” View์˜ ํ•˜์œ„ ํด๋ž˜์Šค๋กœ, TextView, ImageView, Button ๋“ฑ ๋‹ค์–‘ํ•œ ๋ทฐ๋ฅผ ํฌํ•จํ•œ๋‹ค. ๋ทฐ ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด ๋ ˆ์ด์•„์›ƒ XML ํŒŒ์ผ์— ์„ ์–ธํ•œ ๋ทฐ ๊ฐ์ฒด๋ฅผ ์ฝ”๋“œ์—์„œ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด build.gradle ํŒŒ์ผ์— viewBinding์„ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ๋ทฐ ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•˜๋ฉด findViewById() ํ•จ์ˆ˜๋ฅผ ๋Œ€์ฒดํ•ด ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ทฐ ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.
DriedPollack's avatar
Jul 04, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin
[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์ฝ”ํ‹€๋ฆฐ์˜ ์œ ์šฉํ•œ ๊ธฐ๋ฒ•

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์ฝ”ํ‹€๋ฆฐ์˜ ์œ ์šฉํ•œ ๊ธฐ๋ฒ•

์ฝ”ํ‹€๋ฆฐ์˜ ์œ ์šฉํ•œ ๊ธฐ๋ฒ•์„ ๋‹ค๋ฃจ๋ฉฐ, ๋žŒ๋‹ค ํ•จ์ˆ˜์™€ ๊ณ ์ฐจ ํ•จ์ˆ˜, ํ•จ์ˆ˜ ํƒ€์ž…, ๋„ ์•ˆ์ „์„ฑ์— ๋Œ€ํ•ด ์ •๋ฆฌํ–ˆ๋‹ค. ๋žŒ๋‹ค ํ•จ์ˆ˜๋Š” ์ต๋ช… ํ•จ์ˆ˜๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ณ ์ฐจ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋‚˜ ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋‹ค. ์ฝ”ํ‹€๋ฆฐ์€ ๋„ ์•ˆ์ „์„ฑ์„ ์ง€์›ํ•˜์—ฌ ๋„ ํฌ์ธํŠธ ์˜ˆ์™ธ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์ž๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
DriedPollack's avatar
Jun 28, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin
[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์ฝ”ํ‹€๋ฆฐ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์ฝ”ํ‹€๋ฆฐ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

ํด๋ž˜์Šค์™€ ์ƒ์„ฑ์ž, ์ƒ์†, ์ ‘๊ทผ ์ œํ•œ์ž, ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค, ์˜ค๋ธŒ์ ํŠธ ํด๋ž˜์Šค, ๊ทธ๋ฆฌ๊ณ  ์ปดํŒจ๋‹ˆ์–ธ ํด๋ž˜์Šค๋ฅผ ์ •๋ฆฌํ–ˆ๋‹จ. ํด๋ž˜์Šค๋Š” class ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•˜๋ฉฐ, ์ƒ์„ฑ์ž๋Š” ์ฃผ ์ƒ์„ฑ์ž์™€ ๋ณด์กฐ ์ƒ์„ฑ์ž๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ์ƒ์†์€ open ํ‚ค์›Œ๋“œ๋กœ ํ—ˆ์šฉ๋˜๋ฉฐ, override ํ‚ค์›Œ๋“œ๋กœ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ ‘๊ทผ ์ œํ•œ์ž๋Š” public, internal, protected, private๊ฐ€ ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค๋Š” data ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ๋œ๋‹ค. ์˜ค๋ธŒ์ ํŠธ ํด๋ž˜์Šค๋Š” ์ต๋ช… ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๊ณ , ์ปดํŒจ๋‹ˆ์–ธ ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ํด๋ž˜์Šค ์ด๋ฆ„์œผ๋กœ ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
DriedPollack's avatar
Jun 20, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin
[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์ฝ”ํ‹€๋ฆฐ ์‹œ์ž‘ํ•˜๊ธฐ

[Do it! ๊นก์ƒ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ] ์ฝ”ํ‹€๋ฆฐ ์‹œ์ž‘ํ•˜๊ธฐ

์ฝ”ํ‹€๋ฆฐ ์–ธ์–ด์˜ ์žฅ์ , ํŒŒ์ผ ๊ตฌ์„ฑ, ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜ ์„ ์–ธ, ๋ฐ์ดํ„ฐ ํƒ€์ž…, ์ปฌ๋ ‰์…˜ ํƒ€์ž…, ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์— ๋Œ€ํ•ด ์ •๋ฆฌํ–ˆ๋‹ค. ์ฝ”ํ‹€๋ฆฐ์€ ๊ฐ„๊ฒฐํ•˜๊ณ  ์•ˆ์ „ํ•œ ์ฝ”๋“œ, ์ž๋ฐ”์™€์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ, ๊ตฌ์กฐํ™”๋œ ๋™์‹œ์„ฑ ๋“ฑ์˜ ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ณ€์ˆ˜๋Š” val๊ณผ var๋กœ ์„ ์–ธํ•˜๋ฉฐ, ํ•จ์ˆ˜๋Š” fun ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ์ปฌ๋ ‰์…˜ ํƒ€์ž…์„ ์ง€์›ํ•˜๋ฉฐ, ์กฐ๊ฑด๋ฌธ if์™€ when, ๋ฐ˜๋ณต๋ฌธ for์™€ while์„ ํ†ตํ•ด ์ œ์–ด ํ๋ฆ„์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
DriedPollack's avatar
Jun 14, 2024
๐Ÿค–Android๐Ÿ“ฑKotlin

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปDriedPollack's Blog