Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SwiftUIの紹介/2019-11-06-llt12
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Satoshi SAKAO
November 06, 2019
Programming
92
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SwiftUIの紹介/2019-11-06-llt12
社内のLTイベント「えるLT Vol.12」で発表した資料です
Satoshi SAKAO
November 06, 2019
More Decks by Satoshi SAKAO
See All by Satoshi SAKAO
Testcontainers/2024-11-20-llt32
ottijp
0
120
Pkl/2024-04-17-llt31
ottijp
0
130
JavaScriptのデバッグ/2023-09-04-llt30
ottijp
0
200
CDK for TerraformでAzureリソースをデプロイする/2023-05-15-llt29
ottijp
1
350
TWELITEへの誘い/2022-12-27-llt28
ottijp
0
190
ビルドツールBazelを触ってみた/2022-09-28-llt27
ottijp
0
230
HashiCorp Vaultを使ったシークレットのセキュアな一元管理 〜Ansibleを添えて〜/2022-07-12-llt26
ottijp
0
190
AWSインフラのデプロイをCDKでカイゼンする/2022-03-23-llt25
ottijp
0
130
Amazon Timestreamでデータ補間/2021-12-27-llt24
ottijp
0
130
Other Decks in Programming
See All in Programming
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.2k
iOSDC2026登壇資料.pdf
riofujimon
0
160
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
410
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
390
App Intentsのビルドプロセスを支える技術
kntkymt
0
380
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
420
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
620
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
110
一人だけ、Kiroが静止する日
hideg
0
110
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
270
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
200
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
240
Rails Girls Zürich Keynote
gr2m
96
14k
Typedesign – Prime Four
hannesfritz
42
3.2k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
Joys of Absence: A Defence of Solitary Play
codingconduct
1
520
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
How to make the Groovebox
asonas
2
2.4k
Designing for humans not robots
tammielis
254
26k
The SEO identity crisis: Don't let AI make you average
varn
0
560
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
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