본문 바로가기

android20

jitpack - Data Binding 분석하기 * 기존에 dataBinding { enabled = true } 가 활성화 되지 않았던 프로젝트에서 Binding 클래스로 전환시에 주의사항! 자동으로 만들어주는 Binding 클래스는 xml 파일을 만들면서 같이 만들어 준다. 그런데, dataBinding 옵션을 켜지 않은 상태에서 만들어 놓았던 xml 파일은 Binding 클래스를 생성해 주지 않았기에 삭제하고 다시 생성해야만 Binding 클래스가 만들어진다. (이거때문에 반나절의 삽질 시간이 허허) 출처 https://codelabs.developers.google.com/codelabs/android-databinding/#0 Android Data Binding Congratulations! You completed the codelab, .. 2020. 3. 13.
Android 저장소 시스템 다른 앱에서 접근 불가능한 고유 앱 영역. (다른앱과 공유 안된다.) * 사용 함수 getFilesDir() : 앱과 고유하게 연결된 파일 시스템의 디렉터리를 표시하는 File 개체를 반환 getDir(name, mode) : 앱의 고유한 파일 시스템 디렉터리 내에 새 디렉터리를 생성하거나 기존 디렉터리를 엽니다. getCacheDir() : 앱과 고유하게 연결된 파일 시스템의 캐시 디렉터리를 표시하는 File 개체를 반환 이 디렉터리를 임시파일용으로 정기적으로 지워야하고, 디스크 공간이 부족해지면 시스템에서 알아서 삭제한다. * 사용자에게 받아야 할 권한 종류: 없음 * 예시 코드 fun saveInternalStorage(context: Context, fileName: String, bitmap: .. 2020. 3. 5.
RxJava 의 핵심 기술 - concat, merge, zip 1. Concat Concatenate : '사슬 같이 잇다' 라는 뜻 A Task와 B Task 가 있다면, A -> B 순으로 작업을 진행한다. val observer1: Observable = Observable.create { emitter -> GlobalScope.launch { delay(1000) Log.i("test_log","obs 1") emitter.onNext("1") emitter.onComplete() } } val observer2: Observable = Observable.create { emitter -> GlobalScope.launch { delay(1000) Log.i("test_log","obs 2") emitter.onNext("2") emitter.onComp.. 2020. 2. 27.
RxJava 란 https://m.post.naver.com/viewer/postView.nhn?volumeNo=6721006&memberNo=34635212 빨리 써먹는 RxJava와 Android [BY 부스트코스] SUMMARYRxJava 와 Android Reactive Programming 은 최근 2년간 유행어처럼 번져 나간 ... m.post.naver.com 간단하게 RxJava란 무엇일까? => '비동기 처리를 효과적으로 할 수 있게 도와주는 라이브러리' 라고 보면 된다. 내가 RxJava를 사용하게 된 이유는, Retrofit api 통신에서 여러 api 작업이 끝나는 시점을 catch 해야 하는데, 성공 시점에 차례차례로 api 들을 호출해야 하는 안좋은 구조를 개선하기 위해서이다. map() : 데.. 2020. 2. 4.
How to draw Rect Overlay View? 카메라 캡쳐 및 QR 코드 인식 영역에서 가운데가 뚫린 형태의 뷰가 많이 사용되고 있습니다. 위와 같이 가운데가 뚫린 Overlay 형태의 뷰를 그리는 방법에 대해서 알아보겠습니다. 원래는 xml 단계에서 처리할 수 있을거라 예상했지만, Round Corner 형태의 사각형을 사용하기 때문에 onDraw 단계에서 직접 그려주는 방법으로 방향을 잡았습니다. 안드로이드 뷰를 그리는 LifeCycle 함수 중, Overlay 커스텀 뷰 제작에서 사용할 것들만 간단히 살펴보겠습니다. 1) onMeasure() 에서 사이즈를 측정하고, 2) layout() 뷰의 위치와 크기를 할당합니다. 그리고 3) dispatchDraw() 에서 그립니다. 레이아웃인 뷰는 onDraw() 를 호출하지 않고, onDispatch.. 2020. 1. 5.
ViewPager를 가진 Dialog 구현 주의사항 Dialog 안에 ViewPager를 넣는다. 그리고 ViewPager에 FragmentPagerAdapter를 적용시킬때 다음의 에러가 발생한다. vp_space.adapter = PagerAdapter(supportFragmentManager) // 에러 vp_space.adapter = PagerAdapter(childFragmentManager) // 정상 동작 NestedFragment 들은 FragmentManager를 전달할 때 child의 것으로 전달해야 한다. 이걸 몰라서 반나절을.. 흑 https://developer.android.com/about/versions/android-4.2.html#NestedFragments Android 4.2 APIs | Android Develope.. 2020. 1. 2.