Android
-
Kotlin MVVM(Dagger2, Room, Retrofit)Android 외 개발 2020. 3. 5. 16:09
기존까지는 MVP 패턴이 프로젝트 구성에 적합하여 사용하였지만, 새롭게 만들 Demo Application 에는 DB 와 추후 서버 연결도 사용할수 있어서 MVVM 패턴으로 구성을 하게 되었습니다. 최근 많이 사용하고 있어 구글 검색으로 알게 되었으며, 틀린 부분이 있을 수 있으니 양해 부탁드립니다. Project 구성을 위해 build.gradle 파일에 dependencies 를 추가하였습니다. apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { ...생략 compileOptions {..
-
Android Notification exampleAndroid 외 개발 2020. 1. 7. 16:07
Notification을 실행하기 위해서 먼저 Builder를 구성하였습니다. val notificationBuilder: NotificationCompat.Builder = NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID) .apply { setSmallIcon(R.drawable.icon) setDefaults(Notification.DEFAULT_ALL) setContentTitle(title) setContentText(content) setAutoCancel(false) setWhen(System.currentTimeMillis()) priority = NotificationCompat.PRIORITY_MAX setContentIntent(p..
-
[kotlin] SharedPreferences exampleAndroid 외 개발 2020. 1. 3. 14:33
SharedPreferences 를 기존 Java 에서는 Singleton 으로 사용하고 있었습니다. kotlin 도 동일한 구조로 변경해 보았습니다. object Preferences { private const val DATA = "DATA" private lateinit var preferences: SharedPreferences fun init(context: Context) { preferences = context.getSharedPreferences(context.packageName, Activity.MODE_PRIVATE) } var data: String get() = preferences.getString(DATA, "") ?: "" set(value) = preferences.ed..
-
Kotlin errorAndroid 외 개발 2019. 12. 4. 11:20
Java 소스를 Kotlin 으로 변환 하면서 발생한 에러를 수정하면서 찾아본 내용을 정리하였습니다. Example1. Incompatible types: Int and Byte 변경 전: fun test(b:Byte): Int{ return when(b){ 0x01 -> 1 0x02 -> 2 0x03 -> 3 else -> 4 } } 변경 후: fun test(b:Byte): Int{ return when(b){ 0x01.toByte() -> 1 0x02.toByte() -> 2 0x03.toByte() -> 3 else -> 4 } } Example2. Call uses reflection API which is not found in compilation classpath. Make sure you..
-
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91Android 외 개발 2019. 6. 20. 09:57
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 불러오는 중입니다... 에러 발생시 AndroidX 변환하면 해결.
-
CollapsingToolbarLayout exampleAndroid 외 개발 2019. 4. 19. 11:41
다른 앱들에서 많이 사용하고 있는 CollapsingToolbarLayout 를 이용한 Toolbar 를 예제로 구성해보겠습니다. https://developer.android.com/reference/android/support/design/widget/CollapsingToolbarLayout CollapsingToolbarLayout | Android Developers From class android.view.ViewGroup void addChildrenForAccessibility(ArrayList arg0) void addFocusables(ArrayList arg0, int arg1, int arg2) void addKeyboardNavigationClusters(Collection ar..
-
Custom Line Graph 그리기(Samsung Health Graph)Android 외 개발 2019. 4. 5. 19:43
프로젝트 진행 중 위와 비슷한 요일 그래프를 만들어야 되었고, Google 검색을 통해 비슷한 라이브러리들을 찾았지만 실패하였습니다. 가장 유사한 오픈 라이브러리는 MPAndroidChart(https://github.com/PhilJay/MPAndroidChart) 였지만, 화면 Touch drag and drop 처리가 잘 되지 않아서 포기 하게 되었습니다. 그래서 결국 직접 만들어 보기로 했습니다. 먼저 그래프는 RecyclerView 를 생성해서 그리도록 layout 을 구성하였습니다. Line 을 그릴 수 있도록 UI 를 만들었습니다. Line 의 넓이와 길이는 코드로 조절할 예정입니다. UI 부분을 코드로 만들어도 상관없을 것 같습니다. 그리고 Graph Line 색상의 bg_green_lin..
-
Android Console bug(SMS/Call permission 관련)Android 외 개발 2019. 4. 4. 13:58
Andorid application 중 일부가 SMS 인증시 문자 메세지에서 자동 입력 되도록 하는 기능이 들어가 있어서, 해당 권한을 사용하고 있습니다. 현재 그 기능들은 Google 사에서 문제가 되어 아래와 같은 메일을 받게 되었습니다. 해당 권한을 사용하기 위해서는 정당한 사유가 있어서 구글의 승인을 받거나, 아니면 대체 방식으로 구현을 요구하고 있습니다. https://android-developers.googleblog.com/2019/01/reminder-smscall-log-policy-changes.htmlhttps://play.google.com/about/privacy-security-deception/permissions/ 권한 | 개인정보 보호, 보안 및 부정행위 - Develop..