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
課題感から始める クラス設計と合意形成
Search
きりみん
March 11, 2018
Programming
5
2.6k
課題感から始める クラス設計と合意形成
きりみん
March 11, 2018
Tweet
Share
More Decks by きりみん
See All by きりみん
AndroidエンジニアがRailsにチャレンジしてる理由
kirimin
1
1.5k
What are AtCoder and competitive programming
kirimin
0
9.9k
バーチャル男声幼女プログラマーとして活動した1年間の振り返り
kirimin
0
1k
アプリエンジニアでも神絵師になりたい!
kirimin
4
5.4k
Watashi ni Kotlin ga maiorita
kirimin
0
510
NEMのAPIとモザイクであそぼう
kirimin
0
370
はじめようきれいなコード
kirimin
8
3k
Material Components for Android触ってみる
kirimin
7
1.9k
[社内LT]あたらしいMaterial Design
kirimin
1
1.7k
Other Decks in Programming
See All in Programming
技術を根付かせる / How to make technology take root
kubode
1
240
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
33
12k
SRE、開発、QAが協業して挑んだリリースプロセス改革@SRE Kaigi 2025
nealle
3
4.2k
Pythonでもちょっとリッチな見た目のアプリを設計してみる
ueponx
1
490
Conform を推す - Advocating for Conform
mizoguchicoji
3
680
Grafana Cloudとソラカメ
devoc
0
140
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
900
2024年のWebフロントエンドのふりかえりと2025年
sakito
1
230
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
260
Lottieアニメーションをカスタマイズしてみた
tahia910
0
120
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
250
iOSエンジニアから始める visionOS アプリ開発
nao_randd
3
120
Featured
See All Featured
Fireside Chat
paigeccino
34
3.2k
Building Applications with DynamoDB
mza
93
6.2k
BBQ
matthewcrist
86
9.5k
How to Ace a Technical Interview
jacobian
276
23k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
8
270
Building an army of robots
kneath
302
45k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Thoughts on Productivity
jonyablonski
69
4.5k
How GitHub (no longer) Works
holman
313
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Transcript
՝ײ͔Β࢝ΊΔ Ϋϥεઃܭͱ߹ҙܗ Bonfire Android #3
ࣗݾհ • @kirimin • AnyPayגࣜձࣾ ॴଐ • AndroidΤϯδχΞ • όʔνϟϧϢʔνϡʔόʔ
• React-NativeΤϯδχΞ
ฐࣾͷϓϩμΫτ
ࠓͷςʔϚ ʮαʔϏεͱઃܭʯ
ઃܭɺߟ͑ͯ·͔͢ʁ
ʲΞϯέʔτʳઃܭʹ͍ͭͯ • ͕ͬͪΓΫϥεߏΛܾΊͯӡ༻͍ͯ͠Δ
ʲΞϯέʔτʳઃܭʹ͍ͭͯ • ͕ͬͪΓΫϥεߏΛܾΊͯӡ༻͍ͯ͠Δ • ωοτϫʔΫ·ΘΓͱ͔ج൫ͷ෦ͷΫϥε ߏ͚ܾͩΊͯ͋ͱ࣮ऀ࣍ୈ
ʲΞϯέʔτʳઃܭʹ͍ͭͯ • ͕ͬͪΓΫϥεߏΛܾΊͯӡ༻͍ͯ͠Δ • ωοτϫʔΫ·ΘΓͱ͔ج൫ͷ෦ͷΫϥε ߏ͚ܾͩΊͯ͋ͱ࣮ऀ࣍ୈ • શવΘ͔Βͳ͍ɻԶͨͪงғؾͰΦϒδΣ ΫτࢦΛ͍ͬͯΔ
͍Ζ͍Ζͳઃܭύλʔϯ .71 .7$ .77. ""$ 'MVY 3FEVY
ͳΜͰઃܭΛߟ͑Δඞཁ͕ ͋ΔΜͩΖ͏
ͦ͜ʹ՝͕͋Δ͔Β
͑Β͍ͻͱʮMVP͕ΠέͯΔ Β͍͔͠Βɺ࣍ͷΞϓϦ MVPͰͬͯͶʯ
·ΕʹΑ͋͘Δޫܠ • ͑Β͍ͻͱʮMVP͕ΠέͯΔΒ͍͔͠Βɺ࣍ͷ ΞϓϦMVPͰ࡞ͬͯࣗಈςετΛಋೖͶʯ
·ΕʹΑ͋͘Δޫܠ • ͑Β͍ͻͱʮMVP͕ΠέͯΔΒ͍͔͠Βɺ࣍ͷ ΞϓϦMVPͰ࡞ͬͯࣗಈςετΛಋೖͶʯ • ϝϯόʔʮͳΜͰ͜Μͳ໘ͳॻ͖ํ͠ͳ͍ͱ ͍͚ͳ͍Μͩ...ʯʮԿ͕ਖ਼͍͠ͷ͔͔Βͳ ͍...ʯ
·ΕʹΑ͋͘Δޫܠ • ͑Β͍ͻͱʮMVP͕ΠέͯΔΒ͍͔͠Βɺ࣍ͷ ΞϓϦMVPͰ࡞ͬͯࣗಈςετΛಋೖͶʯ • ϝϯόʔʮͳΜͰ͜Μͳ໘ͳॻ͖ํ͠ͳ͍ͱ͍ ͚ͳ͍Μͩ...ʯʮԿ͕ਖ਼͍͠ͷ͔͔Βͳ͍...ʯ • ՝ײ͕ೝࣝग़དྷ͍ͯͳ͍ͷʹઃܭͱݴΘΕͯ ϝϦοτΛ࣮ײ͢ΔͷΉ͔͍ͣ͠
શવΘ͔Βͳ͍ɻ ԶͨͪงғؾͰྲྀߦΓͷ ઃܭΛ͍ͬͯΔ
ରࡦ
1.νʔϜͱͯ͠ग़དྷΔ͜ͱ
ࠓͷϓϩδΣΫτͷ՝Λ ચ͍ग़͢ • Ͳ͜ʹͲΜͳॲཧ͕ॻ͔Ε͍ͯΔͷ͔͔Βͳ ͍ • ৽͍͠ॲཧΛͲ͜ʹॻ͚͍͍ͷ͔͔Βͳ͍ • ঢ়ଶ͕ແବʹෳࡶͰෆͳόά͕ࠞೖ͕ͪ͠ •
ίʔυ͕ಡΈʹ͘͘վमίετ͕ߴ͍
ࠓ͋Δ՝ΛղܾͰ͖ͦ͏ͳύ λʔϯΛಋೖ͠Α͏ • ٯʹ՝͕ಛʹແ͚ΕແཧʹΧοίΠΠઃܭύλʔ ϯΛΘͳ͍͍ͯ͘ • ࢥతʹਖ਼͍͠ΨονϦͨ͠ઃܭ͕ৗʹ༏Ε͍ͯΔ ͱݶΒͳ͍ɹ(શͯͷΫϥεΛinterfaceԽ͢Δͳ Ͳ) •
ͨͩ͠ɺকདྷతͳ՝͕༧ݟग़དྷ͍͍ͯͯΔͳΒ࠷ ॳ͔ΒΨονϦΉͷѱ͘ͳ͍
ݸਓతʹ࠷ݶܾΊ͓͍ͯͨํ ͕Αͦ͞͏ͳ͜ͱ • ͏ϥΠϒϥϦͱ͍ํ • DataBinding/RxJava/Retrofit/EventBus/etc... • σʔλΞΫηεॲཧͷݺͼग़͠ํ • View͔ΒݺͿ/Ϟσϧ͔ΒݺͿ/RepositoryతͳͷΛ࡞Δ/࡞Β
ͳ͍ • ϏδωεϩδοΫΛॻ͘ॴ • ϞσϧΫϥεͬΆ͍ͷ͕͍ΖΜͳύοέʔδʹࢄΒΓ͕ͪ
2.։ൃऀݸਓͱͯ͠ Ͱ͖Δ͜ͱ
࣮࣌ͷ͋Γ͕ͪͳ՝ΛΔ • ΦεεϝͳͷݸਓͰ0͔ΒΞϓϦΛ࡞ͬͯΈΔ͜ͱ • ͦͦ͜͜ͷػೳΛ࣋ͬͨΞϓϦΛҰਓͰ࡞ΓɺԿػೳ վળͷΞοϓσʔτΛ͍ͯ͘͠ • ͍Ζ͍Ζͳ՝͕ݟ͑ͯ͘Δ • ྑ͔Εͱࢥͬͨઃܭ͕ͭΒΈΛੜΉͳͲͷݟ͕ಘΒΕΔ
• ઃܭʹࣦഊͨ͠ܦݧҰੜͷࡒ࢈
ཧ • νʔϜʮ͜͏͍͏՝͕͋Δ͔Β͜ͷઃܭΛ ಋೖ͠Α͏ʯ • ϝϯόʔʮΘ͔Δʯ
͡Ό࣮͋ࡍʹͲ͏ͬͯಋೖ ͢Δͷʁ
paymoͰͷྫ
ఏҊ͢Δ • ॳظͷ࣮͍Ζ͍Ζͳ՝͕͋Δઃܭͩͬͨɹ (DroidKaigiͰͷൃදɺHow to improve your architecture and testsΛࢀর)
• ·ͣேձSlackͳͲͰ՝ײͱΓ͍ͨ͜ͱΛप͢Δ • GitHubʹIssueΛཱͯΔ • จষϕʔεͰํੑʹ͍ͭͯٞ͠νʔϜͰ߹ҙ͢Δ
None
None
None
۩ମҊΛݟͤΔ • αϯϓϧͱͯ͠ҰՕॴʹద༻͍ͨ͠ઃܭΛద༻͠ ͨϒϥϯνΛ࡞ΓɺPRΛग़͢ • ίʔυʹରͯ͠ϝϯόʔ͔Β͘ποίϛΛืΔ • ίʔυϕʔεͰߋʹٞ͢Δ • ApproveΛΒ͍߹ҙͷҙࢥΛ໌֬ʹ֬ೝ͢Δ
None
ϦϑΝΫλΛ࣮ࢪ͢Δ • ৽࣮͘͢͠ΔՕॴ৽͍͠ઃܭʹ߹ΘͤΔ • ݹ͍ՕॴεέδϡʔϧͳͲͱ૬ஊ͠ͳ͕Β ॱ࣍ॻ͖͍͑ͯ͘
େࣄͳ͜ͱ • ҰਓͰಥͬΒͳ͍ • ৽͍͠ઃܭ͕ϝϯόʔײͰेʹप͞Ε͍ͯͳ ͔ͬͨΓɺҙࣝ߹Θ͕ͤग़དྷ͍ͯͳ͍ͱɺ࣮ऀ ʹΑͬͯνάϋάʹͳͬͨΓɺετϨεͷݪҼʹ ͳΔ • ઃܭͷରϓϩάϥϜ͕ͩɺେࣄͳͷਖ਼͍͠
՝ͷೝࣝͱίϛϡχέʔγϣϯ
ઈର͋͠Θͤͳ ։ൃݱʹ͠Α͏ͳ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠