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
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
410
CA.swift#14
ryitto
3
5.9k
swift-argument-parserで 簡単 CLI ツール作り
ryitto
1
170
Data Essentials in SwiftUI
ryitto
1
540
Composable Architecture
ryitto
0
810
CollectionViewの 新しいレイアウトの作り方
ryitto
0
79
Other Decks in Technology
See All in Technology
知らん間に、回ってる
ming_ayami
0
570
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
220
Empower GenAI with Agile - あなたのアジャイルが生成AIのバフになる仕組み
hageyahhoo
1
180
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
2
1.5k
大量データに対しても、生成AIを用いてリーズナブルにデータ加工をしたい!Databricksのai_queryについて調べてみた
kamoshika
1
130
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
3.1k
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
1
2.9k
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
3
3.7k
AI Driven AI Governance
pict3
0
390
cccccc
moznion
0
1.9k
SREとQA 二人三脚で進めるSLO運用/sre-qa-slo
sugitak
0
540
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
2
3.6k
Featured
See All Featured
Practical Orchestrator
shlominoach
191
11k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
380
Navigating Team Friction
lara
192
16k
Exploring anti-patterns in Rails
aemeredith
3
440
The Cost Of JavaScript in 2023
addyosmani
55
10k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Context Engineering - Making Every Token Count
addyosmani
9
1k
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
Six Lessons from altMBA
skipperchong
29
4.3k
How to Think Like a Performance Engineer
csswizardry
28
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
͋Γ͕ͱ͏͍͟͝·͠ ͨʂʂ