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

๋นˆ ๊ตฌ๋ฉ ์ฑ„์šฐ๊ธฐ

(342)
[Android][Facebook Login] ํŽ˜์ด์Šค๋ถ ์•ฑ ๋ฏธ ์„ค์น˜ ์‹œ ๋กœ๊ทธ์ธ ๋ถˆ๊ฐ€ ์ด์Šˆ ์ œ๋ชฉ ๊ทธ๋Œ€๋กœ, ํŽ˜์ด์Šค๋ถ ์•ฑ์ด ์„ค์น˜๋˜์ง€ ์•Š์€ ๋‹จ๋ง์—์„œ ์•ฑ์˜ SNS ๋กœ๊ทธ์ธ์„ Facebook์œผ๋กœ ์‹œ๋„ํ•  ๊ฒฝ์šฐ, ๋กœ๊ทธ์ธ์ด ๋˜์ง€ ์•Š๋Š” ์ด์Šˆ์˜€๋‹ค. ํ”„๋กœ์ ํŠธ์˜ target Api level์€ 33์ด๊ณ , Android OS 13 ๋‹จ๋ง์—์„œ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ด์ „์—๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๋˜ ์ด์Šˆ์˜€๋‹ค. Facebook Login sdk ๋ฒ„์ „์„ ํ™•์ธํ–ˆ๋‹ค. ์ด์Šˆ ๋ฐœ์ƒ facebook login sdk ๋ฒ„์ „์€ 14.1.1 ๋ณด๋‹ค ๋‚ฎ์•˜๋”ฐ. ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜๊ฒŒ ๋๋‹ค. Facebook login sdk ๋ฒ„์ „์„ ์ตœ์‹ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ด์Šˆ ํ•ด๊ฒฐ๋๋‹ค.
[Android][RecyclerView][NestedScrollView] ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ ์‹œ์ž‘ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ '์Šต๊ด€ ๊ธฐ๋ฅด๊ธฐ'๋ผ๋Š” ํ…Œ๋งˆ๋กœ 3, 7, 21, 30, 66์ผ์˜ ์‚ฌ์ง„ ์ธ์ฆ ๋ฆฌ์ŠคํŠธ ํ™”๋ฉด์„ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํ™”๋ฉด์— ๊ธฐ๋ฅด๊ณ ์ž ํ•˜๋Š” ์Šต๊ด€์˜ ์ •๋ณด๋“ค๊ณผ ์ธ์ฆ ์‚ฌ์ง„ ๋ฆฌ์ŠคํŠธ(์ž‘์€ ์ •์‚ฌ๊ฐํ˜• ์ด๋ฏธ์ง€๋“ค์ด ๊ฐ€๋กœ 3 X ์„ธ๋กœ n์ค„๋กœ ๋…ธ์ถœ๋จ)๊ฐ€ ๋ชจ๋‘ ๋‚˜์™€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, NestedScrollView๋ฅผ root view๋กœ ๋‘๊ณ  ํ™”๋ฉด layout์„ ๊ตฌ์„ฑํ–ˆ๋‹ค. ์Šต๊ด€๊ณผ ์ด๋ฏธ์ง€ ์ •๋ณด๋“ค์€ ํ™”๋ฉด ์ง„์ž… ์‹œ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์™€ ๋…ธ์ถœํ•œ๋‹ค. ๋ฟŒ๋“ฏํ•˜๊ฒŒ ๋‹ค ๋งŒ๋“ค๊ณ  ๋‚˜์„œ, ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š”๋ฐ 66์ผ์น˜ ํ™”๋ฉด์€ ์„ฑ๋Šฅ์ด ๋„ˆ๋ฌด ๊ตฌ๋ ธ๋‹ค. ํ™”๋ฉด์ด ๋กœ๋“œ๋˜๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค. ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ณ ์ž ๋งˆ์Œ ๋จน๊ณ  ์ž‘์—…์— ๋‚˜์„ ๋‹ค. ์™œ ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๊ฐ€ NestedScrollView๊ฐ€ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. https://stackoverflow..
[Android][WebView] ์›น๋ทฐ ๋งํฌ ์‹คํ–‰ ์‹œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ € ์‹คํ–‰ ์ถ”์  * ์‚ฝ์งˆ๊ณผ ํ—ค๋ฉ”๋Š” ๊ณผ์ •์˜ ๊ธฐ๋ก๐Ÿ˜ต ์‹œ์ž‘ ๊ธฐํš์ž์—๊ฒŒ์„œ ์›น๋ทฐ์˜ ๋งํฌ ํƒญ ์‹œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๋กœ ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์„ Google Anayltics๋กœ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์š”์ฒญ๋ฐ›์Œ ์˜๋ฌธ๊ณผ ํ…Œ์ŠคํŠธ 1) ์›น๋ทฐ์˜ ๋งํฌ ํƒญ ์‹œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ด๋™ํ•˜๋Š”๊ฐ€? > ํ…Œ์ŠคํŠธ ํฐ(Galaxy A21, OS12)์—์„œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ์›น๋ทฐ์—์„œ ๋งํฌ ํƒญ ์‹œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๋…ธ์ถœ๋๋‹ค. ์ด ๋•Œ๊นŒ์ง€๋Š” ์š”์ฒญ ์‚ฌํ•ญ์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ์— ๋ฌธ์ œ๋Š” ์—†๊ฒ ๊ตฌ๋‚˜ ์‹ถ์—ˆ๋‹ค. ์™œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‹คํ–‰๋˜๋Š”์ง€๋Š” ์›น๋ทฐ ๋‚ด๋ถ€ ์ฝ”๋“œ๋ฅผ ๊นŒ๋ณผ ์ˆ˜๊ฐ€ ์—†์–ด์„œ ํ™•์ธํ•˜์ง€๋Š” ๋ชปํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Android Developers ๊ณต์‹ ๋ฌธ์„œ์—์„œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ € ์‹คํ–‰์„ ๊ถŒ์žฅํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งํฌ ํŽ˜์ด์ง€ ์‹คํ–‰์€ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•˜๋„๋ก ๊ฐ’์ด ์„ค์ •๋œ ๊ฒƒ์ด ..
[Android] ComponentCallbacks2 ๋ฌธ์„œ ์ฝ๊ธฐ https://developer.android.com/reference/android/content/ComponentCallbacks2 ComponentCallbacks2 | Android Developers android.net.wifi.hotspot2.omadm developer.android.com public interface ComponentCallbacks2 implements ComponentCallbacks ํ™•์žฅ๋œ ComponentCallbakcs ์ธํ„ฐํŽ˜์ด์Šค๊ณ , ๋ณด๋‹ค ์„ธ๋ถ„ํ™”๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์ฝœ๋ฐฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ์š”์†Œ(Activity, Service, ContentProvider, Application)์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์‹œ์Šคํ…œ ..
[Android] ContentResolver ๋ฌธ์„œ ์ฝ๊ธฐ https://developer.android.com/reference/android/content/ContentResolver ContentResolver | Android Developers android.net.wifi.hotspot2.omadm developer.android.com public abstract class ContentResolver extends Object ์ด ํด๋ž˜์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ฝ˜ํ…์ธ  ๋ชจ๋ธ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
[Android] ContentProvider ๋ฌธ์„œ ์ฝ๊ธฐ https://developer.android.com/reference/android/content/ContentProvider ContentProvider | Android Developers android.net.wifi.hotspot2.omadm developer.android.com public abstract class ContentProvider extends Object implements ComponentCallbacks2 ์ฝ˜ํ…์ธ  ํ”„๋กœ๋ฐ”์ด๋”๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค ์ค‘์— ์ค‘์š” ๊ตฌ์„ฑ์š”์†Œ๋“ค ์ค‘ ํ•˜๋‚˜๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์— ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ  ํ”„๋กœ๋ฐ”์ด๋”๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์บก์Šํ™”ํ•˜๊ณ  ๋‹จ์ผ ContentResolver ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์— ์ด๊ฒƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ  ํ”„๋กœ๋ฐ”์ด๋”๋Š” ์—ฌ๋Ÿฌ ์• ..
[Android] ๊ธฐ๋ณธ ์ œ๊ณต BindingAdapter ๊ธฐ์กด์— ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ธ๋ฐ ๋‚˜๋งŒ ๋ชจ๋ฅด๊ณ  ์ƒˆ๋กœ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ํ”ผํ•˜๊ณ  ์‹ถ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” BindingAdapter๋“ค์˜ ๊ตฌ์ฒด์ ์ธ ๋ช…์„ธ๋ฅผ ๋ชฐ๋ผ์„œ ์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด๋˜์ง€ ์•Š์„๊นŒ ์˜ˆ์ƒํ•˜๊ณ  ์ผ๋‹ค๊ฐ€ ๋นŒ๋“œ ํ›„ ์ž˜๋ชป๋๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๋Š” ์ˆ˜๊ณ ๋„ ๋œ๊ณ  ์‹ถ๋‹ค. ๋”๋ณด๊ธฐ ์‚ฝ์งˆ android:src="@{๋“œ๋กœ์›Œ๋ธ”๋ฆฌ์†Œ์Šค}" ๋ผ ์“ฐ๊ณ  ๋นŒ๋“œ ์—๋Ÿฌ๋‚ฌ์Œ. ์ด ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๊ณ  android:src="@{context.getDrawable(๋“œ๋กœ์›Œ๋ธ”๋ฆฌ์†Œ์Šค)}" ๋กœ ์“ฐ๋ฉด ๋œ๋‹ค๋Š” ๊ฑธ ์•Ž. androidx.databinding.adapters ํŒจํ‚ค์ง€ ์•ˆ์— ์ด๋ฏธ ๊ตฌํ˜„๋œ BindingAdpater ํด๋ž˜์Šค๋“ค ์ด๋ฆ„์„ ์ด์ œ์•ผ ์•Œ์•˜๋‹ค. ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๋„๋ก ImageViewBindingAdapter TextViewBindingAdapter AutoComplet..
[Android] ViewGroup.LayoutParams ๋ฌธ์„œ ์ฝ๊ธฐ https://developer.android.com/reference/android/view/ViewGroup.LayoutParams ViewGroup.LayoutParams | Android Developers android.net.wifi.hotspot2.omadm developer.android.com ๋ทฐ๋Š” LayoutParams๋ฅผ ๋ถ€๋ชจ์—๊ฒŒ ์ž์‹ ์ด ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜๋˜๊ธธ(be laid out) ์›ํ•˜๋Š”์ง€ ์ „ํ•˜๋Š”๋ฐ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํด๋ž˜์Šค๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์ž๋…€ ๋ทฐ ์†์„ฑ๋“ค์˜ ๋ฆฌ์ŠคํŠธ๋Š” ViewGorup์˜ Layout ์†์„ฑ์—์„œ ๋ณด์„ธ์š”. ๊ธฐ๋ณธ LayoutParms ํด๋ž˜์Šค๋Š” ๋ทฐ๊ฐ€ ๋„ˆ๋น„์™€ ๋†’์ด ๋ชจ๋‘ ์–ผ๋งŒํผ์œผ๋กœ ํฌ๊ณ  ์‹ถ์€์ง€๋งŒ์„ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํฌ๊ธฐ(dimension. ํ˜น์€ ๊ทœ๋จธ, ์ฐจ์›, ์น˜์ˆ˜...)๋Š”, ์ด ์ค‘์— ํ•˜๋‚˜์ž…๋‹ˆ..