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
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
55k
Jest を使って VueコンポーネントとVuexストアの テストコードを書いてみよう!
karamage
3
1.6k
ドラクエとFFで学ぶRxSwiftのすすめ
karamage
2
710
Other Decks in Programming
See All in Programming
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
3
500
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
2
160
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
4
530
Goで作る、開発・CI環境
sin392
0
240
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
2
11k
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
300
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
2
150
What's new in AppKit on macOS 26
1024jp
0
130
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
740
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
840
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
rkaga
14
5.1k
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
2.3k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
54
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
It's Worth the Effort
3n
185
28k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Fireside Chat
paigeccino
37
3.5k
Building Applications with DynamoDB
mza
95
6.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Facilitating Awesome Meetings
lara
54
6.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Docker and Python
trallard
44
3.5k
Speed Design
sergeychernyshev
32
1k
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…
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠