구글, 2018 Google IO 안드로이드앱 소스코드 공개


지난 8월 13일 구글은 2018 Google IO 안드로이드앱의 소스코드를 공개했습니다.(원문)


구글은 그동안 ContentProvider + SyncAdapter 아키텍쳐를 사용해 이 앱을 개발해왔는데, 2018년 버전은 아키텍쳐 컴포넌트를 사용하고, 구글 안드로이드 팀의 앱개발 가이드에 맞춰 앱을 새롭게 다시 개발했다고 합니다.


그럼 이 앱에 대한 구글의 설명을 하나씩 살펴보도록 하겠습니다.


구글 IO 2018 공식앱


아키텍처(Architecture)

이 앱은 구글이 권고하는 앱 아키텍쳐인, 모듈화, 테스트 및 유지보수가 가능한 코드를 사용하도록 설계되었습니다. 구글은 액티비티(Activities)와 플래그먼트(Fragments)를 대신 뷰모델(Viewmodel)을 사용하는 로직을 도입했다고 합니다.


또 라이브데이터(LiveData)를 사용해서 데이터를 관찰하고 데이터 바인딩 라이브러리를 사용해 레이아웃의 UI 컴포넌트를 앱의 데이터 소스에 바인딩했습니다.



데이터 작업을 처리하기 위해 Repository Layer를 사용했습니다. IOSched 데이터는 몇가지 다른 소스에서 나옵니다.(User Data는 Cloud Firestore, User Preferences & Setting은 SharedPreferences, Conference Data는 메모리에서 가져옴)


그리고 Data Layer와 프리젠테이션 Layer 사이에 도메인 Layer를 만들어 UI Thread에서 개별 비즈니스 로직을 처리하도록 했습니다.


Dependency를 위해 Dagger2를 사용했으며, 상용구 추상화를 위해 Dagger-Android를 활용했고, 기본 테스트에는 Espresso를 유닛 테스트는 JUnit 및 Mockito를 사용했다고 합니다.


파이어베이스(Firebase)

파이어베이스 플랫폼이 완성됨에 따라 2018 Google IO 앱은 아래의 Firebase 컴포넌트를 사용했습니다.

  • Cloud Firestore는 모든 사용자 데이터의 소스이며, Firestore로 자동 동기화 및 오프라인 상태의 동작을 보장함
  • Firebase Cloud Funtions을 사용해 백앤드 코드를 실행하며, 예약 기능을 활용해 사용자의 상태를 확인
  • Firebase Cloud Messaging을 사용해 서버의 컨퍼런스 데이터를 앱에 전달
  • Remote Config를 사용해 인앱 컨스턴스(In-App Constants) 관리

Firebase


코틀린(Kotlin)

구글은 최신 안드로이드 아키텍처를 적용하기 위해 앱을 새로 개발했는데, 이 때 Kotlin를 사용했습니다. Kotlin은 간결하고 강력한 구을 제공하기 때문에 코드를 보다 탄력적으로 만들수 있었다고 합니다.


코틀린

머티리얼 디자인(Material Design)

Google IO 2018에서 디자인팀은 머티리얼 테마밍(Material Theming)을 발표했습니다. 하지만 이 앱은 발표 이전에 개발됐기 때문에 모든 구성요소를 적용할 수 없었습니다. 다만 플로팅 액션 버튼 등과 같은 기능은 일부 적용되었습니다.


머티리얼 디자인


이후 계획(Future Plan)

이번 개발로 구글 IO 앱은 안드로이드 앱개발 가이드권고사항을 모두 충족하게되었습니다. 이로인해 코드는 간결해지고 유지보수고 훨씬 용이해졌다고 합니다. 구글은 JetPack 컴포넌트를 사용할 수 있도록 앱을 지속적으로 개선할 계획이라고 합니다.


댓글

Designed by JB FACTORY