宣言的UIを実現するフレームワークであるFlutter, JetpackCompose, SwiftUIの比較。 以下のパターンで同じようなUIを実装してみて、そのコードの違いを比較する。
-
column pattern
- "Hello,", "World!"の2つの文字列を縦に並べる
-
update pattern
- ButtonとTextViewを縦に並べる。TextViewには初期状態で「0」が表示される。ButtonをタップするとTextViewに表示された数字がインクリメントされ表示される
- Flutterに関しては「StatefulWidget」を利用したものと「Provider」を利用したものの両方を比較する
-
list pettern
- 0,1,2,3...と要素の順番を表示したTextViewが無限に表示される無限スクロール可能なリスト
-
list with progress pettern
- list petternに加え、「初期表示のローディング待ち時間にプログレス表示」「リスト末尾にプログレス表示」を行ったより実用的なパターン
- Flutter
- IDE: AndroidStudio 4.1
- Flutter: 1.22.0-12.1.pre
- JetpackCompose
- IDE: Android Studio Arctic Fox | 2020.3.1 Canary 3
- Kotlin 1.4.21
- JetpackCompose: 1.0.0-alpha09
- paging-compose:1.0.0-alpha04
- SwiftUI
- IDE: Xcode 12.3
- Swift5
- GitHub - crelies/List-Pagination-SwiftUI
- Fluuter.dev - Work with long lists
- [dev.to - Implementing Paging in Jetpack Compose](https://dev.to/kriticalflare/implementing-paging-in-jetpack-compose-2hh7
- Android Developers - Layouts in Compose