[Android] 소비자에서 생산자로.

Gahee Han·2021년 1월 6일
0

android

목록 보기
1/1

2018~2020 Android Development

안드로이드 개발에 발을 들인지 벌써 3년째다. 당분간 3-4개월 정도는 여태껏 내가 배운 것들, 그리고 그 과정에서 깨달은 것들을 정리할 것이다. 또한 다큐먼트만 보고 써먹은 개념들의 원리를 파악하는 시간을 가지며 보내고싶다.

Coursera 에서 알고리즘 강의를 들으면서 중간에 교수님께서 해주신 말씀이 생각난다. 자료구조를 대하는 자세는 그 사람의 숙련도에 따라서 다른데, 중수는 Client 입장에서 문제 해결에 필요한 자료구조를 적절히 골라 사용할 수 있는 사람이다. 고수는 단지 Client 입장에 그치지 않고 적극적으로 자신에게 필요한 자료구조를 만들어내는 사람이다. 중수와 고수의 핵심적인 차이는 바로 지식을 소비하느냐, 지식을 생산하느냐 에 달려있다.

안드로이드 플랫폼의 소비자로써 보낸 시간이 벌써 3년이다. 이제는 나도 단순한 소비자에 그치지 않고 생산자로 탈바꿈할 때가 된 것 같다.

목차

A. 레이아웃 관련 내용들

  1. 레이아웃 관련 지식

    • xml 이 왜 사용되었는지, 장점과 단점, 동작 원리
    • Data Binding 이 왜 등장하였는가, 장점과 단점, 동작 원리
    • Jetpack Compose 가 안드로이드 레이아웃 패러다임을 어떻게 바꾸는지.
    • Constraint Layout 의 장점과 단점, 활용 방법.
    • Material Design Guide 에서 참고하면 좋은 점들, Customizing TIP.
    • 프로젝트 예시 : 긴 텍스트가 있는 카드뷰를 만드는 경우
  2. RecyclerView

    • 핵심 개념
    • 동작 원리
    • Customizing : 채팅 화면 만들기
    • Abstraction : 보일러플레이트 코드를 조금이라도 줄일 수 있는 방법
    • Jetpack Compose 에서 아주 간단해지는 리스트 만들기
    • 번외) Setting 화면 만들때도 RecyclerView 를 사용해야 하나?
    • 번외) RecyclerView Swipe / Pull to Refresh 구현하기
  3. ViewPager/ViewPager2

    • 핵심 개념
    • 동작 원리
    • Customizing : 마진 조정해서 한 화면에 여러 페이지 띄우기, 페이지를 원형으로 띄우기 등
    • Fragment 와 결합된 ViewPager 에 대하여 : 탭 화면 만들기
  4. Widget 만들기

    • 위젯의 동작 개념 (브로드개스팅)
    • 위젯을 만들 때 유의할 점들
    • 사이즈 정하고 위젯에 데이터 띄워보기 (RSS 프로젝트 코드 예시로 설명하기)
  5. Layout관련 프로젝트 코드 설명

    • 트래곤 : 접혔다가 펴지는 Collapsible Card 만들기, 데이터 띄우기
    • 마이펫밀리 : 동적으로 추가되는 펫 카드 만들기
    • 핫초코 : Bottom Sheet Dialog 백그라운드 커스터마이징 하기
    • 영화포스터 : Scrim Gradient 를 이용한 collapsible layout
  6. UI 테스팅

    • UI 테스팅 예시 (구글 코드랩 참고)
    • 에스프레소 맛보기

B. 아키텍처

  1. MVP
  2. MVC
  3. MVVM
  4. MVI

C. 네트워킹

  1. Retrofit

    • 동작 원리
    • 인터셉터 활용하기
    • 서버에서 유저에이전트로 클라이언트 구분해주었던 경험
    • 폼 데이터 전송하기
    • 네트워킹 코드에 의존성 주입한 경험 (트래곤, Hilt)
  2. Volley

    • Retrofit 과 다른 점 ? 장점과 단점.
    • Volley 를 사용해 네트워킹 처리한 프로젝트 예시 코드
  3. Java HttpRequest 로 직접 처리하기

    • 직접 처리했던 프로젝트 예시 코드 설명

D. 로컬 데이터베이스

  1. SQLite 어쩌구 API 사용해보기
  2. Room API 사용하기
    • 프로젝트 예시 코드
    • API 사용하는 단계, DB 생성 코드 설명, 내부 동작 원리

E. 사용자 권한 받기

  1. 안드로이드 최신 권한 관련 룰
  2. 권한을 보통은 한꺼번에 받는다. (시중 앱 스크린 캡처, 구현해보기)
  3. 서버에 알림 관련 설정 전달하기
  4. 약관 동의 화면 구현 경험 공유해보기

F. 성능 개선

  1. 네트워킹 Pagination 구현하기
  2. 로컬 DB 에 캐싱하기
  3. Leak Canary 사용해서 메모리 누수 감지하기
  4. 예시 코드 작성해보기 - TMDB API 사용해서 pagination, 이미지 캐싱, 메모리 누수 감지 테스트 작성해보기
profile
No Pain, No Gain

0개의 댓글