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

์ „์ฒด ๊ธ€

(387)
[Google Play Console] ์ด์˜์ œ๊ธฐ ํ•˜๊ธฐ ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด์—์„œ ํšŒ์‚ฌ ์•ฑ๋“ค์— ๋Œ€ํ•ด์„œ ์—…๋ฐ์ดํŠธ ๊ฑฐ๋ถ€, ์•ฑ ๊ฑฐ๋ถ€ ๋ฉ”์ผ์„ ์ข…์ข… ๋ณด๋‚ด์˜จ๋‹ค. ๋‚ด๊ฐ€ ๋‹ด๋‹นํ•œ ์•ฑ์— ์•ฑ ๊ฑฐ๋ถ€ ๋ฉ”์ผ์ด ๋‚ ์•„์˜ค๋ฉด ์ŠคํŠธ๋ ˆ์Šค ๋ฐ›๋Š”๋‹ค. ์ด๋ฒˆ์— ์ƒˆ ๋ฒ„์ „์˜ ์•ฑ ๋ฒˆ๋“ค์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋‚˜์„œ ๋ฐ›์€ ๋ฉ”์ผ์ด๋‹ค. ์ € ์ฒจ๋ถ€๋œ ์Šคํฌ๋ฆฐ์ƒท์ด ๋‚˜์˜ ์–ต์šธํ•จ์„ ํ’€์–ด์คฌ๋‹ค. ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด ์ชฝ์—์„œ ๋‚ด๊ฐ€ ๊ธฐ์ž…ํ•œ ํ…Œ์ŠคํŠธ์šฉ ๋กœ๊ทธ์ธ ๊ณ„์ •์„ ์˜คํƒ€๋กœ ์ž˜๋ชป ์ž…๋ ฅํ•˜๊ณ  ํ•ด๋‹น ๊ณ„์ •์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ํ† ์ŠคํŠธ๊ฐ€ ๋‚˜์˜จ ์Šคํฌ๋ฆฐ์ƒท์„ ๋ณด๋‚ด์คฌ๋‹ค. ์ƒํ™ฉ ํŒŒ์•…ํ•˜๊ณ  ๊ฐœ๋นก์นจ ๋•๋ถ„์— ์ด์˜์ œ๊ธฐ๋„ ํ•ด๋ดค๋‹ค. 1. ์ •์ฑ… > ์ •์ฑ… ์ƒํƒœ ํŽ˜์ด์ง€๋กœ ์ง„์ž…ํ•œ๋‹ค. 2. ํ•ด๋‹น ํ™”๋ฉด ์•„๋ž˜์˜ "์ด์˜์ œ๊ธฐ"๋ผ๋Š” ์—ฐํ•œ ํšŒ์ƒ‰ ํ…์ŠคํŠธ ๋ฒ„ํŠผ(์ง€๊ธˆ์€ ๊ฒ€์ˆ˜ ํ†ต๊ณผ๋œ ์ƒํƒœ๋ผ์„œ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์บก์ณ ๋ถˆ๊ฐ€.)์„ ํด๋ฆญํ•˜๋ฉด ์ด์˜์ œ๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ํผ์ด ๋‚˜์˜จ๋‹ค. 3. ํผ์—๋Š” ๋‘ ๊ฐœ์˜ ์ž…๋ ฅ์นธ์ด ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š”..
[Android][Coroutine][SharedPreferences] ํƒ€์ด๋จธ ๊ตฌํ˜„ ์ธ์ฆ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „์†ก ์š”์ฒญํ•˜๋Š” ์„œ๋ฒ„ api๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  2๋ถ„ ๋™์•ˆ ์ธ์ฆ๋ฒˆํ˜ธ ์žฌ๋ฐœ๊ธ‰์„ ๋ง‰๋Š” ํƒ€์ด๋จธ์˜ ๊ตฌํ˜„์„ ํ•ด์•ผ ํ–ˆ๋‹ค. ํƒ€์ด๋จธ ๊ตฌํ˜„์€ ์ฒ˜์Œ์ด๋ผ์„œ ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ–ˆ๋‹ค. CountDownTimer๋ฅผ ์“ธ๊นŒ, ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ• ๊นŒ... ์„ ๋ฐฐ๋‹˜๊ป˜ ์—ฌ์ญค๋ดค๋”๋‹ˆ CountDownTimer์™€ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์•ฑ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚ ๋ผ๊ฐ€๋Š” ๊ฒฝ์šฐ์—๋Š” ์žฌ๊ณ  ์žˆ๋˜ ์‹œ๊ฐ„๋„ ๋‚ ๋ผ๊ฐ„๋‹ค๊ณ  ์•Œ๋ ค์ฃผ์…จ๋‹ค. SharedPreferences๋ฅผ ์จ์„œ ํ™”๋ฉด์— ์ง„์ž…ํ•˜๊ณ  ๋‚˜๊ฐˆ ๋•Œ๋งˆ๋‹ค ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์„ ์“ฐ๊ณ , ์ฝ”๋ฃจํ‹ด์„ ์“ฐ๋ฉด ์‰ฝ๋‹ค๊ณ  ์•Œ๋ ค์ฃผ์…จ๋‹ค. ๋„ˆ๋ฌด ๋‹น์—ฐํ•œ ๊ฑธ ๋ชฐ๋ž๋ƒ๋Š” ์„ ๋ฐฐ๋‹˜์˜ ํ‘œ์ •์„ ๋ณด๊ณ ๐Ÿ˜ณ ๋ฐ˜์„ฑํ•ฉ๋‹ˆ๋‹ค๐Ÿ˜ž ์™œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚ ๋ผ๊ฐ€๋Š” ๊ฒฝ์šฐ๋Š” ์ƒ๊ฐ์„ ๋ชปํ•œ๊ฑฐ์•ผ ๊ทธ ๋’ค๋กœ ์ž‘์—…์€ ์‰ฌ์› ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์†์„ ๊ฝค๋‚˜ ํƒ„ ์ด ์•ฑ์˜ ์ฝ”๋“œ๋Š” SharedPrefer..
[TED] The Paradox of Choice / Barry Schwarts https://youtu.be/VO6XEQIsCoM ์„ ํƒ๊ถŒ์ด ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด ๋งŒ์กฑ๊ฐ์ด ๊ฐ์†Œ๋œ๋‹ค. ์„œ๊ตฌ ์‚ฐ์—…ํ™”๋œ ์‚ฌํšŒ๋Š” ์„ ํƒ๊ถŒ์ด ๋„ˆ๋ฌด ๋งŽ๋‹ค. ์ด ๋งŽ์€ ์„ ํƒ๊ถŒ์„ ์„ ํƒ๊ถŒ์ด ์—†๋Š” ์‚ฌํšŒ๋กœ ์ด์ „ํ•œ๋‹ค๋ฉด ๋ชจ๋‘๊ฐ€ ํ–‰๋ณตํ•ด์งˆ ๊ฒƒ์ด๋‹ค. > '์†Œ๋“์žฌ๋ถ„๋ฐฐ' ๋ผ๋Š” ํ‘œํ˜„์ด ๋‚˜์™”์Œ. ์ˆ˜์กฐ๋ฅผ ๊นจ๋œจ๋ ค ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด ๋งˆ๋น„๊ฐ€ ์˜จ๋‹ค. ์ˆ˜์กฐ๊ฐ€ ์—†์œผ๋ฉด ์žฌ์•™์ด ์˜จ๋‹ค. Why Programmers Need Limits์—์„œ ๋‚˜์˜จ The Paradox of Choice. ์™œ ์ œํ•œ, ํ•œ๊ณ„๊ฐ€ ํ•„์š”ํ•œ์ง€ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•จ. โ€‹
[Android][Kakao SDK]์•ˆ๋“œ๋กœ์ด๋“œ ์นด์นด์˜ค ๋กœ๊ทธ์ธ SDK Legacy v1 -> v2 ์—…๋ฐ์ดํŠธ ์‹ ๊ทœ๋กœ ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์—ฐ๋™ํ•˜๋Š” ๋ธ”๋กœ๊ทธ๋“ค์€ ๊ฝค๋‚˜ ๋ดค๋Š”๋ฐ, v1.x.x ์—์„œ v2.x.x๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ธ€๋“ค์€ ์ œ๊ฐ€ ๋ชป ์ฐพ์•„์„œ ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹ ๊ทœ๋กœ ์นด์นด์˜ค ๊ณ„์ • ๋กœ๊ทธ์ธ ์„œ๋น„์Šค๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒ๋žต๋œ ๊ณผ์ •๋“ค(ํ‚ค ํ•ด์‹œ ๋“ฑ๋ก ๋“ฑ)์ด ์žˆ์Šต๋‹ˆ๋‹ค.๐Ÿ˜Ž 6๋…„ ์ „์— ๋งŒ๋“ค์–ด์ ธ ์ง€๊ธˆ๊นŒ์ง€ ์œ ์ง€๋ณด์ˆ˜๋˜๊ณ  ์žˆ๋Š” ์•ฑ์ด๋ผ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐ ์ž๋ฐ”๋ฅผ ์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.๐Ÿ‘ฉ‍๐Ÿ”ง๐Ÿ‘จ‍๐Ÿ”ง Gradle ์„ค์ •ํ•˜๊ธฐ ํ”„๋กœ์ ํŠธ์˜ build.gradle ๊ธฐ์กด ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ allprojects { repositories { .... maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' } .... } } ์ˆ˜์ • ์ฝ”๋“œ allprojects { repositories { .... ..
[Android] ํ”„๋กœ์ ํŠธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•˜์ง€ ์•Š์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋…ธ์ถœ๋œ๋‹ค?!(ํ”„๋กœ์ ํŠธ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ resource conflict. ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์ด ๊ฐ™์„ ๊ฒฝ์šฐ) ๊ฒฐ๋ก  - ๋‘๊ด„์‹ ์ง„ํ–‰๐Ÿ˜‰ ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ์˜ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์ด ์ถฉ๋Œ๋‚  ๊ฒฝ์šฐ(๊ฐ™์„ ๊ฒฝ์šฐ), ์ตœ์ข… ๋นŒ๋“œ๋Š” ์–ด๋–ค ๊ฑธ ์„ ํƒํ•  ์ง€ ๋ชจ๋ฅธ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค ๋Œ€์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ๋‹ค. ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์„ ๋ฐฐ๋‹˜ ๋„์›€ : https://stackoverflow.com/a/16351022/9287140 Why Android cannot deal with Resources name conflict between Project and Library? I have a project A that referenced by Library B, A and B have the same name and type, but their value are different. I think ..
[UI/UX] UI ๋””์ž์ธ์„ ์œ„ํ•œ ํœด๋ฆฌ์Šคํ‹ฑ ์‚ฌ์šฉ์„ฑ 10๊ฐ€์ง€ / 10 Usability Heuristics for User Interface Design ์„ ๋ฐฐ๋‹˜๊ณผ ์ด์•ผ๊ธฐํ•˜๋‹ค๊ฐ€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์œ„ํ•ด 10๋Œ€ ์›์น™์ด๋ผ๋Š” ๋ฌด์–ธ๊ฐ€๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๊ฒ€์ƒ‰ํ•ด๋ณด์•˜๋‹ค. ๋„ˆ๋ฌด๋‚˜ ์ž˜ ์„ค๋ช…ํ•ด์ฃผ๊ณ , ์˜ˆ์‹œ๊นŒ์ง€ ๋“ค์–ด์ค€ ๋ฉ‹์ง„ ๊ธ€๋“ค์„ ํ™•์ธํ–ˆ๋‹ค. https://www.designprinciplesftw.com/collections/10-usability-heuristics-for-user-interface-design 10 Usability Heuristics for User Interface Design | Design Principles FTW 11 Jul 2013 10 Usability Heuristics for User Interface Design "The 10 most general principles for interaction design. They are called '..
[Android] target sdk version์„ ๋ณ€๊ฒฝํ•˜๋ฉด ํ•ด๋‹น version์˜ ๋‹จ๋ง์—์„œ ํ…Œ์ŠคํŠธํ•ด ๋ณด์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์˜ ๊ตํ›ˆ. target sdk version์„ ๋ณ€๊ฒฝํ•˜๋ฉด ํ•ด๋‹น version์˜ ๋‹จ๋ง์—์„œ ํ…Œ์ŠคํŠธํ•ด ๋ณด์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์• ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋Œ๋ ค์„œ๋ผ๋„ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์•ฑ์˜ ์ฝ”๋“œ๋Š” ํ•ด๋‹น version์˜ ๋™์ž‘ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์—†์–ด์„œ ๊ดœ์ฐฎ๋‹ค ํ•ด๋„, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋’คํ†ต์ˆ˜์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“š๐Ÿ‘Š๐Ÿ’ฅ๐Ÿคฆ‍โ™€๏ธ๐Ÿคฆ‍โ™‚๏ธ
[์•ˆ๋“œ๋กœ์ด๋“œ] ์–ด๋А ํ™”๋ฉด์—์„œ๋‚˜ ๋™์ผํ•˜๊ฒŒ ๋””์ž์ธ ๊ฐ€์ด๋“œ ์œ ์ง€ํ•  TabItem ์†์„ฑ ๊ณผ๊ฑฐ ํƒญ ์•„์ด์ฝ˜์œผ๋กœ ์ด๋ฆฌ์ €๋ฆฌ ์‚ฝ์งˆํ•˜๊ณ  ํ–‰๋ณตํ•˜๊ฒŒ ์›ํ•˜๋˜ ๋Œ€๋กœ ๊ตฌํ˜„ํ–ˆ์—ˆ๋‹ค. 2021.09.09 - [๋นˆ ๊ตฌ๋ฉ ์ฑ„์šฐ๊ธฐ] - [Android] TabLayout, TabItem ์›ํ•˜๋Š” UI ๋งŒ๋“ค๊ธฐ ๊ทธ๋ฆฌ๊ณ  ์ด์Šˆ๊ฐ€ ๋‚˜์™”๋‹ค. ๊ฐค๋Ÿญ์‹œ ํด๋“œ ๋‹จ๋ง์—์„œ๋Š” ๋””์ž์ธ ๊ฐ€์ด๋“œ๋Œ€๋กœ ํƒญ ์•„์ด์ฝ˜๋“ค์ด ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฑฐ์˜€๋‹ค. TabLayout์˜ ์„ค์ •๊ฐ’ ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์„ ๋ฐฐ๋‹˜์˜ ๋ง์”€์„ ํžŒํŠธ๋กœ ๋ฐ›์•„๋“ค์ด๊ณ  ๊ฒ€์ƒ‰ํ•ด์„œ ์ฐพ์•˜๋‹ค. ์€์ธ : https://jeonghoe9.tistory.com/28 TabLayout์˜ Tabํฌ๊ธฐ ๊ท ๋“ฑ๋ถ„ํ• (?) ์˜ค๋Š˜์€ TabLayout(com.google.android.material.tabs.TabLayout)์„ ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ Tab ๊ฐฏ์ˆ˜๊ฐ€ TabLayout์˜ width ๊ฐ’๋ณด๋‹ค ์ž‘์œผ๋‹ˆ Tab์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘๊ฒŒ ๋ณด์ด๋Š” ๋ฌธ์ œ..