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
FRPを使いはじめて3年が過ぎました。
Search
Ryoichi Izumita
October 03, 2016
Programming
4
1.4k
FRPを使いはじめて3年が過ぎました。
「第一回スタートアップiOS/Android勉強会」での発表資料
Ryoichi Izumita
October 03, 2016
Tweet
Share
More Decks by Ryoichi Izumita
See All by Ryoichi Izumita
モバイル開発における共通性・可変性分析入門
rizumita
0
83
Flutterアプリを生成AIで生成する勘所
rizumita
0
1.3k
FlutterアプリのテストでBuilderパターンを活用しよう
rizumita
0
680
SwiftUIの大地を駆け巡るための仕組みを作る
rizumita
0
270
VIPERアーキテクチャ
rizumita
1
810
とあるプログラマのリモートワーク
rizumita
0
370
JavaScript for Automation
rizumita
1
270
Other Decks in Programming
See All in Programming
decksh - a little language for decks
ajstarks
4
21k
Microsoft Orleans, Daprのアクターモデルを使い効率的に開発、デプロイを行うためのSekibanの試行錯誤 / Sekiban: Exploring Efficient Development and Deployment with Microsoft Orleans and Dapr Actor Models
tomohisa
0
210
Google I/O recap web編 大分Web祭り2025
kponda
0
2.9k
MLH State of the League: 2026 Season
theycallmeswift
0
160
State of CSS 2025
benjaminkott
1
120
TanStack DB ~状態管理の新しい考え方~
bmthd
2
340
AIでLINEスタンプを作ってみた
eycjur
1
200
AIレビュアーをスケールさせるには / Scaling AI Reviewers
technuma
2
230
Understanding Ruby Grammar Through Conflicts
yui_knk
1
130
The State of Fluid (2025)
s2b
0
200
令和最新版手のひらコンピュータ
koba789
14
8k
Flutterと Vibe Coding で個人開発!
hyshu
1
270
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Fireside Chat
paigeccino
39
3.6k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
Being A Developer After 40
akosma
90
590k
Bash Introduction
62gerente
614
210k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Code Reviewing Like a Champion
maltzj
525
40k
Why Our Code Smells
bkeepers
PRO
338
57k
A Tale of Four Properties
chriscoyier
160
23k
Six Lessons from altMBA
skipperchong
28
4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
183
54k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
Transcript
FRPΛ͍͡Ίͯ3͕ ա͗·ͨ͠ɻ Lang-8 ઘా ྖҰ / @rizumita 2016/10/01
͜ͷൃදݸਓͷײΛݩʹ࡞͍ͯ͠·͢ɻޮՌɾޮೳΛҎԼུ ࣗݾհ ▸ Lang-8ࣾͷiOSΞϓϦ։ൃ୲ ▸ ݴޠܥQ&AαʔϏεHiNative ▸ Objective-Cྺ: 20 ▸
Swiftྺ: 2 ▸ iPhone3GS͔ΒiOSΞϓϦ։ൃ ▸ ݝ҆ಶࢢͰϦϞʔτϫʔΫ
ͯ͜͜͞Ͱ ຊͷԠԉϝοηʔδΛ ͝հ͠·͢ʂ
None
͝ଘͰ͢ΑͶɻ FRP / MVVMΛ͝ଘͰ͔͢ʁ ▸ Functional Reactive Programming ▸ ؔܕϦΞΫςΟϒϓϩάϥϛϯά
▸ RxSwift / ReactiveCocoa ͳͲ ▸ FRPΛར༻ͨ͠Model View ViewModel - MVVM ▸ ࢲ2013͔Β͍͡Ί·ͨ͠ɻ
2013/03/12
͍͡ΊΔ ͱ…
None
Ͱ…
ͲΜͳϥΠϒϥϦͰকདྷͷෆ҆ແ͘ͳΒͳ͍Ͱ͢ΑͶ REACTIVECOCOA… ▸ ৽ݴޠɾ৽όʔδϣϯରԠʹ͕͔͔࣌ؒͬͨ ▸ ϝΠϯίϛολʔͷ׆ಈԼͷ৺͕͋ͬͨ ▸ RxSwift͕ਓؾʹ
ࣗͰϝ ϯςͰ͖ͳ ͍نͷϥ ΠϒϥϦʹ શͯΛͤ ͯେৎʁ
3ͬͯΔͷʹ͍·ͩʹ͍͜ͳ͍ͤͯΔײ͕͡͠·ͤΜɻ FRP… ▸ Functional Reactive ProgrammingͱReactive Programmingͷҧ ͍ɺ͔Γ·͔͢ʁࢲ͔Γ·ͤΜɻ ▸ Functionalʹ࣮Ͱ͖·͔͢ʁࢲͰ͖·ͤΜɻ
▸ iOS SDKΒ͍͠هड़ͱ͔͚Ε͍ͯΔɻ ▸ FRPΛͬͨઃܭϨΠϠʔؒΛFRPͰଓ͢Δํ͕·͍͠ɻ ▸ શͯͷϨΠϠʔͱϨΠϠʔؒͰFRPΛར༻͢Δͷґଘ͗͢͠Ͱ ʁ
ࣗͰ ेཧղ Ͱ͖ͳ͍ ֓೦ʹશͯ Λͤͯ େৎʁ
FRPͷར༻ ࠷খݶʹ͠Α͏… ݸਓͷײͰ͢
MVVMΛOOPͰߏͯ͠FRPͰܨ͙ͷͬͯFUNCTIONALͬͯݴ͑Δͷʁ MVVM͔ΒVIPER… ▸ FRPͷར༻Λ߇͑ΔͷͰಉ࣌ʹMVVMར༻தࢭ ▸ ΘΓʹVIPERΞʔΩςΫνϟΛ࠾༻ ▸ ΫϦʔϯΞʔΩςΫνϟͷҰछ ▸ PlainΦϒδΣΫτΛར༻͢Δ
▸ View / Interactor / Presenter / Entity / Router
DIίϯςφͬͯ·͢ VIPERͷར ▸ ϥΠϒϥϦʹґଘ͠ͳ͍ ▸ DIΛར༻͢ΔͷͰςετ͕͍͢͠ ▸ ϨΠϠʔΛదʹׂ͍͢͠ ▸ FRPͷελοΫτϨʔεΘ͚͕Θ͔Βͳ͍Α
SegueͲͷΞʔΩςΫνϟͰ૬ੑ͕ѱ͍ؾ͕͠·͕͢… VIPERͷܽ ▸ Ϋϥεϓϩτίϧ͕ଟ͘ͳΔ ▸ Segueͱͷ૬ੑ͕ѱ͍
ͦΕͰFRPΛ ར༻͠·͔͢…ʁ
·ͩͬͯ·͢… ▸ طଘͷFRP+MVVMͳίʔυ ▸ APIΞΫηεͳͲͷෳࡶͳඇಉظॲཧ ▸ ͦΕ͚ͩͷͨΊʹFRPϥΠϒϥϦେ͛͞ͳͷͰ PromiseKitΛݕ౼த
ݸਓͷײ(ry ઃܭͷํͷ༏ઌॱҐ ▸ ୈҰʹiOS SDKΒ͍͠ઃܭ ▸ ࣍ʹSwiftΒ͍͠ઃܭ ▸ ʢFRPΛ͏߹ʣFRPΒ͍͠ઃܭ
Ͱɺ ͦΕͰ͕ͬͭΓFRPΛ ͏Αʂͱ͍͏ํʂ
ݸਓͷײͰ͢ɻ ▸ FRPΛ͏ͳΒେMVVMͰͳ͘MVCͰेͰʁ ▸ DIΛΈ߹ΘͤΔͱςετ͘͢͠ͳΔɻ ▸ ؔܕϓϩάϥϛϯάత(ࢀরಁաੑɾΧϦʔԽɾؔ߹) ͳ࣮Λߦ͍ɺΫϩʔδϟΛͨ͘͠ͳͬͨΒؔԽΛݕ౼ ͢Δͱྑ͍͜ͱ͕ଟ͍ɻSwiftz(Swiftx)ΛҰॹʹ͏ͱศརɻ ▸
RxSwiftͰॻ͍ͯΈͨˠ https://github.com/rizumita/Tasks ▸ ͰHot / ColdΤϥʔλΠϓΛ໌ࣔͰ͖ΔReactiveCocoa ͕Φεεϝɻಛʹن͕େ͖͘ෳਓͰ։ൃ͢Δ߹ɻ
ཁ͢Δʹ…
FRP ͍͍ΑͶʂ ָ͍͠ΑͶʂ
None
͝੩ௌ͋Γ͕ ͱ͏͟͝
͋ɺͪΐͬͱ͓ ͍࣌ؒͩ͘͞…
iOSアプリプログラマーを募 集してます。一緒に働きま せんか? גࣜձࣾLang-8 ςΩετ
͝੩ௌ͋Γ͕ͱ ͏͍͟͝·ͨ͠ɻ