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
72
Flutterアプリを生成AIで生成する勘所
rizumita
0
1.2k
FlutterアプリのテストでBuilderパターンを活用しよう
rizumita
0
650
SwiftUIの大地を駆け巡るための仕組みを作る
rizumita
0
260
VIPERアーキテクチャ
rizumita
1
800
とあるプログラマのリモートワーク
rizumita
0
360
JavaScript for Automation
rizumita
1
260
Other Decks in Programming
See All in Programming
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
180
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
550
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
技術同人誌をMCP Serverにしてみた
74th
1
450
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
240
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
580
ニーリーにおけるプロダクトエンジニア
nealle
0
660
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
330
PicoRuby on Rails
makicamel
2
110
Flutterで備える!Accessibility Nutrition Labels完全ガイド
yuukiw00w
0
120
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
1
130
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
330
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
GraphQLとの向き合い方2022年版
quramy
49
14k
RailsConf 2023
tenderlove
30
1.1k
Raft: Consensus for Rubyists
vanstee
140
7k
Designing for Performance
lara
609
69k
A Modern Web Designer's Workflow
chriscoyier
694
190k
BBQ
matthewcrist
89
9.7k
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 ςΩετ
͝੩ௌ͋Γ͕ͱ ͏͍͟͝·ͨ͠ɻ