Google Developer에서는 Architecture Components를 위한 다양한 양질의 training 자료들을 안내한다.
Github Sample, Codelabs, Google Develper Blog, YouTube Videos etc...
이렇게 다양하게 안내한다.
더욱 밀도 깊은 스터디를 위해 샘플을 꼼꼼하게 분석하기로 결심하였다.
그중에서 Github Sample의 Sunflower 프로젝트에 대해서 분석하고자 한다.
(자료를 참고하여 스터디한 자료이므로 오류가 있을 수 있습니다.)
Sunflower 프로젝트 자료는 아래 링크에 있습니다.
https://github.com/android/sunflower
android/sunflower
A gardening app illustrating Android development best practices with Android Jetpack. - android/sunflower
github.com
Sunflower 프로젝트란
- Android Jetpack을 이용한 Android 개발의 좋은 사례를 보여주는 앱입니다.
- 현재(20.12.30)까지도 계속 개발 중인 구글 프로젝트입니다.
Android Jetpack이란
- 개발자가 원하는 코드에 집중할 수 있도록 도우며 코드 작성, 보일러 플레이트 코드를 줄여줄 수 있도록 지원하는 라이브러리 모음입니다.
- Android Jetpack
Android 개발자 | Android Developers
Jetpack은 개발자가 관심 있는 코드에 집중할 수 있도록 권장사항 준수, 상용구 코드 제거, 모든 Android 버전과 기기에서 일관되게 작동하는 코드 작성을 돕는 라이브러리 모음입니다.
developer.android.com
- Sunflower 프로젝트는 Jetpack 요소들을 활용한 샘플 앱이라고 할 수 있습니다.
첫 시작
- 기존 안드로이드 개발 경험이 있는 사용자라면 안드로이드 스튜디오를 Import 하면 된다.
- 이 프로젝트는 Unsplash API 를 사용한다. 그러나 해당 API Key 를 사용하지 않아도 앱을 빌드하여 테스트할 수 있다.
Unsplash API Key
- 이 프로젝트는 갤러리에서 사진을 화면에 load 하기 위해 Unsplash API를 사용한다.
- API를 사용하기 위해서 API Key를 얻어야 한다.
- 아래에서 Develper 등록 후 API Key를 얻을 수 있다.
- https://unsplash.com/developers
Unsplash Image API | Free HD Photo API
Codepen To make adding images into prototypes and code examples, Codepen integrates the Unsplash library, making finding and adding an image super easy.
unsplash.com
API Key 얻기
- 위 사이트에서 Register as a Developer 버튼을 클릭하여 회원가입을 한다.
- New Application 클릭하여 프로젝트 등록
- 등록 후 아래 Key 확인
- Key 를 얻으면 Sunflower 프로젝트의 gradle.properties 파일에 key 와 함께 아래 라인을 추가한다.
- sync now 를 클릭하면 Api key 를 사용할 수 있게 된다.
사용한 라이브러리
아래 사용한 라이브러리를 꼼꼼하게 리뷰하고 체득한다면 실력이 매우 향상될 것으로 보인다.
- 기본
- AppCompat
- Android KTX - kotlin 코드를 이용하여 더 간결한 문법으로 가독성있게 코드를 작성할 수 있다.
- Test - UI 테스트를 위한 Test Framework
- Architecture
- Data Binding - UI 요소에 Observable data 를 선언하여 bind 할 수 있습니다.
- Lifecycles - 생명주기에 대한 이벤트를 자동으로 응답하는 UI 를 만들 수 있습니다.
- LiveData - Database 의 변화를 인식할 수 있습니다.
- Navigation - 앱 내에서 이동에 대한 작업을 처리할 수 있습니다.
- Room - SQLite Database 를 객체로써 접근하여 다룰 수 있습니다.
- ViewModel - 회전과 같은 UI 변경 시 삭제되지 않도록 UI 관련 데이터를 저장할 수 있습니다. 비동기 작업을 schedule 할 수 있습니다.
- WorkManager - Android 의 백그라운드 작업을 관리할 수 있습니다.
- UI
- Animation & Transitions - widgets 을 이동하고 화면 간 전환할 수 있습니다.
- Fragment
- Layout
- etc
- Glide - Image 로딩 라이브러리입니다.
- Hilt - Dependency injection(의존성 주입)
- Kotlin Coroutines - 단순화 된 코드로 백그라운드 스레드를 관리하고 콜백을 줄일 수 있습니다.
지금까지 Sunflower 프로젝트에 대해서 간단하게 알아보았습니다.
앞으로 세부적으로 리뷰해보고 체득해보도록 하겠습니다.
'Android > 꼼꼼한 리뷰' 카테고리의 다른 글
[Sunflower] Navigation 리뷰(1/3) (with ViewPager2 + TabLayout) (0) | 2021.01.04 |
---|---|
[Sunflower] Main Activity 기능 확인해보기(Navigation, Hilt, DataBinding) (0) | 2020.12.30 |
댓글