# 4/22 (五) :::warning - iOS: MVC -> MVVM - web: HTML+CSS -> Redux 資料流概念 -> MVVM+Redux (playcraft 之前的架構) -> pure MVVM (playcraft 現在的架構) - (iOS + Android) app Launch 進入點(app 開啟之後做了哪些事) - 各平台的 layout system for each platform - error handling (Kotlin + JS) - ~~MVVM (android 教學)~~ - @Ralf & @Isaac 教學 `*` `&` (C++) - @Ralf 說要研究 js 的 null & undefined & ?? - 版號使用 ::: ## Android architect - mobile -> MVP - androidTV -> MVVM  - View 對上 presenter 會有一個 Interface, PaaSContract.View - 所以 presenter 要對 View 操作是用那個 Interface - presenter.init 時會把 callback function 塞進 model - 所以 model 資料更新時,呼叫 callback 觸發 presenter 的方法 ## 如果你想要看 playcraft 專案 - Model: `PaaSModel` - Presenter: `PaaSContract` - View: `PaaSView` #### presenter v.s. controller ? ## MVVM (Android) - rx = ReactiveX - rxJava - rxSwift - rxJS - Android 有在用 rx ? 有,用 LiveData 做 data binding 使用 MVVM - `LiveData` rx 機制, View 要去 observe 他 - `ViewModel` = presenter 的角色 (life cycle 不一樣) - View 在生成的時候,presenter 會跟著一起生出來,所以 presenter 的生命會被 View 綁著!! - 狀態應該是會被放在 ViewModel 裏 ``` class HomeActivity { var myViewModel func onAppear() { self.myViewModel = ViewModel.init() } } ``` ## app Launch 進入點 #### web webpage life cycle 1. html 會有 head body 1. head metadata 抓 library 1. body 才是真正網頁會看到的畫面,就是 MVC, MVP 的 View 1. body 會寫 JS code,JS code 才會去建那些 model ==Ralf 會再詳細解釋== #### android 1. #### iOS 1. ## layout system * 不同的 device system * 排版要怎麼調整畫面上的元件 * 絕對位置、相對位置 * 網頁是堆疊、畫面不夠才會換到第二行 * 概念上不太一樣
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up