일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 ProgressBar
- 영어독립365
- Java
- DataBinding
- scope function
- 영어공부
- Android 12 대응
- 안드로이드 갤러리 접근
- Kotlin FCM
- 66챌린지
- Android WebView
- 안드로이드
- Android 12
- Android
- OkHttp Interceptor
- WebView
- Android Navigation
- 프로그래머스 알고리즘
- MVP Architecture
- 카카오 알고리즘
- Android ViewPager2
- 안드로이드 fcm
- android recyclerview
- Kotlin
- 알고리즘 자바
- Android Jetpack
- Android Interceptor
- 안드로이드 카카오 로그인
- Today
- Total
목록분류 전체보기 (137)
나미래 Android 개발자

개요 모바일에서 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]으로는 소수..

타겟넘버 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이..