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
Swift5.1 SwiftUI
Search
ry-itto
July 13, 2019
Technology
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swift5.1 SwiftUI
会津大学 x 日大 LTでの登壇資料です。
ry-itto
July 13, 2019
More Decks by ry-itto
See All by ry-itto
決定版!?OSSアプリプロジェクトでのBeta版アプリ配布の方法「Xcode Cloud + TestFlight」
ryitto
0
420
CA.swift#14
ryitto
3
5.9k
swift-argument-parserで 簡単 CLI ツール作り
ryitto
1
180
Data Essentials in SwiftUI
ryitto
1
550
Composable Architecture
ryitto
0
820
CollectionViewの 新しいレイアウトの作り方
ryitto
0
85
Other Decks in Technology
See All in Technology
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
530
今こそ知りたいAmplifyGen2
mkdev10
2
160
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
5
1.2k
継続的なAIコスト最適化
bgpat
1
220
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
220
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
2
410
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
140
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
210
予測不能な実行エージェントを安全にサクッと試せるサンドボックス環境の話
sansantech
PRO
0
130
おそらく日本で唯一のDevRelインターン生として
husengs7
0
170
OR学会2026年秋期大会_機械学習と数理最適化の融合による、配合レシピ最適化システム開発事例
brainpadpr
0
100
メルペイ 会計システム概要と歴史
mewuto
0
190
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Believing is Seeing
oripsolob
1
240
Speed Design
sergeychernyshev
33
2.1k
Into the Great Unknown - MozCon
thekraken
41
2.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
710
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
760
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
510
ラッコキーワード サービス紹介資料
rakko
1
5.2M
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
550
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Transcript
4XJGUͷ৽ػೳͱ 4XJGU6* ձେֶίϯϐϡʔλཧֶ෦ ҏ౻྇
ࣗݾհ ҏ౻྇ ձେֶ J04 Χϐόϥ
ͦͦͳͥ4XJGU w ϝδϟʔόʔδϣϯ͡Όͳ͍͡ΌΜɻ w ͦΕΑΓ4XJGU6*Αɻ w 4XJGUͱ͔ڵຯͳ͍Θɻ
ճ w 4XJGUΛ͔͚Δਓ͕νϥοͱݟͯʮ͑ʁʯͬͯͳΔΑ͏ ͳจ๏͕૿͑ͨ w 4XJGU6*ʹେ͖͘औΓࠐ·Εɺ෦Ͱͨ͘͞Μ৽จ๏͕ ༻͞Ε͍ͯΔ w ॳݟͰਖ਼Θ͚Θ͔ΒΜɻ
4XJGUͷ৽ػೳ
Կݸ͔ฒͯΈͨ struct SwiftUIView : View { var body: some View
{ Text("Hello World!”) Text("Hello World!") } } @ObjectBinding var viewModel: HogeViewModel func add(x: Int, y: Int) -> Int { x + y }
͑ʁී௨͡ΌͶʁ
͖ͬ͞ͷίʔυͷதͷ৽ػೳ w !1SPQFSUZ%FMFHBUF w !@GVODUJPO#VJMEFS w 0QBRVF3FTVMU5ZQF w ؔͷฦΓͰҰߦͰࡁΉ߹ʹASFUVSOAΛॻ͔ͳͯ͘ Α͘ͳͬͨ
!1SPQFSUZ%FMFHBUF @ObjectBinding ← ͜Εͱ͔ @State ← ͜Ε KotlinͷҠৡϓϩύςΟʁΛݩʹͯ͠ΔͱͷهࣄΛͪΒͬͱΈͨΓ
!1SPQFSUZ%FMFHBUF ͍ํɿ @State var profile = Profile.default Ͳ͏ͳͬͯΔͷ͔ɿ @Stateͷ߹ɺprofileʹೖͬͨΛBinding<Profile>ͱ͍ͬͨ෩ʹϥο ϓ͢Δɻ
औΓग़͢ࡍʹ `profile`ͰΞΫηε͢ΔͱೖΕͨ, `$profile`ͱΞΫηε͢Δͱϥοϓͨ͠Λར༻Ͱ͖Δ
!@GVODUJPO#VJMEFS var body: some View { Text("Hello World!”) // ͜͜
Text("Hello World!”) // ͜͜ } 1SPQPTBM https://github.com/apple/swift-evolution/blob/ 9992cf3c11c2d5e0ea20bee98657d93902d5b174/proposals/XXXX- function-builders.md
!@GVODUJPO#VJMEFS ಠࣗͷ֦ு࡞ΕΔ(ྫɿ୯ޠΛݸผʹͯ͠ӳจ࡞) @_functionBuilder struct SentenceBuilder { static func buildBlock(_ strs:
String...) -> String { return strs.reduce(“”) { (res, str) -> String in return res + " " + str } } } func build(@SentenceBuilder block: () -> String) -> String { block() } print(build { "I";"am";"Ryoya Ito";"Nice";"to";"meet";"you!!" }) => I am Ryoya Ito Nice to meet you!!
!@GVODUJPO#VJMEFS w print(build { let name = "Ryoya Ito"
"I" “am" name "Nice" "to" "meet" "you!!" }) ɾΫϩʔδϟͰมఆ͕ٛͰ͖ͳ͍ ɾΫϩʔδϟͰifจͳͲ͕ॻ͚ͳ͍
0QBRVF3FTVMU5ZQF ͜ͷίʔυதͷ`some` var body: some View { Text("Hello World!") }
؆୯ʹදݱ͢ΔͱɺฦΓͰ૯শܕΛ͍͍ͨ࣌͏ͷɻ શͯ͜ͷهࣄʹ͋Δɾɾɾ Swift 5.1 ʹಋೖ͞ΕΔ Opaque Result Type ͱԿ͔
0QBRVF3FTVMU5ZQF ຊདྷͰ͋Ε func hoge() -> <H:AnyObject> H { } ͜͏ॻ͘ඞཁ͕͋ΔͷΛ
func hoge() -> some AnyObject { } ͱॻ͚ΔΑ͏ʹͨ͠ͷɻ γϯλοΫεγϡΨʔͰ͢ɻ
0QBRVF3FTVMU5ZQF func hoge() -> AnyObject { } ↑͜ΕͰΑ͘Ͷʁ ͍͍͑ɻ func
hoge() -> some AnyObject { } ͬͪ͜Ͱ͢ɻ
0QBRVF3FTVMU5ZQF ͳͥμϝͳͷ͔ʁ ઌ΄Ͳࡌ͍ͤͯͨهࣄʹ͑͋Δ
0QBRVF3FTVMU5ZQF w ύϑΥʔϚϯε্ͷϩε͕ൃੜ͢Δɻ 1SPUPDPMͰͷฦΓʹ͢Δͱ༧ظ͞ΕΔશͯͷܕʹ ରԠՄೳͳΑ͏ʹϝϞϦྖҬ͕֬อ͞ΕΔ
ؔͷฦΓͰҰߦͰࡁΉ߹ʹ ASFUVSOAΛॻ͔ͳͯ͘Α͘ͳͬͨ func add(x: Int, y: Int) -> Int {
x + y } ͦͷ·Μ·Ͱ͢ɻ ࠓ·ͰΫϩʔδϟͰͰ͖ͨͷ͕ͦͷ··ؔͰͰ͖ΔΑ͏ ʹͳΓ·ͨ͠ɻ
ͦͷଞؾʹͳΔΞοϓσʔτ w $PSF/'$Ͱ4VJDBͳͲͷಡΈऔΓ͕Մೳʹͳͬͨ ˠJ1IPOFʹ4VJDBOBOBDPΛ͚ۙͮΔ͚ͩͰߴͷ֬ೝ ͕Ͱ͖Δʂʂ w EZOBNJD.FNCFS-PPLVQͷ,FZ1BUIରԠ
͓·͚ IUUQTHJUIVCDPNSZJUUPFWFSZUIJOH@DPVOUFS
͋Γ͕ͱ͏͍͟͝·͠ ͨʂʂ