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
Introducing Function Builder
Search
100059
December 17, 2019
Technology
3
640
Introducing Function Builder
potatotips #267
2019/12/17
100059
December 17, 2019
Tweet
Share
More Decks by 100059
See All by 100059
アクセシビリティが高いFlutterアプリケーションを開発する
akihisasengoku
1
2.6k
Flutter Accessibility
akihisasengoku
1
500
組織作りで大切にしていること
akihisasengoku
0
59
Bitriseのリファクタリング
akihisasengoku
1
150
Awaiting for New UI in iOS 13
akihisasengoku
0
1.2k
RxSwiftのテスト入門
akihisasengoku
1
850
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
4
34k
Microsoft Fabric 開発ガイド
ryomaru0825
6
2.6k
The Disturbing Truth: Why Do Most Software Projects Suck?
lemiorhan
0
110
S3成長記録@Storage-JAWS#3
p0n
0
130
皆がすなるカオスエンジアリングといふものを、ネットワークオペレーションでもしてみむとてするなり
tjmtrhs
0
110
Tohoku.Tech #1 「EC-CUBE/AWSの構築をChatGPTに相談してみました」by テンダ
jun2882
0
120
We Fear Change, for DevOpsDays LA 2024
cote
PRO
0
130
Automate your changelogs! Release Drafter
onenashev
PRO
2
410
進化する事業とデータ構造 ~Cloudbaseの場合~
tockn
2
220
新卒1年目がプロジェクトを進めるときにコケたポイント
ryunakayama
1
100
MLOpsのエッセンスを取り⼊れて評価 pipelineを再構築している件
sansantech
PRO
1
230
履歴データテーブルとの向き合い方_PHPerKaigi2024
gennei
25
6.7k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
91
13k
The Invisible Customer
myddelton
114
12k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Debugging Ruby Performance
tmm1
68
11k
The World Runs on Bad Software
bkeepers
PRO
60
6.6k
How GitHub (no longer) Works
holman
301
140k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
16k
Clear Off the Table
cherdarchuk
82
310k
Navigating Team Friction
lara
177
13k
The Invisible Side of Design
smashingmag
293
49k
Transcript
Introducing Function Builder potatotips #267 2019/12/17
Akihisa Sengoku @akihisasen גࣜձࣾαΠόʔΤʔδΣϯτ AmebaʢΞϝʔόʣ iOSΤϯδχΞ
Function Builderͱʁ
4XJGU6*ͰΘΕ͍ͯΔΫϩʔδϟʔతͳͷʁ
%4-Λॻ͘͜ͱ͕Ͱ͖ΔΑ͏ʹͳͬͨʁ
4XJGUͰՃ͞Εͨ৽ػೳ 1SPQPTBM 'PSVN
BuilderͷϧʔϧʹैͬͯؔΛ ҉తʹม͢Δ͜ͱ͕Ͱ͖Δ #VJMEFSΛ దԠͨؔ͠ #VJMEFSϧʔϧʹ Ԡͯؔ͡Λม #VJMEFSΛఆٛ #VJMEFSΛ దԠ
None
None
Function BuilderʹΑΓ ಠࣗͷDSLΛΑΓ࡞͘͢͠ͳͬͨ - Structure Data (json, XML) - UI
View Hierarchies - HTML DOM Hierarchies
࡞Γํ!
#VJMEFSͷ࡞ํ๏ʹ͍ͭͯ
Builderͷ࡞ํ๏ 1. struct or classͷલʹ`@_functionBuilder`Λ͚ͭͯ ఆٛ͢Δɻ 2. static func Ͱ
`buildBlock(_ components: Component...) -> Component` Λఆٛ͢Δɻ
ͦͷଞͷbuildͷ࣮ • buildExpression(_ expression: Expression) -> Component • buildFunction(_ components:
Component...) - > Return • buildDo(_ components: Component...) -> Component • buildOptional(_ component: Component?) -> Component
'VODUJPO#VJMEFSͷ༻ํ๏
Function Builderͷ༻ํ๏ 1. Function BuilderΛ༻͍ͨؔ͠ͷલʹ @FunctionBuilder໊Λ͚ͭΔ 2. BuilderͷbuildBlockʹରԠ͢ΔҾΛɺ վߦ۠ΓͰهड़
ؔͷҾͷΫϩʔδϟͰFunction Builder Λ༻͢Δ͜ͱ͕Ͱ͖Δ
None
ϓϩμΫτಋೖ
SwiftUI HTML NSAttributedString Network UIKit ϓϩμΫτಋೖ: DSL
Amebaͷಋೖྫ NSAttributedStringͷIFΛ៉ྷʹ 5JQT
What's New in Swift - WWDC2019 https://developer.apple.com/videos/play/ wwdc2019/402/ Function Builder
- swift-evolution https://github.com/apple/swift-evolution/blob/ 9992cf3c11c2d5e0ea20bee98657d93902d5b17 4/proposals/XXXX-function-builders.md