GitHub: https://github.com/google/iosched
基本的介紹在GitHub上都有描述,以下為重點總結

開發環境相關

1.整個App都是用kotlin寫的
2.Import的方式可以直接從Android Studio的project from version control,也可以使用git command line 來 fork
3.Android Studio 版本為3.4
 

架構相關

1.這次(2019)的App也是用 Android Architecture Components來開發
關於 Android Architecture Component 可以參考這裡
App的架構遵循Guide to app architecture的內容來建立
2.1 邏輯會從Activity和Fragment移出並放到ViewModel中
2.2 透過LiveData觀察資料並使用Data Binding Library將佈局中的UI元件綁定到應用程序的數據來源
3.1 使用Repository Layer來處理數據的操作。App的數據來源來自不同位置
3.2 User data儲存在Cloud FireStore(遠端或本地端的緩存)
3.3 User preferences和Settings儲存在SharedPreferences
3.4 Conference data存儲在遠端,需要的時候可以儲存在記憶體中以供App使用
4.Repository Modules 負責處理所有的數據
5.實作LightWeight Domain Layer,該層位於data layer和presentation layer之間,用來處理UI線程之外的業務邏輯
參考.\*UseCase.kt files under shared/domain for examples
6.使用Navigation component簡化Activity
7.使用Room搭配Fts4進行全文搜索
8.使用Dagger2進行依賴注入,在很大程度上依靠dagger-android來抽象樣板代碼
9.使用Espresso進行基本測試,使用JUnit和Mockito進行單元測試
 

FireBase 相關

Cloud Firestore
是所有User Data的來源(由使用者加星號或保留的活動)。 Firestore為提供自動同步和無縫管理的離線功能。
Firebase Cloud Functions
允許執行後端代碼。預訂功能在很大程度上取決於與Firestore結合使用的雲功能
Firebase cloud message
可通知app有關服務器上會議數據(Conference data)的更改。
Remote config
幫助管理應用內常量。
.

import & build

目前的環境為Win10,Android Studio 3.4.1
import和build的過程相當順利,沒有出現任何問題需要修改。
直接使用模擬器 run,如下圖

 
接下來就是一步一步分析source code!!