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
Swift5.1 SwiftUI
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ry-itto
July 13, 2019
Technology
140
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
400
CA.swift#14
ryitto
3
5.9k
swift-argument-parserで 簡単 CLI ツール作り
ryitto
1
170
Data Essentials in SwiftUI
ryitto
1
530
Composable Architecture
ryitto
0
810
CollectionViewの 新しいレイアウトの作り方
ryitto
0
78
Other Decks in Technology
See All in Technology
GitHub Copilot app最速の発信の裏側
tomokusaba
1
200
2026TECHFRESH畢業分享會 - AI 時代的人生存檔點
line_developers_tw
PRO
0
1.3k
LayerXにおけるセキュリティ管理の現在地と次の一手
tosho
0
250
SONiCの統計情報を取得したい
sonic
0
240
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
5
1.5k
自宅LLMの話
jacopen
1
680
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
180
AIチャット検索改善の3週間
kworkdev
PRO
2
150
気軽に使える"情報のハブ"としてのNotion活用 〜フロー情報の集積点 と、 Claude Code × Notion AI〜
syucream
1
160
クラウドファンディング版StackChan 3体(4体)をインタラクティブな体験型作品にして展示もした話 / スタックチャンお誕生日会2026
you
PRO
0
110
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.6k
インシデントレスポンス演習 I / Incident Response Exercise I
ks91
PRO
0
100
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
HDC tutorial
michielstock
2
720
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
71
40k
4 Signs Your Business is Dying
shpigford
187
22k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
sira's awesome portfolio website redesign presentation
elsirapls
0
280
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
Context Engineering - Making Every Token Count
addyosmani
9
970
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
610
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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
͋Γ͕ͱ͏͍͟͝·͠ ͨʂʂ