MVVMパターンを使ったサンプルプロジェクト Closure(Data Binding)メソッドを用いて、ViewとViewModelを結合する
- UIKit (SwiftUIでは無い)
- MVVM アーキテクチャ
- Data Binding (RX - リアクティブプログラミング)
- Singleton Design Pattern (生成するインスタンスの数を1つに制限するデザインパターン)
- URLSession - Generic Api calls - Networking API (RestFull API専用)
- JSONDecoder によるデコード
- 画像ダウンロード - Kingfisher Library (Webから画像をダウンロードしてキャッシュするSwiftライブラリ)
- Swift Package Manager - SPM (CocoaPodsでも良い)
- Closure, Completion, Typealias, Enum
- Detailed use of UIStackView, UITableView, UITableViewCell XIB (StoryBoardを使わずカスタマイズされたリストUIを実装)
- Inheritance - Final Keyword, Init()
- Memory Management (ガベージコレクションなど)
- Light and Dark Mode (iOS13がサポートするダークモードへの対応)
## 動画サンプル
2023-03-28.4.58.55.mov
https://dummyjson.com/products
{
"products": [
{
"id": 1,
"title": "iPhone 9",
"description": "An apple mobile which is nothing like apple",
"price": 549,
"discountPercentage": 12.96,
"rating": 4.69,
"stock": 94,
"brand": "Apple",
"category": "smartphones",
"thumbnail": "https://i.dummyjson.com/data/products/1/thumbnail.jpg",
"images": [
"https://i.dummyjson.com/data/products/1/1.jpg",
"https://i.dummyjson.com/data/products/1/2.jpg",
"https://i.dummyjson.com/data/products/1/3.jpg",
"https://i.dummyjson.com/data/products/1/4.jpg",
"https://i.dummyjson.com/data/products/1/thumbnail.jpg"
]
}
}
}