
SwiftUIガイドブック - レンダリングシステムの考察とデータの使い分け
- 無料サンプルPDF版ダウンロード商品¥ 0
- 電子書籍版 PDF/EPUB形式ダウンロード商品¥ 800

フォーマット: PDF/EPUB 形式 ページ: A5サイズ32ページ 最終ビルド: 2021/3/21
本書について
本書はSwiftUIガイドブックのシリーズ1冊目です。SwiftUIガイドブックシリーズでは、SwiftUIに焦点を絞り細かな内容でも迅速にリリースしていき、読者のフィードバックを受けて修正するサイクルを目的としています。 本書の内容はSwiftUIについての基礎的なことを書いていますが、初心者向けではありません。すでにSwiftUIに触れたことがある読者をターゲットにしています。具体的にはAppleのSwiftUIチュートリアルを一通りこなしていることが目安になるはずです。 AppleのSwiftUIチュートリアル https://developer.apple.com/tutorials/swiftui Appleの公式チュートリアルはどんな書籍よりも有用ですが、このチュートリアルを終えてSwiftUIを触っていても、レンダリングする仕組みやタイミングについて納得しづらい部分が出てくるはずです。具体的にはObservableObjectの@PublishedでなくてもViewが更新されると感じたり、または@Bindingや@State、@Environmentと@EnvironmentObjectの違いを比較したり整理したくなるでしょう。 本書では2020年2月現在の情報の中で、それらの事柄をなるべくはっきりさせてSwiftUIをより理解していくことを目的としています。しかし、アプリのUIをどのように作成するかなどの内容には触れていません。SwiftUIを触ってみたときの疑問を解決する手助けになることを目的としています。
本書の構成
第1章ではSwiftUIの内部動作をWWDC19の解説から考察し、図によってそれを説明します。SwiftUIを触っていて動作がいまいち掴みきれないという方は、この章を読むと理解が進むはずです。ただし、SwiftUIは内部が公開されているわけではないため、内容の大部分はWWDC19からの引用とその検証や考察が多めになっています。 第2章では@Bindingや@Stateの基礎的な説明と使い分けについて書いています。他にも@ObservedObjectや@Environment、@EnvironmentObjectなどについても書いています。これらについて詳しく知らなくてもSwiftUIではアプリが作れるはずですが、しかしなんとなく使っていると気持ちが悪くもあります。さらに現状はSwiftUIのサンプルがそれほど公開されてないこともあり、サンプルを観察して雰囲気で使うのは限界もあります。基礎的なことを整理するためにこの章をまとめています。 第3章では$オペレータを@Stateや@ObservedObjectにつけると何が起こるのかということについて書いています。この章を書くまで、筆者は特に@ObservedObjectに$オペレータを使って@Binding用のオブジェクトを取り出すのが苦手でした。なぜなら@ObservedObject自体ではなくそのプロパティに$オペレータを使いたくなるからです。しかし、@ObservedObjectに対する$オペレータの仕組みを知ればそのような混乱はなくなるはずです。
本書で書いていないこと
繰り返しになりますが、アプリのUIをどのように作成するかなどには触れていません。 筆者は現時点でSwiftUIについてナビゲーションバーやタブバー周りが特に使いづらいと考えており、大きなアプリをフルSwiftUIで作るのは正直きついと考えています。iOSの標準アプリ程度のしっかりとしたアプリを作ろうとすると様々な打開策や妥協を強いられることになります。そのため今後AppleはSwiftUIを大きく改善していくでしょう。つまりSwiftUIを使ってしっかりとしたUI構築に関するテクニックは変化の激しい部分だと考えており、現状はこの書籍の内容とはしていません。 またSwift自体の言語仕様の解説も本書には書いていないため、プログラミング言語自体の初学者の方には向いていません。筆者が「検索したらすぐに分かるはず」と判断できることは極力書いていません。 もしあなたがプログラミング言語自体の初学者の場合、SwiftUIに魅力を感じてしまうのは理解できますが、それは情報やSwiftUIを商売にしようとするマーケティング上の何かによって釣られているだけです。現段階でこの不完全なフレームワークのみを使うことは、目的に対してさまざまな妥協をしなければいけなくなるでしょう。その際にどのような妥協をしてどのような解決策を取っていくかは、経験の多さが必要になってくるはずです。または多くのワークアラウンドをネット上で探し回らなければいけなくなります。つまり現段階ではSwiftUIは目的地に対して実際は遠回りしていることになります。初学者の場合それが向いていると筆者は思えません。 そもそもなぜこのような書籍を出そうと思ったかと言うと、現時点で情報が少なすぎるため、初学者ではない経験のあるプログラマでも手こずる点や不可解な点がいくらでもあるからです。そのようなことはWWDCの動画を多く見て、実際に手を動かして納得しなければいけないことであり、そこについて筆者は注力して書くことに意味があると考えています。
フィードバック
本書へのフィードバックやご感想は下記ページにてお待ちしています! https://qiita.com/yimajo/private/67533ee6a6edb6a5ef0e
更新履歴
# 2021/3/21 EnvironmentObjectに関する説明の日本語を微調整しました。 # 2020/2/22 第1章の文章を微調整しました # 2020/2/15 第1章にて『@PublishedがなぜViewを更新するのか』を追記しました。objectWillChangeについて書いています。 # 2020/2/13版 はじめに を微調整しました # 2020/2/12版 PDF/EPUB版をリリースしました