일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 영어공부
- Android 12
- Android Jetpack
- 프로그래머스 알고리즘
- Android ProgressBar
- Android
- Kotlin
- 영어독립365
- OkHttp Interceptor
- Android 12 대응
- Android Navigation
- DataBinding
- 안드로이드 fcm
- Android Interceptor
- Android WebView
- 안드로이드 카카오 로그인
- 알고리즘 자바
- 습관만들기
- MVP Architecture
- 안드로이드
- 카카오 알고리즘
- Android DataBinding
- WebView
- 안드로이드 갤러리 접근
- Java
- Android ViewPager2
- 66챌린지
- scope function
- android recyclerview
- Kotlin FCM
- Today
- Total
목록분류 전체보기 (133)
Developer Geek
Background vs Foreground 실행(Push 알림, Background vs Foreground) Push 알림을 구현하게 되면, Background 상태에서의 액션과 Foreground 상태에서의 액션을 구분해야할 때가 있다. 예를 들어 Foreground 상태에서는 앱의 특정 Activity를 실행시킬 수 있지만, Background 상태에서는 Splash 화면을 보여준 이후에 특정 Activity로 이동하도록 구현해야할 수도 있다. 이때 앱의 상태값을 확인하여 분기처리 할 수 있는데, Application 클래스를 상속받는 클래스를 통해 상태값을 관리할 수 있다. MyApplication.kt: Application, Livecycleobser 상속 Application 상속: App..
Application Class란 전역적으로 앱의 상태를 유지하기 위한 기본 클래스이다. 우리는 Application을 상속받아 우리만의 ex). MApplication을 구현할 수 있다. 단, 사용하기 위해서는 AndroidManifest.xml의 태그의 속성인 “android:name”의 값을 우리가 지정한 클래스 이름(MApplication)으로 추가해야한다. 마지막으로 Application() 클래스는 다른 클래스들보다 가장 먼저 생성된다. Application Class는 가장 먼저 객체화 된다!! 이러한 특징에 전역적으로 사용할 수 있어서 Application()을 상속받아 나만의 객체를 많들면 다양하게 활용할 수 있는 것 같다. 가장 대표적으로는 첫 번째 Activity를 만들기 전에 실행해..
Higher-Order Functions 란 Higher-Order Functions(고차함수)란 함수의 인자로 다른 함수를 받거나 또는 함수 자체를 반환하는 함수이다. 함수 인자로 함수를 받는 고차함수 fun calculate(x: Int, y: Int, operation: (Int, Int) -> Int): Int { // 1 return operation(x, y) // 2 } fun sum(x: Int, y: Int) = x + y // 3 fun main() { val sumResult = calculate(4, 5, ::sum) // 4 val mulResult = calculate(4, 5) { a, b -> a * b } // 5 println("sumResult $sumResult, mu..
Builder Pattern 이란 Builder Pattern은 객체지향 프로그래밍에서 다양한 객체 생성 문제에 대한 유연한 솔루션을 제공하기 위해 설계된 GoF 디자인 패턴 중 하나이다. Builder Pattern의 목적은 복잡한 객체의 구성을 해당 표현과 분리하는 것이다. 빌더 패턴은 다음과 같은 문제를 해결한다. 별도의 Builder 객체에서 복잡한 객체의 일부를 만들고 조합하는 것을 캡슐화한다. 클래스는 객체를 직접 생성하는 대신 Builder 객체에게 객체 생성을 위임한다. 클래스 안에서 직접 복잡한 객체의 대부분을 만들고 조합하는 건 유연하지 않다. 복잡한 객체의 특정 표현을 생성하도록 클래스를 커밋하고 나중에 클래스와 독립적으로 표현을 변경할 수 없도록 한다. 클래스는 복잡한 객체의 다른 ..
Model + View + ViewModel Model: 데이터 원본의 추상화를 담당한다. View: ViewModel에게 유저의 action을 알려주는 역할을 담당한다. 그리고 ViewModel를 구독하여 UI Data를 관리하고 application logic을 담당하지 않는다. ViewModel: View와 관련된 데이터의 흐름을 관장한다. 추가적으로 Model과 ViewModel을 연결한다. MVVM 특징 App의 생명주기 상태가 유지된다. UI 요소는 비즈니스 로직과 무관하다. 비즈니스 로직과 db 운영과의 종속성이 없다. 프로젝트를 이해하고 코드를 읽는 것이 쉽다. MVVM 장점 유지보수: 비즈니스 로직이 View와 독립적으로 돌아가기 때문에 수정보완이 빠르고 다음 버전을 신속하게 출시할 수 ..
Android FCM 프로젝트 셋팅 Android FCM 기본 예제 Android FCM 클릭 이벤트 들어가며 Android App 개발 프로젝트를 진행하는 중, Notification 개발을 맡았다. 앱이 Foreground 일 때는 내가 원하대로 Notification 클릭 이벤트(특정 화면 호출|이동)가 동작했지만, 앱의 상태가 Background인 경우에는 Notification은 잘 왔지만 클릭 이벤트가 동작하지 않았다. Foreground상태를 처리하는 예제는 무수히 많았지만, Background에서 이벤트처리 관련해서는 정보 찾는데 어려웠어서 Background에서의 Notifiaction 클릭 이벤트 처리를 위한 기본 배경 지식을 정리하려 한다. FCM 이란 Firebase Cloud Me..
인터셉터란 Retrofit Singletone Pattern Singleton Pattern build.gradle(:app): Retrofit 사용을 위한 Dependency 추가, GsonConverter 추가 dependencies { .. // https://mvnrepository.com/artifact/com.squareup.retrofit2/retrofit implementation("com.squareup.retrofit2:retrofit:2.9.0") // gson converter implementation 'com.squareup.retrofit2:converter-gson:2.9.0' .. } Request Interceptor For Adding Headers RetrofitCli..
개요 Interceptors란 API 통신에서 요청에 대해 monitor, rewrite 그리고 retry 할 수 있는 강력한 메커니즘이다. Interceptor를 통해서 우리는 API 통신을 만들 때, 통신 과정을 모니터링 하거나 특별한 작업을 수행할 수 있다. 쉽게 말해서, Interceptor 기능은 공항 보안 요원이 보안 검사하는 과정과 비슷하다. 그들은 먼저 탑승권을 확인하고, 승인한 다음에서야 우리가 지나갈 수 있도록 하는 것처럼 말이다. Interceptor는 중앙에서 API 호출들을 모니터링 하는 것처럼 다양하게 사용된다. 일반적으로 우리는 각각의 network 호출에 대해 logger를 달아야 할 필요가 있다. 하지만 Interceptor를 이용한다면 하나의 logger를 추가하여 모든 ..