일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 ProgressBar
- 66챌린지
- 안드로이드 갤러리 접근
- Android 12 대응
- Android DataBinding
- 영어공부
- 습관만들기
- 안드로이드 카카오 로그인
- 영어독립365
- Android WebView
- Android Interceptor
- Android 12
- Android Jetpack
- Kotlin FCM
- MVP Architecture
- scope function
- 프로그래머스 알고리즘
- android recyclerview
- Android Navigation
- Kotlin
- 알고리즘 자바
- Android
- DataBinding
- WebView
- 안드로이드
- 카카오 알고리즘
- Android ViewPager2
- OkHttp Interceptor
- Java
- 안드로이드 fcm
- Today
- Total
목록안드로이드 (92)
Developer Geek
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..
에러: 웹뷰에서 보여지는 웹 페이지의 버튼 작동 X 원인 Android에서는 기본적으로 보안을 위해 JavaScript를 허용하지 않는다. 해결방법 WebView를 초기화 할 때, JavaScript 사용을 허용한다. binding.webView.settings.javaScriptEnabled = true
에러: 앱이 아닌 기본 웹 어플리케이션에서 열리는 웹 페이지 해결방법 내가 만든 WebView의 속성 값 중 webViewClient를 안드로이드 SDK에서 제공하는 WebViewClient로 덮어씌운다. binding.webView.webViewClient = WebViewClient() ... binding.webView.loadUrl("https://google.com")
인터넷 접근 권한 허용 AndroidManifest.xml 파일에서 manifest 태그 안에 를 추가해야 앱에서 인터넷을 통신을 사용할 수 있다. AndroidManifest.xml
에러: ERR_CLEARTEXT_NOT_PERMITTED 원인 웹뷰가 실행되었지만, ERR_CLEARTEXT_NOT_PERMITTED와 같은 에러가 발생할 때가 있다. 그 이유는 URL을 통해서 웹 페이지를 로드하는데 https가 아닌 http 프로토콜을 사용하여 보안이 취약하기 때문이다. 해결방법 이를 해결하기 위해서는 AndroidManifest.xml 파일에서 application태그 속성으로 android:usesCleartextTraffic="true"를 추가해야 한다.