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
KotlinとReduxをAndroidアプリに導入したら
Search
Fukui Atsuko
September 01, 2017
Technology
6
4.7k
KotlinとReduxをAndroidアプリに導入したら
KotlinとReduxをAndroidアプリに導入したら
KotlinとReduxをAndroidアプリに導入して得られた知見を共有します。
Fukui Atsuko
September 01, 2017
Tweet
Share
More Decks by Fukui Atsuko
See All by Fukui Atsuko
こんな時どう書くの? 逆引きKotlin入門
muumuumuumuu
3
1.5k
Kotlin導入作戦
muumuumuumuu
4
570
Sometimes Swift confuses Kotlin engineers.
muumuumuumuu
0
680
How to find problem causes and performance improvement
muumuumuumuu
6
4.3k
Other Decks in Technology
See All in Technology
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
22k
Kiro のクレジットを使い切る!
otanikohei2023
0
110
Databricksアシスタントが自分で考えて動く時代に! エージェントモード体験もくもく会
taka_aki
0
320
OSSで構築するIT基盤管理実践事例: NetBox・Snipe-IT・FreeRADIUS+PrivacyIDEA / Practical Case Studies of IT Infrastructure Management Using OSS
nttcom
0
200
Secure Boot 2026 - Aggiornamento dei certificati UEFI e piano di adozione in azienda
memiug
0
140
作りっぱなしで終わらせない! 価値を出し続ける AI エージェントのための「信頼性」設計 / Designing Reliability for AI Agents that Deliver Continuous Value
aoto
PRO
1
130
Windows ネットワークを再確認する
murachiakira
PRO
0
260
生成AI活用によるPRレビュー改善の歩み
lycorptech_jp
PRO
5
2.1k
Data Hubグループ 紹介資料
sansan33
PRO
0
2.8k
「使いにくい」も「運用疲れ」も卒業する UIデザイナーとエンジニアが創る持続可能な内製開発
nrinetcom
PRO
1
780
Digitization部 紹介資料
sansan33
PRO
1
7k
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
120
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
0
260
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
210
Mobile First: as difficult as doing things right
swwweet
225
10k
Unsuck your backbone
ammeep
672
58k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.8k
Navigating Weather and Climate Data
rabernat
0
130
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.1k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
260
How to Ace a Technical Interview
jacobian
281
24k
Test your architecture with Archunit
thirion
1
2.2k
Odyssey Design
rkendrick25
PRO
2
530
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Transcript
,PUMJOͱ3FEVYΛ "OESPJEΞϓϦʹಋೖͨ͠Β 3FUUZ5FDI/JHIU!3FUUZΦϑΟε
"CPVUNF • Ҫರࢠ / Fukui Atsuko • @muumuumuumuu • Retty,
Inc. • AndroidΤϯδχΞ • ͦͷલΈࠐΈܥAndroidͷ͓ࣄ
ࠃ/P໊࣮άϧϝαʔϏε3FUUZͷӡӦ ઃཱ XFCͱΞϓϦͰαʔϏεల։ γϯάϧυϝΠϯ εϚϗϑΝʔετ ݄ؒར༻ऀສ
ͦΜͳ3FUUZͷ "OESPJEνʔϜ͕࠷ۙࢼ͍ͯ͠Δ ,PUMJOͱ3FEVYͷΈ߹Θͤ ʹ͍͓ͭͯ͠͠·͢ɻ
"HFOEB • લఏࣝ: Kotlin / Redux ʹ͍ͭͯ • ಘΒΕͨݟ •
·ͩΜͰ͍Δ෦
,PUMJO
,PUMJO • 2011ʹJetBrain͔ࣾΒൃද͞Εͨϓϩάϥ ϛϯάݴޠ • Better Java ͳݴޠ • JavaͱڞଘՄೳ
• ؔܕϓϩάϥϛϯάͷελΠϧΛαϙʔτ • ͔Θ͍͍
3FEVY
3FEVY • React js ͔Βग़͖ͯͨઃܭࢥ • Three Principles • Single
source of truth • State is read-only • Changes are made with pure functions
3FEVY
ಋೖʹ͋ͨͬͯ
3FEVY-JCSBSZ • ࣾͰ࡞ͬͯެ։͠·ͨ͠ • https://github.com/RettyEng/redux-kt • ReSwiftΛϦεϖΫτ • طଘͷLibraryݕ౼͚ͨ͠ͲσϑΝΫτ͕ͳ ͍ঢ়ଶ
%FNP
3FEVY
͠Β͘ࢼͯ͠ಘΒΕͨݟ
͕͜͜خ͍͠ • Activity/Fragment/ViewΛލ͍ͰใΛڞ༗ Ͱ͖Δ • StateͷมߋΛ͢Δ෦͕Viewͷߋ৽ͷ ͔ΒશʹͰ͖Δ • View͕Ͳ͏มΘΔ͔ؔ৺ͷର֎ •
APIίʔϧΛͨͣը໘දࣔͰ͖Δ
͍͍ͯΔαʔϏε • ෳͷը໘ͰใΛڞ༗͍ͯ͠Δ • ը໘ભҠͷύλʔϯ͕ෳ͋Δ
͍͍ͯͳ͍αʔϏε • ΞϓϦ֎͔ΒϦΞϧλΠϜʹใ͕มΘΓ͏ Δ • ෆشൃใΛͨ͘͞Μѻ͏ඞཁ͕͋Δ • State͕͖࣋ͭใͷαΠζ͕େ͖͍
,PUMJOͱ૬ੑͷྑ͞ • Stateͷ͕࣋ͭnullڐ༰͔Ͳ͏͔ίʔυͰࣔ ͤΔ • Viewଆͷίʔυ͕ॻ͖͍͢
,PUMJOͱ૬ੑͷྑ͞ • Test͕ॻ͖͍͢ • Reducer͕७ਮؔͳͷͰmockͳ͠Ͱςε τ͕ॻ͚Δ
,PUMJOͱ૬ੑͷྑ͞ • Stateͷૢ࡞͕ॻ͖͍͢ • dataΫϥεͷcopy()ϝιουͰมߋ͢ΔՕॴ Λ໌ࣔతʹࢦఆͰ͖Δ
·ͩΜͰ͍Δͱ͜Ζ
4UBUFͷ࣋ͪํ • ͲͷใΛͲ͏͍͏෩ʹStateͱͯ͠อ࣋͢Δ ͔ͱͯΉ • ͓ͦΒ͘ਖ਼ղͳ͍ • αʔϏεΞϓϦʹΑͬͯมΘͬͯ͘Δ • Ͱ։ൃऀؒͰ͋Δఔҙࣝ߹Θ͕ͤඞཁ
4UBUFͷੜଘظؒ • Applicationͱಉ͡ʢΦϯϝϞϦͳใʣ • όοΫάϥϯυʹճͬͨ࣌ʹΞϓϦϓϩηε ͕kill͞ΕΔͱҰॹʹใ͕ࣦΘΕΔ • ͍ࣦͭΘΕ͍͍ͯใ͔͠ࡌͤͳ͍ • SharedPreference͔αʔόʹୀආ͢Δ
ϝϞϦੜଘظؒ • Application͕ੜ͖͍ͯΔݶΓղ์͞Εͳ͍ ϝϞϦͨͪ • Rettyॏ͍ͨσʔλΛอ࣋͢Δέʔε͕ͳ͍ ͷͰࠓͷॴେৎ
·ͱΊ
·ͱΊ • Kotlin / Redux ͷΈ߹ΘͤΛಋೖͯ֓͠Ͷ ѱ͍ͱ͜ΖݟͨΒͣͤͰ͢ • ͨͩ͠αʔϏεͷੑ࣭ͱѻ͏σʔλʹΑΓ· ͢
• Ұࢼͯ͠ΈΔͷΞϦʂ • ͥͻLibraryͬͯΈ͍ͯͩ͘͞ʂ٩( 'ω' )و
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ
͔͜͜Βઌ͕࣌ؒ͋Ε
'MVYʹ͠Α͏͔Ή • Reduxͱಉ͘͡σʔλͷྲྀΕ͕Ұํ௨ߦ • ReduxFlux͔Βੜͨ͠ߟ͑ํ • ͨͩ͠StoreΛෳ࣋ͪ͏Δ
'MVYʹ͠Α͏͔Ή • ActivityΛލ͕ͳ͍͚ͲɺෳͷView Component ͰใΛڞ༗͍ͨ͠ • ΞϓϦશମͷStoreʹͷͤΔใͱͯ͠ෆదͳ ؾ͕͢Δ • ୯Ұػೳ͚ͩͰ͔͠Θͳ͍Store͕ཉ͘͠ͳΔ
• ੜଘظؒActivityʹ߹ΘͤΒΕΔͷͰίϯτ ϩʔϧ͍͢͠