| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- android recyclerview
- Kotlin FCM
- WebView
- 안드로이드 갤러리 접근
- Android WebView
- MVP Architecture
- 66챌린지
- Android
- 카카오 알고리즘
- Android ViewPager2
- Android Interceptor
- Kotlin
- 코틀린 코루틴
- 영어독립365
- Android 12 대응
- 프로그래머스 알고리즘
- 습관만들기
- scope function
- Android 12
- Android Navigation
- Android ProgressBar
- OkHttp Interceptor
- Java
- 안드로이드 카카오 로그인
- 안드로이드
- DataBinding
- coroutine
- 알고리즘 자바
- 영어공부
- Android Jetpack
- Today
- Total
목록전체 글 (142)
나미래 Android 개발자
Fragment Fragment는 앱의 UI의 재사용 가능한 부분을 나타낸다. Fragment는 자체 레이아웃을 정의 및 관리하고 자체 수명 주기를 보유하며 자체 입력 이벤트를 처리할 수 있다. Fragment는 자체적으로 수행될 수 없으며 activity 또는 다른 fragment에서 호스팅 되어야 한다. Fragment lifecycle 각각의 Fragment 객체는 각자의 생명주기를 가지고 있다. 사용자가 앱을 사용할 때, fragment의 생명주기는 추가, 제거 및 화면에 들어가거나 나올 때 다양한 상태로 전환된다. onCreate() Fragment Lifecycle Fragment Callback View Lifecycle CREATED onCreate() - Fragment를 생성하면서 넘겨..
Retrofit Singleton Retrofit2 in Kotlin 개요 모바일에서 HTTP API 통신을 할 때 사용하는 라이브러리이다. REST 기반의 웹서비스를 통해 JSON 구조를 쉽게 가져오고 업로드할 수 있다. HTTP API를 Interface로 구현할 수 있다. interface GitHubService.. devgeek.tistory.com Singleton Class in Kotlin 개요 앱에서 딱 한번만 생성되고 전역에서 사용할 객체가 필요하다면 우린 Singleton Pattern을 사용하면 된다. Singleton Pattern 은 해당 클래스에서 오직 하나의 객체만을 사용하도록 제한하는 것이다. devgeek.tistory.com 왜 Retrofit을 Singletone으로?..
개요 앱에서 딱 한번만 생성되고 전역에서 사용할 객체가 필요하다면 우린 Singleton Pattern을 사용하면 된다. Singleton Pattern은 해당 클래스에서 오직 하나의 객체만을 사용하도록 제한하는 것이다. 그래서 Singleton Pattern을 구현하기 위해서는 Singleton Class을 먼저 만들어야 한다. 이번 글에서는 Kotlin을 이용해 Singleton Class 만드는 법을 알아 보도록 한다. Singleton Class Singleton Class 는 오직 하나의 객체만이 생성되고 어디서나 사용될 수 있는 클래스이다. NetworkService, DatabaseService 등 오직 하나의 객체만 필요한 경우에 사용된다. Retrofit2 Singleton 예제 Sing..
개요 모바일에서 HTTP API 통신을 할 때 사용하는 라이브러리이다. REST 기반의 웹서비스를 통해 JSON 구조를 쉽게 가져오고 업로드할 수 있다. HTTP API를 Interface로 구현할 수 있다. interface GitHubService { @GET("users/{user}/repos") fun listRepos( @Path("user") user: String ) } Retrofit class는 위에서 정의한 GitHubService Interface의 구현체를 생성한다. val retrofit = Retrofit.Builder() .baseUrl("https://api.github.com/") .build() val service = retrofit.create(GitHubService..
SwipeRefreshLayout 개요 Swiperefreshlayout를 이용하면 스와이프(드래그)하여 새로고침 UI 패언틀 구현할 수 있다. 앱 화면을 위에서 아래로 드래그 하면, delayMillis(1.5s) 동안 새로고침 UI 패턴이 동작한다. 새로고침이 동작하는 동안은 텍스트 내용이 사라졌다가 완료되면 다시 보여진다.실행화면 프로젝트 셋팅 viewBindnig viewBinding{ enabled true }위의 코드를 build.gradle(:app) 파일의 android{ } 속성 값으로 아래 코드와 같이 삽입한다. plugins { id 'com.android.application' id 'kotlin-android' } android { compileSdk ..
Retrofit2 개요 모바일에서 HTTP API 통신을 할 때 사용하는 라이브러리이다. REST 기반의 웹서비스를 통해 JSON 구조를 쉽게 가져오고 업로드할 수 있다. HTTP API를 Interface로 구현할 수 있다. public interface GitHubService { @GET("users/{user}/repos") Call listRepos(@Path("user") String user); } Retrofit class는 위에서 정의한 GitHubService Interface의 구현체를 생성한다. Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .build(); GitHubService ser..
LiveData 개요 LiveData는 관찰 가능한 데이터 홀더 클래스이다. 관찰 가능한 일반 클래스와 달리 LiveData는 수명 주기를 인식하는데 즉, Activity, Fragment, Service 등 다른 앱 구성요소의 LifeCycle고려한다. LifeCycle 을 인식하기 때문에 LiveData는 active lifecycle 상태에 있는 앱 구성요소 관찰자만 업데이트한다. LiveData의 이점 UI와 Data 상태값 일치 LiveData는 Observer Pattern을 따르기 때문에, 데이터가 변경될 때 Observer 객체에 알린다. 개발자는 구독된 객체가 변경되었을 때, UI를 업데이트하는 방식으로만 고려하면 된다. 그러므로 데이터가 변경될 때 마다 UI를 어떻게 업데이트 시킬 지 ..
Jetpack.ViewModel ViewModel 사용 이유 UI Controller의 데이터를 캡슐화하여 앱 구성이 변경되어도 데이터를 유지하기 위함이다. UI Controller 부하 원인: UI Controller에 DB나 Network에서 데이터 로드를 요구하는 경우. 결과: UI를 관리하는 클래스가 너무 키지게 된다. UI Controller에 과도한 책임을 할당하면 다른 클래스로 작업이 위임되지 않고, 단일 클래스가 혼자서 앱의 작업을 모두 처리하려고 한다. 또한 이런 방법으로 UI Contorller에 과도한 책임을 할당하면 테스트가 훨씬 더 어려워진다. UI Controller 로직에서 View 데이터 소유권을 분리하는 방법이 쉽고 효율적이다. 데이터가 복잡해지면 데이터 로드만을 담당하는 ..
Jetpack.ViewModel과 LiveData를 이용한 옵저버 패턴 개요 LiveData와 ViewModel 그리고 Observer Pattern을 이용하여 화면에 보여지는 TextView(UI)의 값을 변경하는데 있어서 데이터 처리 로직과 UI 로직을 분리한다. EditText에 값을 입력하여 더하기버튼 또는 빼기버튼 클릭 시, 산수 연산(데이터 처리 로직)을 ViewModel에서 처리하고 UI Controller(View)에서는 연산 값을 Observing하여 ViewModel에서 View에 UI 처리를 요청하지 않고 View단에서 자동으로 UI를 업데이트 하여 계산된 값을 보여준다. 실행 영상 build.gradle(Module) : ViewBinding 설정 build.gradle(Module..
소수 찾기 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbers return "17" 3 "011" 2 입출력 예 설명 예제 #1 [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다. 예제 #2 [0, 1, 1]으로는 소수..