Session
DroidKaigiカンファレンスアプリの歴史からみるアプリアーキテクチャのこれまでとこれから
2016年から2021年にかけて、DroidKaigiではカンファレンスアプリが作成されてきました。各年、カンファレンスのセッション情報を閲覧できるAndroid(iOS)アプリとして、時の Android エンジニアがその時代の最先端の技術を駆使して設計・実装を進めたものです。そこにはたくさんの知見やベストプラクティスが散りばめられています。また、時代を先取りした技術選定にも例年注目が集まっています。
2016年のアプリはJavaで記述され、rx1系をメインとするデータフローの制御、Android Support Librariesを用いたUI構築を行っていました。最新の2021年のアプリでは、Kotlinで記述され、Kotlin coroutines を多く活用、マルチモジュール構成、Kotlin Multiplatformを活用した iOS アプリとのロジック共通化、JetpackComposeによるUI記述と、大きくトレンドは変化しています。
また、アプリアーキテクチャも回を重ねるごとにMVC、MVVM、Flux、MVI等と変化しています。
例年、カンファレンスセッション情報閲覧アプリとして作成されてきたため、提供される機能に大きな差はありません。そのため当時主流のアーキテクチャや設計ルール等はどのような時流で構築され、現在ではどのような技術に代替されたのかを知る事ができる良き題材と言えます。
アーキテクチャ変遷の歴史を知ることは、実務においても大きく役立ちます。特に息の長いアプリの開発を行っているときには、1. 古くから触られてきたクラスであり、手つかずである 2. deprecatedなメソッドを多用しているが適切な改修方法が不明瞭である といった歴史的背景という言葉で片付けられがちな課題に当たることも経験上多いです。
当時どのような背景のもと技術選定・アーキテクチャ選定が行われたのか、そしてその後の歴史を知ることで、違和感や課題に向き合い、現代風の適切なリファクタリングを行う道標を得ることができます。
本セッションでは、簡単に各年の実装を比較した後に、セッション情報取得・表示という機能に絞ってその実装方法の差分について紹介します。また、これからの Jetpack Compose や KMM 中心の未来のデファクトアプリ開発へ対応するためのヒントをカンファレンスアプリの実装から探っていきます。
予定アジェンダ
- DroidKaigiカンファレンスアプリ概要
- 各年の技術スタック・アーキテクチャの概要比較
- 技術の変遷について1 : rx -> coroutines / flow
- 技術の変遷について2 : xml layout -> Jetpack Compose
- 技術の変遷について3 : 状態保持
- 技術の変遷について4 : MVC -> MVVM -> MVI
- アプリアーキテクチャのこれから : 宣言的UIとマルチプラットフォームへの対応
- TBD
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top