概要
自分のメモを参加ログとして公開
イベントページ
https://wwdc-gorilla.connpass.com/event/134116/
セッションメモ
over view
- 見たほうがいいセッション
- SwiftUI Essentials
- Data Flow ~
- Integrating SwiftUI
- Builting Custom Views in SwiftUI
- SwiftUI On All Devices
- キャッチアップ先
- hackingwithswift.com
- designcode.io
Unidirectional Data Flow Through SwiftUI
- 資料
- https://www.slideshare.net/kitasuke
- unidirectional-data-flow-through-swiftui
- SwiftUIはReact+MobXみたいな感じ
- 単一方向にデータが流れるメリット
- 疎結合にしやすい
- テストが書きやすい
- MVVMはVMをきれいに書けていないとテストがごちゃっとなりやすい
- スケーラブル
- 個人の学習コストを少なくアーキテクチャで強制する
- 単一方向にデータが流れるメリット
SE-XXXX Function Builders を読み解く / Reading the spec of Function Builders
- Function Buildersは仕様の名前らしい
- 中途半端に導入されているが、Swift Evolutionで議論されている最中
- WWDCのためにAppleが実装した実験的なものらしい
SwiftUI(beta 3)でどこまで書ける(書けない)?
- beta3 の時点の話なので、将来的に変わる可能性がかなり高い
- 現時点では結構厳しいところもあるけど、みんなで良くしていきたい
- 特徴
- Declarative
- いい面もあり悪い面もあり
- 複雑なものは難しいのでは
- Struct
- 小さいコンポーネントを組み合わせて構築していく
- Single Source Of Truth
- ビジュアルエディターで実装してもすべてコードとして残る
- コードとして管理できるのがとても良い点
- Declarative
- がんばって書くのか、頑張っても書けないのかの線引が難しい
- UIKitで書いたほうがいいところ、SwiftUIで書いたほうがいいところの判断が必要
- いまのところUIKitメインがいい
- チュートリアルを全部やってみてできることを学ぶ
- チュートリアルでできることがSwiftUIでできることの最大限ではないか(現時点かな?)
- UIKitで書いたほうがいいところ、SwiftUIで書いたほうがいいところの判断が必要
- SwiftUI vs UIKit
- iOS13でできることで比較することになる
- UICollectionViewCompositionLayout
- カスタムがしやすくなっている
- 90%ぐらいはこれで書けるようになる
- View vs Struct
- Visual View Hierachy
- 直接ビューを触ることができない
- 実際のViewを触ることができない
- 変換されて描画されるので成果物はさわれない
- インタラクションをどうする?
- 複雑なインタラクションがある場合は諦めたほうがいいかも
- 直接ビューを触ることができない
- Visual View Hierachy
- スクロールビューのスクロール量の取得ができないので、カルーセル的なものは厳しい
- iOS13ならCollectionViewを使ったほうがいいだろう
- スクロールの内部状態を取得できる口がほしい
- 続きを読むを押したら文章がすべて表示されるようなものは、やればできる感じ
- Viewを作り変えるとアニメーションがきれいじゃない
- 高さを変えるならmodefierでやる
- lengthにnilを渡せるっぽいぞ
- エッジに沿うような画像の実装が難しい?
- サインイン画面はできる
- テキストフィールドのデリゲートは使いものにならないので、テキストをバインディングしてValidateする
- Formっぽいものは得意
- 設定画面とかかな
- テキストフィールドがあるものは厳しい
- キーボードでテキストフィールドが隠れてしまう
- スクロール量を制御できないのでスクロールさせることすらできない
- キーボードでテキストフィールドが隠れてしまう
- SwiftUIのテキストフィールドは日本語が入力できないバグがある
- 中国語もだめ
- 増減するフォーム
- まあまあできる
- キーボードを隠すこともやりにくい
- 個別のViewにisEditingが送れない
- やるならRootViewに対してisEditingに送る
- Viewの途中の状態を操作することが難しい
- Staticな画面を作ることにしか使えないのでは
まとめ
- beta版だから今後に期待って感じかな
- チュートリアルの完走とセッションの動画を観よう