๐งฉ์๋๋ก์ด๋
[Android/Kotlin] ํธ์ ์๋ฆผ์ด ํ์ ์ผ๋ก ๋จ์ง ์์ ๋ Notification won't show up as a heads up notification
https://stackoverflow.com/questions/71482843/android-notification-wont-show-up-as-a-heads-up-notification Android notification won't show up as a heads up notification I am using the following code to show my notification: NotificationCompat.Builder builder = new NotificationCompat.Builder(context, context.getString(R.string. stackoverflow.com PRIORITY_HIGH, IMPORTANCE_HIGH๋ฅผ ์ ์ฉํด๋ ํ์ ์ด ๋จ์ง ์์์ ์ฝ์ง์ ..
[Android/Kotlin] Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE ...
์๋๋ก์ด๋ 12๋ก ๋์ด์ค๋ฉด์ ์๊ธด ๋ฌธ์ . ํด๊ฒฐ ๋ฐฉ๋ฒ 1 dependencies { implementation 'androidx.work:work-runtime-ktx:2.7.1' ... } ํด๊ฒฐ ๋ฐฉ๋ฒ 2 val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_MUTABLE); PendingIntent๋ฅผ ์ฌ์ฉํ๋ ๊ณณ์ PendingIntent.FLAG๋ฅผ ์ค์ ํด์ค๋ค. Android 12 ์ดํ ๋ถํฐ ๋ฐ๋์ ์ค์ ํด์ผํ๋ค. ์ ๋ 1๋ฒ์ ๋ฐฉ๋ฒ์ด ์๋์ 2๋ฒ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ์ต๋๋ค...!
[Android/Kotlin] getString(), getColor(), getDrawable() ์ฌ์ฉ๋ฒ (strings.xml, colors.xml, drawable.xml Resource ๊ฐ์ ธ์ค๊ธฐ)
getString() Activity, Fragment ์์ getString(R.string.normal) ๊ทธ ์ธ(BindingAdapter) @BindingAdapter("gradeColor") @JvmStatic fun setGradeColor(textView: TextView, grade: String) { textView.context.getString(R.string.good) ... getColor(), getDrawable() ContextCompat.getColor(mContext, R.color.custom_gray) ContextCompat.getDrawable(mContext, R.drawable.custom_bg)
[Android/Kotlin] MVVM ํจํด, AAC
MVVM ํจํด ์ ์ Model, View, ViewModel์ ์ฝ์ Model MVC์ ๋์ผ ์ฃผ๋ก DB ์ฌ์ฉ ๋๋ API ํธ์ถ์ ์๋ฏธ View Activity, Fragment (xml ํ์ผ + Activity, Fragment ํ์ผ) ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ์ ViewModel์ ๋ฐ์ดํฐ๋ฅผ ๊ด์ฐฐํ์ฌ UI ๊ฐฑ์ ViewModel์ ๋ ํผ๋ฐ์ค๋ฅผ ๊ฐ์ง ์ ์์ UI ๋ณ๊ฒฝ๊ณผ ๊ด๋ จ๋ ์ฌํญ๋ง ์ฒ๋ฆฌ (Model์ ์๋ฉด ์ ๋จ) ViewModel View๋ฅผ ํตํด ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์ผ๋ฉด Model์ ์๋ง์ ๋ฐ์ดํฐ ์์ฒญ Model์์ ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ์๋ง๊ฒ ๊ฐ๊ณตํ์ฌ ๊ฐ ๊ฐฑ์ View, Context์ ์กด์ฌ๋ฅผ ์๋ฉด ์ ๋จ MVVM ํจํด์์ View์ Model ์ฌ์ด์ ์์กด์ฑ์ด ์กด์ฌํ๋ฉด ์ ๋จ (View๋ ViewModel๋ง ๊ด์ฐฐํ๋..
[Android/Kotlin] MVP ํจํด
MVP ํจํด MVC ํจํด์ด ๋ญ์ง ๋ชจ๋ฅธ๋ค๋ฉด ๋จผ์ ์ด ๊ธ์ ๋ณด๊ณ ์ค์! https://ku-hug.tistory.com/187 [Android/Kotlin] MVC ํจํด MVC ํจํด ๋์์ธ ํจํด์ด ๋ญ์ง ๋ชจ๋ฅธ๋ค๋ฉด ๋จผ์ ์ด ๊ธ์ ๋ณด๊ณ ์ค์! https://ku-hug.tistory.com/181 MVC -> MVP -> MVVM ์์๋ก ๊ณต๋ถํ๊ฒ ๋ค. ๋์์ธ ํจํด์ด๋? ์ฝ๊ฒ ๋งํ๋ฉด ๋์์ธ ํจํด = ๊ฒ์ฆ" data-og-host="ku-hu.. ku-hug.tistory.com Model, View, Presenter์ ์ฝ์ Model MVC์ Model๊ณผ ๋์ผ View MVC์ View + MVC์ Controller (= xml ํ์ผ๊ณผ Fragment, Activity ํ์ผ) ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๊ณ ์ด๋ฒคํธ๋ฅผ Pre..
[Android/Kotlin] MVC ํจํด
MVC ํจํด ๋์์ธ ํจํด์ด ๋ญ์ง ๋ชจ๋ฅธ๋ค๋ฉด ๋จผ์ ์ด ๊ธ์ ๋ณด๊ณ ์ค์! https://ku-hug.tistory.com/181 [Android] ๋์์ธ ํจํด(์ฐธ๊ณ ๋งํฌ ๋ชจ์) ํ๋ก์ ํธ์ MVVMํจํด์ ์ ์ฉํ๊ณ ์์ผ๋ ์ ํํ ๊ฐ๋ ์ด ์์ง๋์ง ์์ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค. ์ฐ์ ๋์์ธ ํจํด -> MVC -> MVP -> MVVM ์์๋ก ๊ณต๋ถํ๊ฒ ๋ค. ๋์์ธ ํจํด์ด๋? ์ฝ๊ฒ ๋งํ๋ฉด ๋์์ธ ํจํด = ๊ฒ์ฆ ku-hug.tistory.com Model, View, Controller์ ์ฝ์. Model ์ถ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ๊ฐ์ข ์ฒ๋ฆฌ๋ฅผ ํ๋ค. (๋ฐ์ดํฐ ๊ฐ๊ณต, ์ถ๊ฐ, ์ญ์ ) View ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ ๋ถ๋ถ ๋ชจ๋ธ์ด ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ฅ๋ง ๋ด๋น (๋ก์ง์ด๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ๋ฉด ์๋จ) Controller ์ฌ์ฉ์์ ์์ฒญ์ ์ฒ..
[Android] ๋์์ธ ํจํด(์ฐธ๊ณ ๋งํฌ ๋ชจ์)
ํ๋ก์ ํธ์ MVVMํจํด์ ์ ์ฉํ๊ณ ์์ผ๋ ์ ํํ ๊ฐ๋ ์ด ์์ง๋์ง ์์ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค. ์ฐ์ ๋์์ธ ํจํด -> MVC -> MVP -> MVVM ์์๋ก ๊ณต๋ถํ๊ฒ ๋ค. ๋์์ธ ํจํด์ด๋? ์ฝ๊ฒ ๋งํ๋ฉด ๋์์ธ ํจํด = ๊ฒ์ฆ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ค๊ณ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ๋ค. ์๋๋ก์ด๋ ์ฑ์ ์ค๊ณํ ๋ ๋์์ธ ํจํด์ ์ ์ฉ ์ด๋ฏธ ๊ฒ์ฆ๋ ํจํด์ด๋ฏ๋ก ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ผ์ด ์ ๋ค. ์ ํํ๋ ํจํด์ด๋ฏ๋ก ๊ฐ๋ฐ์ ๊ฐ์ ์์ฌ์ํต์ด ์์ํด์ง๋ค. ๋ ์ ์ฐํ๊ณ ์ข์ ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๋์์ธ ํจํด์ ํฌ๊ฒ 3์ข ๋ฅ๋ก ๋๋๋ค. ์์ฑ ํจํด ๊ตฌ์กฐ ํจํด ํ์ ํจํด ์์ฑ ํจํด 1. ์ถ์ ํฉํ ๋ฆฌ ์ธํฐํ์ด์ค๋ฅผ ํ์ฉํ๋ ํจํด https://sup2is.github.io/2020/06/22/abstract-factory-pattern.html Sup2's bl..
Android Context(์ปจํ ์คํธ)
์ปจํ ์คํธ(Context) Android ์์คํ ์์ ์ ๊ณตํ๋ ์ถ์ ํด๋์ค, ์ปจํ ์คํธ๋ฅผ ํตํด ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ดํ ์์คํ ์ ๋ณด์ ์ ๊ทผ ๊ฐ๋ฅํ๋ค. (getPackageName(), getResources(), startActivity() ๋ฑ์ ๋ฉ์๋ ์ฌ์ฉ๊ฐ๋ฅ) ์ปจํ ์คํธ์๋ ๋ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค. 1. ์ดํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ(Application Context) ์ฑ๊ธํด ์ธ์คํด์ค(์ดํ๋ฆฌ์ผ์ด์ ์ด ์ด์์๋ ๋์ ๋ณ๊ฒฝ๋์ง ์์) ์กํฐ๋นํฐ๋ ์๋น์ค ๊ฐ์ ์ปดํฌ๋ํธ์์ applicationContext๋ฅผ ์ง์ ํธ์ถํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ 2. ๋ฒ ์ด์ค ์ปจํ ์คํธ(Base Context) ์กํฐ๋นํฐ, ์๋น์ค, ์ปจํ ํธ ํ๋ก๋ฐ์ด๋, ๋ธ๋ก๋ ์บ์คํธ ๋ฆฌ์๋ฒ์ ๊ธฐ๋ฐ ํด๋์ค ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๋ฐ๋ฅธ๋ค. (์ปดํฌ๋ํธ๊ฐ ์์ฑ๋๋ฉด ์๋ก ๋ค๋ฅธ ์ปจํ ์คํธ๊ฐ..
Android/Kotlin: OkHttp3๋ฅผ ์ฌ์ฉํ์ฌ WebSocket ํต์ ์ ํ๋ ๋ฒ
1. AndroidManifest.xml์ ์์ฑ 2. build.gradle(Module)์ ์์ฑ dependencies { implementation 'com.squareup.okhttp3:okhttp:3.12.12' ... } 3. ListenerClass ์์ฑ import android.util.Log import okhttp3.Response import okhttp3.WebSocket import okhttp3.WebSocketListener import okio.ByteString class WebSocketListener : WebSocketListener() { override fun onOpen(webSocket: WebSocket, response: Response?) { webSock..
Android Studio : SQLiteDatabase insert()๊ฐ ์ ์์ ์ผ๋ก ์๋ํ์ง ์์๋, SQLException ๋ฐ์ ์ค๋ฅ, insertOrThread ์ฌ์ฉ๋ฒ
๋ฐ๋ก ๋ณธ๋ก ๋ถํฐ ๋ค์ด๊ฐ์. ์๋๋ก์ด๋ ์คํ๋์ค ์๋จ์ View -> Tool Windows -> Device File Explorer ํด๋ฆญ data -> data ํด๋ฆญ ์ค๋ฅ๊ฐ ๋ฐ์ํ ํจํค์ง ์ด๋ฆ์ ์ฐพ์ ํ databases ํด๋์ ์๋ ๋ ํ์ผ์ ์ญ์ ํ ๋ค์ ์คํํ๋ฉด ๋๋ค. ๋ฐ์ํ ์ด์ 1. ์ฒ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์๋ชป ์์ฑํจ (,)๋ฅผ ๋นผ๋จน์.. val create = "create table memo (" + "no integer primary key" + "datetime integer "+ "mistake text "+ "result text "+ "feedback text" + ")" 2. ๋ค์ ํ ์ด๋ธ์ ์ ์์ ์ผ๋ก ์์ val create = "create table memo (" + "no..