Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SwiftUIの紹介/2019-11-06-llt12
Search
Satoshi SAKAO
November 06, 2019
Programming
0
80
SwiftUIの紹介/2019-11-06-llt12
社内のLTイベント「えるLT Vol.12」で発表した資料です
Satoshi SAKAO
November 06, 2019
Tweet
Share
More Decks by Satoshi SAKAO
See All by Satoshi SAKAO
Testcontainers/2024-11-20-llt32
ottijp
0
77
Pkl/2024-04-17-llt31
ottijp
0
110
JavaScriptのデバッグ/2023-09-04-llt30
ottijp
0
180
CDK for TerraformでAzureリソースをデプロイする/2023-05-15-llt29
ottijp
1
300
TWELITEへの誘い/2022-12-27-llt28
ottijp
0
180
ビルドツールBazelを触ってみた/2022-09-28-llt27
ottijp
0
200
HashiCorp Vaultを使ったシークレットのセキュアな一元管理 〜Ansibleを添えて〜/2022-07-12-llt26
ottijp
0
170
AWSインフラのデプロイをCDKでカイゼンする/2022-03-23-llt25
ottijp
0
110
Amazon Timestreamでデータ補間/2021-12-27-llt24
ottijp
0
120
Other Decks in Programming
See All in Programming
CSC307 Lecture 03
javiergs
PRO
1
490
Grafana:建立系統全知視角的捷徑
blueswen
0
330
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
150
CSC307 Lecture 04
javiergs
PRO
0
660
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
470
CSC307 Lecture 07
javiergs
PRO
1
550
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.7k
Producing Creativity
orderedlist
PRO
348
40k
The SEO identity crisis: Don't let AI make you average
varn
0
290
We Are The Robots
honzajavorek
0
160
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
230
A designer walks into a library…
pauljervisheath
210
24k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
320
エンジニアに許された特別な時間の終わり
watany
106
230k
Testing 201, or: Great Expectations
jmmastey
46
8k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Transcript
SwiftUIの紹介 Satoshi SAKAO えるLT Vol.12 2019/11/06 (Wed) 1
話すひと 2 インフォコム株式会社 品質マネジメント推進室 " ソフトウェアエンジニア JS (ES6) / Node.js
/ GCP / IoT / iOS (Swift) 猫,自作キーボード,シュタゲ Satoshi SAKAO @ottijp
3 「SwiftUI」を聞いたことがある? &
SwiftUIってなんぞ • WWDC2019で発表されたAppleプラットフォーム向けの 新しいUIフレームワーク • Xcodeの機能の一部 • iOS, iPadOS, macOS,
watchOS, tvOS • Storyboardやリアクティブフレームワークを置き換える存在 • 宣言的シンタックスとデータ駆動が肝 ☝ 4
5 https://developer.apple.com/jp/xcode/swiftui/
6 SwiftUIの特長
宣言的シンタックス • Swiftの文法でUI構造を宣言的に記述できる 7
プレビュー • 画面サイズ,ダークモード,多言語,フォント設定などを 変えた複数の同時プレビューが可能 • ライブプレビューで動的な表現を確認 8
データの同期機構 • View間で同一データの参照 • データ駆動のリアクティブなUI定義 • 方法 • @Stateと@Binding •
Observableプロトコルと@ObservedObject • environmentObject()と@EnvironmentObject • environment()と@Environment 9 View @State var hoge = 42 View @Binding var hoge: Int bind
10 課題
Xcode11とCatalinaが不安定すぎる • Xcode11 • すぐクラッシュ,フリーズする,起動しなくなる • プレビュー,コード補完が効かなくなる • エラーメッセージが全くあてにならない •
Catalina • OS再起動中にフリーズしてハングアップする 11
SwiftUIのViewがまだ少ない • まだ基本的なViewしかない • 対応していないUIKitのViewクラスや機能は自前で実装が必要 • 自前実装することで宣言的UI,データ駆動に対応できる • SwiftUIに組み込む仕組みは提供されている 12
13 まとめ
まとめ • まだ安定性が低く,対応Viewも少ないが, AppleプラットフォームのUI開発が革新したのを感じた • jQueryからReact/Vueになったくらいの変革 • 再利用性の向上,複雑性の低下が期待できる 14
15 時間が余ればdemo マシンスペックが低いので遅いけど
16 Appendix
必要な環境 • macOS Catalina (10.15) • Mojaveでもビルドできるが,SwiftUIキャンバスは使えない • Xcode11 •
iOS13 17
利点 • View単位でテストデータをもとに表示やアクションや アニメーションなどを確認しながら開発できる • Viewのコンポーネント化がすごい簡単になった • UIの共同編集とdiffがしやすい (Storyboardは共同編集ができない) 18
Single Source of Truth (SSOT) • SwiftUIはSingle Source of Truthを実現する
• 正となる単一の情報源(ソースコード,データ)を持つ • 重複しない,コピーしない,同期処理が必要ない • SwiftUIにおいては • ソースコードが正(UIデザインツールとソースが一致している) • データが正(リアクティブなView更新) • イベント駆動実装に存在していた複雑性を大きく軽減できる 19
参考 • Xcode - SwiftUI - Apple Developer https://developer.apple.com/jp/xcode/swiftui/ •
SwiftUI Tutorials — Tutorials | Apple Developer Documentation https://developer.apple.com/tutorials/swiftui/tutorials • Data in SwiftUI, Part 1: Data | Sarun https://sarunw.com/posts/data-in-swiftui-1/ 20