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

๐Ÿ“ฑ

(18)
[Android] Android Framework๏ผŸ ๐Ÿ’กAndroid Framework๋ž€? · Java / Kotlin ๊ธฐ๋ฐ˜์˜ ์•ˆ๋“œ๋กœ์ด๋“œ API ์ง‘ํ•ฉ์†Œ๋กœ, ์•ˆ๋“œ๋กœ์ด๋“œ OS ์ „์ฒด์ ์ธ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ API๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋„๋ก ์ง€์›ํ•ด์ฃผ๊ณ  ์žˆ๋‹ค. ๐Ÿ’กAndroid Framework ๊ตฌ์„ฑ ํ•ญ๋ชฉ VIEW SYSTEM · ๋ชฉ๋ก / ๊ทธ๋ฆฌ๋“œ / ํ…์ŠคํŠธ์ƒ์ž / ๋ฒ„ํŠผ / ์›น๋ทฐ(์›น๋ธŒ๋ผ์šฐ์ €) ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. · ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์œ ์ € ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๋นŒ๋“œํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. RESOURCE MANAGER · ๊ตญ๊ฐ€๋ณ„ ๋ฌธ์ž์—ด / ๊ทธ๋ž˜ํ”ฝ ๋ฐ ์ด๋ฏธ์ง€ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ๊ณตํ•œ๋‹ค. NOTIFICATION MANAGER · ๋ชจ๋“  Application์ด ์ƒํƒœํ‘œ์‹œ์ค„์— ์‚ฌ์šฉ์ž ์ง€์ • ์•Œ๋ฆผ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค. A..
[Android] Android๏ผŸ ๐Ÿ’กAndroid๋ž€? · ๊ตฌ๊ธ€(Google)์—์„œ ๋งŒ๋“  ์Šค๋งˆํŠธํฐ์šฉ ์šด์˜์ฒด์ œ์ด๋‹ค. · ๋ฆฌ๋ˆ…์Šค(Linux)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘๋˜์—ˆ๊ณ  ์–ธ์–ด๋Š” ์ž๋ฐ”(Java) ๋ฐ ์ฝ”ํ‹€๋ฆฐ(Kotlin)์„ ์‚ฌ์šฉํ•œ๋‹ค. ๐Ÿ’กAndroid์˜ ํŠน์ง• · ์ „์šฉ ๊ฐœ๋ฐœ ๋„๊ตฌ์ธ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. · ์˜คํ”ˆ์†Œ์Šค ์ง€ํ–ฅ์œผ๋กœ ๋งŽ์€ ์ •๋ณด๊ฐ€ ๊ณต๊ฐœ๋˜์–ด ์žˆ๋‹ค. · ๊ตฌ๊ธ€ ํด๋ผ์šฐ์Šค ์„œ๋น„์Šค์™€ ์†์‰ฝ๊ฒŒ ์—ฐ๋™์ด ๊ฐ€๋Šฅํ•˜๋‹ค. · ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“  ์•ฑ์„ Google Play Store๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. · IOS์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ์ ์œ ์œจ์ด ์ƒ๋‹นํžˆ ๋†’๋‹ค. ๐Ÿ’กAndroid์˜ 4๋Œ€ ์ปดํฌ๋„ŒํŠธ(๊ตฌ์„ฑ ์š”์†Œ) Activity · ์‚ฌ์šฉ์ž์—๊ฒŒ ์ง์ ‘์ ์œผ๋กœ ๋ณด์ด๋Š” ํ™”๋ฉด์„ ์˜๋ฏธํ•œ๋‹ค. ex) ์•ฑ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‚˜์˜ค๋Š” ํ™”๋ฉด Service · ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘..
[Kotlin] ๋„์„œ ๊ฒ€์ƒ‰ ์•ฑ ๋งŒ๋“ค๊ธฐ๏ผ’ ViewBinding๊ณผ Room, Retrofit2๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฑ…์˜ ์ด๋ฏธ์ง€๋Š” url๋กœ ๋“ค์–ด์˜ค๋Š”๋ฐ ์ด url์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด Glide๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. build.gradle (Module) plugins { ... id 'kotlin-kapt' } android { ... buildFeatures { viewBinding = true } } dependencies { ... // Retrofit2 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' // Glide implementati..
[Kotlin] ๋„์„œ ๊ฒ€์ƒ‰ ์•ฑ ๋งŒ๋“ค๊ธฐ๏ผ‘ ๋„์„œ ๊ฒ€์ƒ‰ ์•ฑ์„ ๋งŒ๋“ค๊ธฐ ์ „์— Retrofit2์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•ด๋ด…์‹œ๋‹ค. โ–ช๏ธFragment https://jslee-tech.tistory.com/13 (Retrofit2) 1. ์‹œ์ž‘ํ•˜๊ธฐ 1. Retrofit2 ๋ž€? Android์—์„œ REST API ํ†ต์‹ ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Type-Safe ํ•œ HTTP ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ „๋‹ฌ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ Client๊ฐ€ ํ•„์š”ํ•œ ํ˜•ํƒœ์˜ ๊ฐ์ฒด๋กœ ์ „๋‹ฌ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ ์กด์žฌํ•˜๋Š” HTTP ํ†ต์‹  jslee-tech.tistory.com ๋จผ์ € UI ๊ตฌ์„ฑ๋ถ€ํ„ฐ ํ–ˆ์œผ๋ฉฐ ์ด 5๊ฐœ์˜ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. activity_main.xml fragment_home.xml fragment_searce.xml history_list_item.xml search_list_item.xml..
[Kotlin] Note ์•ฑ ๋งŒ๋“ค๊ธฐ๏ผ” ๋จผ์ € ์‚ญ์ œ ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•ด ์คŒ. fragment_detail.xml ... ... ์ด์ œ ์‚ญ์ œ ๊ธฐ๋Šฅ์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋. DetailFragment.kt package com.ta2gi.note.fragment import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.ta2gi.note.MainActivity import com.ta2gi.note.R import com.ta2gi.note.databinding.FragmentDetailBinding import com.ta2gi...
[Kotlin] Note ์•ฑ ๋งŒ๋“ค๊ธฐ๏ผ“ Room์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค˜์•ผ ํ•จ. plugins์™€ dependencies์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด ์คŒ. build.gradle (module) plugins { ... id 'kotlin-kapt' } android { ... } dependencies { ... // room def roomVersion = "2.4.3" implementation "androidx.room:room-ktx:$roomVersion" kapt "androidx.room:room-compiler:$roomVersion" } Room์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 3๊ฐœ์˜ ํŒŒ์ผ(Dao, Database, Entity)์„ ๋งŒ๋“ค์–ด ์ค˜์•ผ ํ•จ. Entity๋Š” ์ „์— ์šฐ๋ฆฌ๊ฐ€ ์ผ๋˜ NoteEntity ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ์“ฐ๊ณ  ..
[Kotlin] Note ์•ฑ ๋งŒ๋“ค๊ธฐ๏ผ’ ViewBinding์„ ์ถ”๊ฐ€ํ•ด ์คŒ. build.gradle (module) android { ... buildFeatures { viewBinding = true } } ๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ ์ถ”๊ฐ€, ์ƒ์„ธํ™”๋ฉด, ์ˆ˜์ •์˜ ๊ธฐ๋Šฅ๋“ค์„ ๋งŒ๋“ค์—ˆ์Œ. ์„ค๋ช…์€ ์ฃผ์„์œผ๋กœ ๋‹ค ํ•ด๋†จ์Œ. HomeFragment.kt package com.ta2gi.note.fragment import android.os.Bundle import android.util.Log import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.ta2gi.note.MainActi..
[Kotlin] Note ์•ฑ ๋งŒ๋“ค๊ธฐ๏ผ‘ ์ด๋ฒˆ์— ๋งŒ๋“ค Note ์•ฑ์—์„œ๋Š” Fragment์™€ Room์„ ์จ๋ณด๋ ค๊ณ  ํ•จ. โ–ช๏ธFragment https://heaven0713.tistory.com/58 [Kotlin] ํ”„๋ž˜๊ทธ๋จผํŠธ(Fragment) ์ด๋ฒˆ ์†ํŠธ ์„ธ๋ฏธ๋‚˜์—์„œ ์ค‘์‹ฌ์ ์œผ๋กœ ๋‹ค๋ฃฌ๊ฒŒ ํ”„๋ž˜๊ทธ๋จผํŠธ์™€ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ์˜€๋‹ค. ๊ทผ๋ฐ (์•„์‰ฝ๊ฒŒ๋„) ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ๋กœ ๋ธ”๋กœ๊ทธ์— ๊ธ€์„ ์“ด ์ ์ด ์žˆ์œผ๋ฏ€๋กœ ๋‚˜์ค‘์— ๊ทธ ๊ธ€์„ ์ˆ˜์ •ํ•˜๊ธฐ๋กœ ๋งˆ์Œ๋จน๊ณ  ํ•œ๋ฒˆ๋„ ์ž‘์„ฑ heaven0713.tistory.com โ–ช๏ธRoom https://frtt0608.tistory.com/103 [AOS] ROOM์ด๋ž€? Android์—์„œ ROOM์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ? ROOM์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ Java ๋˜๋Š” Kotlin ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•ด์ฃผ๋Š” ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ORM(Object Relational Mappi..