Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Swiftのクロージャーで苦労じゃ〜
Search
柿本匡章 Masaaki Kakimoto@kara_mage
July 01, 2016
Programming
1
1.2k
Swiftのクロージャーで苦労じゃ〜
Swiftのクロージャーについての説明資料です
柿本匡章 Masaaki Kakimoto@kara_mage
July 01, 2016
Tweet
Share
More Decks by 柿本匡章 Masaaki Kakimoto@kara_mage
See All by 柿本匡章 Masaaki Kakimoto@kara_mage
個人開発とANDPAD開発との相乗効果
karamage
1
180
何者にもなれなかった自分のための「個人開発のすすめ」
karamage
7
57k
Jest を使って VueコンポーネントとVuexストアの テストコードを書いてみよう!
karamage
3
1.7k
ドラクエとFFで学ぶRxSwiftのすすめ
karamage
2
720
Other Decks in Programming
See All in Programming
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
120
tparseでgo testの出力を見やすくする
utgwkk
2
250
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.3k
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
120
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
510
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
350
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
280
ローターアクトEクラブ アメリカンナイト:川端 柚菜 氏(Japan O.K. ローターアクトEクラブ 会長):2720 Japan O.K. ロータリーEクラブ2025年12月1日卓話
2720japanoke
0
730
Cell-Based Architecture
larchanjo
0
130
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
730
Graviton と Nitro と私
maroon1st
0
110
GISエンジニアから見たLINKSデータ
nokonoko1203
0
160
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
62
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Designing Experiences People Love
moore
143
24k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
How STYLIGHT went responsive
nonsquared
100
6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
SwiftͷΫϩʔδϟʔͰ ۤ࿑͡Όʙ ͔Β·͛ˏ͏·͏·ͩΑΜ
ࣗݾհ ໊લɹ֟ຊڡষˏ͔Β·͛ ৬ۀɹϑϦʔϥϯεɾΤϯδχΞ WebΞϓϦiOSΞϓϦΛ࡞ΔࣄΛ͍ͯ͠·͢ɻ ग़ɹԬ Swift, Ruby,JS, AWS Lambda https://www.facebook.com/karamage.umauma
ࣗ༝ͳελΠϧͰࣄͯ͠·͢ ;;͠ͳ͕Βϓϩάϥϛϯά
Swift ͍͠ ࢛ఱԦ Ẃࠈͷ$MPTVSF మนͷHVBSE ࠞಱͷ0QUJPOBM ັͷQSPUPDPM
Ϋϩʔδϟʔͬͯ·͔͢ʁ 8JLJQFEJBΑΓ ΫϩʔδϟʢΫϩʔδϟʔɺӳDMPTVSFʣ ؔดแϓϩάϥϛϯάݴޠʹ͓͚ΔؔΦϒδΣΫτͷҰछɻ ͍͔ͭ͘ͷݴޠͰϥϜμࣜແ໊ؔͰ࣮ݱ͍ͯ͠Δɻ
ʂʁ
ΫϩʔδϟʔͱؔͰ͋Δɻ
Ϋϩʔδϟʔʹ໊લ͕ͳ͍
Ϋϩʔδϟʔ = ໊ແ͠ͷؔ
อଘ֬ೝΞϥʔτදࣔ
Ϋϩʔδϟʔͬͯ·͔͢ʁ MFUEFGBVMU"DUJPO6*"MFSU"DUJPO 6*"MFSU"DUJPO UJUMF0, TUZMF6*"MFSU"DUJPO4UZMF%FGBVMU IBOEMFS\ Ϙλϯ͕ԡ͞Εͨ࣌ͷॲཧΛॻ͘ʢΫϩʔδϟ࣮ʣ BDUJPO6*"MFSU"DUJPO
7PJEJO QSJOU 0, ^
͜Ε͕Ϋϩʔδϟʔͩʂ MFUEFGBVMU"DUJPO6*"MFSU"DUJPO 6*"MFSU"DUJPO UJUMF0, TUZMF6*"MFSU"DUJPO4UZMF%FGBVMU IBOEMFS\ Ϙλϯ͕ԡ͞Εͨ࣌ͷॲཧΛॻ͘ʢΫϩʔδϟ࣮ʣ BDUJPO6*"MFSU"DUJPO
7PJEJO QSJOU 0, ^
{ -> in }ΛݟͨΒ Ϋϩʔδϟʔͩͱࢥ͑ MFUEFGBVMU"DUJPO6*"MFSU"DUJPO 6*"MFSU"DUJPO UJUMF0, TUZMF6*"MFSU"DUJPO4UZMF%FGBVMU
IBOEMFS\ Ϙλϯ͕ԡ͞Εͨ࣌ͷॲཧΛॻ͘ʢΫϩʔδϟ࣮ʣ BDUJPO6*"MFSU"DUJPO 7PJEJO QSJOU 0, ^
Ϋϩʔδϟʔͷॻ͖ํجຊ \ QBSBNFUFST SFUVSOUZQFJO TUBUFNFOUT ^
Ϋϩʔδϟͷॻ͖ํ \ ҾҾͷܕ Γͷܕ JO ॲཧ SFUVSOΓ ^
ΫϩʔδϟʔͰHelloWorld Ϋϩʔδϟ WBSIFMMP8PSME$MPTVSF\ JO QSJOU l)FMMP8PSME ^
IFMMP8PSME$MPTVSF
ΫϩʔδϟʔͰɺ͠ࢉ B CΛͨ݁͠ՌΛฦ͢ΫϩʔδϟΛBEE'VODʹೖ MFUBEE'VOD\ B*OU C*OU *OUJO SFUVSOB C ^
MFUSFTVMUBEE'VOD QSJOUMO SFTVMU
Ϋϩʔδϟʔͷলུه๏ WBSD\ JOQSJOU l)FMMPz ^লུͳ͠ WBSD\ 7PJEJOQSJOU l)FMMPz ^
ͱ7PJEಉ͡ WBSD\ JOQSJOU l)FMMPz ^ฦΓͷܕলུ WBSD\QSJOU l)FMMPz ^Ҿলུ
͍͠ɻɻɻʼʻ
Ϋϩʔδϟʔͷ͍υίϩ ɾίʔϧόοΫ/ඇಉظॲཧ - Alamofire ɾϦΞΫςΟϒϓϩάϥϛϯά RxSwift/SwiftBond ɾmap/filter/reduce
ΫϩʔδϟʔͰඇಉظॲཧ ɾඇಉظॲཧͱ͔ͰΑ͘͏ "MBNPpSFSFRVFTU (&5 IUUQTRJJUBDPNBQJWJUFNT SFTQPOTF+40/\SFTQPOTFJO ͜͜ʹॲཧΛهड़͍ͯ͘͠ ^
ඌΫϩʔδϟʔ(Trailing Closure) ඌҾʹΫϩʔδϟΛࢦఆͨؔ͠Λݺͼग़͢ࡍɺ Χοίॻ͖ΛলུͰ͖·͢ɻ ΧοίΛলུ͠ͳ͍߹ɺϝιουͷΧοί ͷ֎ʹΫϩʔδϟΛॻ͚Δ
ඌΫϩʔδϟʔͰsort OVNCFSTTPSUFE \ OVN*OU OVN*OU #PPMJO SFUVSOOVNOVN ^
·ͱΊ ɾΫϩʔδϟʔ໊ແ͠ͷؔ ɾΫϩʔδϟʔΛ͏ͱඇಉظॲཧͳͲ͕ॻ ͖͍͢ ɾඌΫϩʔδϟʔΧοίͷ֎ʹॻ͚Δ
ΫϩʔδϟʔͷมΩϟϓνϟ to be continued…
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠