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
1.5k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
FRPを使いはじめて3年が過ぎました。
「第一回スタートアップiOS/Android勉強会」での発表資料
Ryoichi Izumita
October 03, 2016
More Decks by Ryoichi Izumita
See All by Ryoichi Izumita
モバイル開発における共通性・可変性分析入門
rizumita
0
100
Flutterアプリを生成AIで生成する勘所
rizumita
0
1.5k
FlutterアプリのテストでBuilderパターンを活用しよう
rizumita
0
760
SwiftUIの大地を駆け巡るための仕組みを作る
rizumita
0
280
VIPERアーキテクチャ
rizumita
1
840
とあるプログラマのリモートワーク
rizumita
0
390
JavaScript for Automation
rizumita
1
280
Other Decks in Programming
See All in Programming
初めてのKubernetes 本番運用でハマった話
oku053
0
120
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.3k
えっ!!コードを読まずに開発を!?
hananouchi
0
190
どこまでゆるくて許されるのか
tk3fftk
0
470
Claude Team Plan導入・ガイド
tk3fftk
0
170
1年で人数1.5倍、PR数5.5倍増。 品質とアウトカムはどうなったか、 何が効いたか
ike002jp
0
120
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
370
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
110
1B+ /day規模のログを管理する技術
broadleaf
0
130
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.7k
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
240
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Faster Mobile Websites
deanohume
310
32k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Docker and Python
trallard
47
3.9k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.1k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
650
Making the Leap to Tech Lead
cromwellryan
135
10k
My Coaching Mixtape
mlcsv
0
170
Visualization
eitanlees
152
17k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
310
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
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 ςΩετ
͝੩ௌ͋Γ͕ͱ ͏͍͟͝·ͨ͠ɻ