본문 바로가기

IT/Android

9/25 read post

728x90
반응형

1.

출처 : How AndroidX changes the way we work with Activities and Fragments

요약 : How AndroidX changes the way we work with Activities and Fragments

출처 : androidX 패키지에서 activity 와 fragment API 에 대한 많은 개선사항이 도입되었는데, 해당 부분에 대해 설명합니다. Activity 및 fragment 생성자에서 layoutId 를 인자로 사용해서 호출하면 setContentView 를 호출할 필요가 없습니다. onSaveInstanceState 와 유사한 메커니즘인 SavedStateRegistry 를 설명합니다.

 

2.

출처 : 안드로이드의 Resources 초기화 및 관리

제목 : 안드로이드의 Resources 초기화 및 관리

요약 : 안드로이드 resource 가 어떻게 초기화되고 설정되는지 내부 과정을 분석합니다. activityContext 와 applicationContext 의 resource 설정을 분석합니다.

 

3.

출처 : Android MVI-Reactive Architecture Pattern

제목 : Android MVI-Reactive Architecture Pattern

요약 : MVI 아키텍처 패턴에 대해서 설명합니다. MVI 가 무엇인지, 그리고 MVI 가 어떻게 동작하는지, 장단점은 무엇인지 설명합니다. 장점은 데이터 흐름 추적이 쉽고, 예측이 가능하고, 디버깅이 쉽고, 책임이 분리되고, 테스트가 쉬운 장점이 있고 단점은 많은 상용구 코드가 생성되고 많은 객체를 생성해야 해서 앱 메모리 관리에 많은 비용이 발생하는 것입니다. 이후 MVI 프로젝트를 생성하는 법을 코드로 살펴봅니다.

 

4.

출처 : Kotlin Flow API

제목 : Kotlin Flow API

요약 : flow에 대해서 설명하고 flowBuilder 몇가지를 설명합니다. 그리고 flowBuilder 를 사용하는 예제를 통해서 어떻게 사용하는지 설명합니다.

 

5.

출처 : https://medium.com/proandroiddev/my-journey-on-reducing-apk-size-at-getmega-977aabf18068

제목 : My Journey on Reducing APK size at GetMega

요약 : apk size 를 줄이기 위한 과정을 설명합니다. android sutdio 의 analyze Apk 옵션을 통해 apk 용량을 분석하고 png 를 webp 로 바꿨습니다.lint 로 사용하지 않는 resource 를 삭제하였습니다. data class 를 class 로 변경할 경우 저자의 경우에는 487KB → 295.9KB 로 약 40퍼센트 감소했습니다. enableR8의 fullMode 를 사용할 경우 오류가 발생했습니다.

 

6.

출처 : GloballyDynamic: Dynamic delivery during development

제목 : GloballyDynamic: Dynamic delivery during development

요약 : GloballyDynamic 에 대해서 설명합니다. 단점으로는 모든 앱 스토어/배포 플랫폼에서 지원되지 않습니다. GloballyDynamic 을 사용하면 느린다운로드 속도, 분할 설치 요청을 수행할 서버에 대한 연결 끊김, 분할 설치 요청 취소, 다중 분할 설치 세션 테스트가 가능합니다. 사용방법은 globallyDynamic plugin 을 설치하고 android studio 임베디드 서버를 사용하도록 앱을 구성해야 합니다. 그리고 사용하도록 코드를 수정하고 빌드 installation option 을 APK from app bundle 로 하면 분할 APK 를 다운로드하여 설치할 수 있습니다.

 

7.

출처 : String vs StringBuilder vs StringBuffer

제목 : String vs StringBuilder vs StringBuffer

요약 : string, stringBuilder, StringBuffer 를 비교합니다. string 은 내용이 자주 변경되지 않는 경우 나머지 2클래스보다 메모리 효율적이고, stringBuffer는 스레드로부터 안전하지만 syncronized되기 때문에 비효율적입니다. stringBuilder는 스레드로부터 안전하지 않지만 synchronized 되지 않기 때문에 StringBuffer 보다 효율적입니다.

 

8.

출처 : 6 Thread Safety Tips You Must Know

제목 : 6 Thread Safety Tips You Must Know

요약 : 쓰레드 안정성 문제를 해결하기 위한 방법을 소개합니다. synchronized 를 사용하거나 JUC 패키지에서 lock, unlock 을 사용하거나 AtomicInteger 같은 CAS 를 사용하거나 volatile 을 사용하거나 ThreadLocal 사용하라고 설명합니다. DB 를 이용하여 쓰레드 안정성 문제를 해결할 수도 있다고 설명합니다.

 

9.

출처 : 20 Git Commands Every Developer Should Know

제목 : 20 Git Commands Every Developer Should Know

요약 : 개발자가 알아야 할 git commands 20 가지에 대해서 설명합니다.git init, git remote add origin, git remote, git status, git add, git reset, git commit, git push -u origin, git fetch, git pull, git rm -r -cached, git branch, git checkout --track, git checkout, git merge, git merge --abort, git merge -X, git reset -hard Head, git clean -f, git clean -d, git bisect , git reset Head^ 에 대해서 설명합니다.

 

10.

출처 : Intercepting everything with CoordinatorLayout Behaviors

제목 : Intercepting everything with CoordinatorLayout Behaviors

요약 : coordinatorLayout 에 대해 설명하고 behavior 에 대해서 설명합니다. behavior 를 사용하면 touch event 를 가로챌 수 있고, fitSystemWindows 를 이용하여 windowInset 을 제어할 수 있습니다. measure 와 layout 을 가로챌 수 있고 layout_anchor 를 이용하여 뷰 간의 종속성을 구축할 수 있습니다. 이렇게 coordinatorLayout 이 할 수 있다는 다양한 intercept 동작에 대해서 설명합니다.

선정 : 자세히 모르고 있는 coordinatorLayout 의 다양한 기능에 대해서 설명해서 선정합니다.

 

소요시간 : 3시간

728x90
반응형