Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
unskilled_team_development_for_droidkaigi
Shinnosuke Kugimiya
March 10, 2017
Programming
16
4.6k
unskilled_team_development_for_droidkaigi
DroidKaigiで発表した内容です
Shinnosuke Kugimiya
March 10, 2017
Tweet
Share
More Decks by Shinnosuke Kugimiya
See All by Shinnosuke Kugimiya
kgmyshin
1
490
kgmyshin
33
7.9k
kgmyshin
2
1.7k
kgmyshin
2
770
kgmyshin
26
3.4k
kgmyshin
10
4.2k
kgmyshin
12
11k
kgmyshin
9
920
kgmyshin
1
190
Other Decks in Programming
See All in Programming
seike460
8
2.3k
kubode
2
200
quannt
1
110
hr01
0
1.9k
devinjeon
0
380
tdak
0
120
fei0203018
0
200
lilobase
PRO
0
100
minecr
0
120
doyaaaaaken
1
340
dnskimo
8
1.5k
horie1024
2
270
Featured
See All Featured
pauljervisheath
195
15k
jcasabona
8
590
marcelosomers
221
15k
zenorocha
298
40k
tenderlove
55
3.5k
dotmariusz
94
5.5k
holman
462
280k
ufuk
57
5.5k
wjessup
340
16k
keavy
108
14k
caitiem20
311
17k
lynnandtonic
273
16k
Transcript
ະख़ͳνʔϜ։ൃ #DroidKaigi2017 @kgmyshin
ࣗݾհ
ࣗݾհ • @kgmyshin • ఝٶ ጏ೭հ • AndoridΤϯδχΞ • Server
/ iOS / WebͳͲ • ϦΫϧʔτϚʔέςΟϯάύʔτφʔζ
ࠓ͢༰
ࠓ͢༰ ͏ͪεʔύʔΤϯδχΞ͚ͩʂͱ͍ ͏৫໓ଟʹͳ͍ɻɻ
ࠓ͢༰ ·ͩ·ͩະख़ͳνʔϜͰͲ͏ͬͯ։ ൃ͍ͯ͘͠ͷ͔ɻɻ
ࠓ͢༰ ະख़ͳνʔϜͰ ࣮ࡍͷ։ൃΛ௨ͯ͡͏·͘ߦͬͨ͜ͱ ͦͷলΛ͠·͢ɻ
ࠓ͢༰ ͨΓલͱࢥ͏͜ͱ ͋Δ͔͠Ε·ͤΜ͕ɺ গ͠ͰࢀߟʹͳΔ͜ͱ͕͋Ε͍Ͱ͢ɻ
Case ελσΟαϓϦ ENGLISH
ελσΟαϓϦENGLISHͱ
ӳޠͰͯ͠ΔͷΛฉ͍ͨΓ
࣮ࡍʹൃԻͯ͠ΈͨΓ
σΟΫςʔγϣϯͯ͠ΈͨΓ
ͱɺ୯७ʹAPIΛୟ͚ͩ͘Ͱͳ ͍ɺߴػೳͳΞϓϦέʔγϣϯ
ײ֮Ͱ͕͢ɺ͜ΜͳΠϝʔδ
Hello, World レベル
APIちょっと呼ぶだけ 特定の機能使うだけ
ある程度のコンテキストの違った API群があったり それをキャッシュしたり
多くのコンテキストの違ったAPI群があったり それをキャッシュしたり
ここらへん 今回作ったのはここらへん (主観)
࣌ͷঢ়گ
iOSϦϦʔεࡁΈ
iOSͷ࣌৬ਓΤϯδχΞೋਓ ͱࢲ
• ίʔυ͍͍ͩͨ20ສߦ • ը໘50΄Ͳ • ظؒ5ϲ݄ͩͬͨ (ऴ൫Ϊ ϦΪϦ
AndroidͷνʔϜߏ ࢲɺ৽ଔΤϯδχΞɺiOSΤϯδχΞ
• ظؒiOSͱಉ͡ • ͪΖΜػೳείʔϓಉ͡ • ਓͦ͜ἧ͍ͬͯΔ͕ೳྗ໘Ͱ ෆ҆ͷ͋ΔνʔϜͩͬͨ
͕ͩͬͨɺ݁ՌແࣄΕΔ͜ ͱͳ͘ϦϦʔε • CrashFree99.98%͋ͨΓ • ධՁ4ΛԼճͬͨ͜ͱͳ͍
։ൃং൫
࠷ѱͳ݁ͱͳΜͩΖ͏…
࠷ѱͳ݁ ೲظʹؒʹ߹Θͳͯ͘ ϦϦʔεͰ͖ͳ͍͜ͱ
ະख़ͳνʔϜ͕࠷ѱͳ݁ʹ ؕΔཁҼ
ະख़ͳνʔϜ͕࠷ѱͳ݁ʹ ؕΔཁҼ • ܦݧ͕ͳ͍ͨΊʹɺίʔυ͕ΧΦεʹͳͬ ͯ͠·͏ • ܦݧ͕ͳ͍ͨΊʹɺ։ൃ͕Γͳ͍ ͜ͷະख़ͳνʔϜʹடংͱεϐʔυΛʂ
εϐʔυΛ্͛Δʹʁʁʁ
։ൃதʹҰ൪ଟ͍࣌ؒ ߟ͑Δ࣌ؒ • ϓϩάϥϜΛλΠϐϯά͢Δ࣌ؒͦΜ ͳʹมΘΒͳ͍ • ݁ہ͕ࠩग़ΔͷͲ͏Ή͔Λߟ͑ɺࢼ ߦࡨޡ͍ͯ͠Δ࣌ؒ • ܦݧऀܦݧ্Ͳ͏Ή͔ͷΞΠσΞ
Λ͍࣋ͬͯΔͷͰૣ͍
։ൃதʹҰ൪ଟ͍࣌ؒ ߟ͑Δ࣌ؒ ͋Β͔͡Ί͔ͬ͠ΓઃܭࢥΛ ͔ͬͪΓ࿅ͬͯɺ ϝϯόʔ͕࣮࣌ʹߟ͑Δ࣌ؒΛݮΒ͢ (ͦͯ͜͠Ε͕டংʹͳΔ)
ઃܭ͔ͬͪΓܾΊ͓ͯ͘ ྫ͑͋ΔػೳΛ࡞Δͱ͖ʹɺ HogeActivity, HogePresenter, HogeUseCase, HogeRepositoryͳͲ Λ࡞Ε͍͍ͱɺ୭Ͱ૾Ͱ͖ΔΑ͏ ʹɺͲ͏͍͏ઃܭʹ͢Δͷ͔ߟ͓͑ͯ͘ டং εϐʔυ
ઃܭ͔ͬͪΓܾΊ͓ͯ͘ Ͳ͏͍͏ΞʔΩςΫνϟͰ͍͍ͱࢥ͏͕ɺ Լهԡ͓͑ͯ͘͞ • ඇಉظ • ӬଓԽ • ϏδωεϩδοΫ •
Πϕϯτཧ • ϑϨʔϜϫʔΫಠࣗͷͤ͘ டং εϐʔυ
ઃܭ͔ͬͪΓܾΊ͓ͯ͘ wikiʹ·ͱΊͯɺ࣮ࡍͷ͋Δͻͱͭͷػೳ Λ࡞ͬͯΈͯઆ໌ டং εϐʔυ
͋ͱடংͮ͘Γ
ςετඞͣॻ͘ • ςετ͕ͳ͍ͱ͜Ζʹ్த͔Βςε τΛೖΕΔͷ͏ͷ͕͍͠΄Ͳ ίετ͕ߴ͘ͳΔɻ • ςετͷ࣭ॏཁ͚ͩͲɺগͳ͘ͱ ॳΊ͔Βςελϒϧʹɻ டং
Theme / Style / colorͷՃېࢭ • σβΠϯΨΠυϥΠϯΛݩʹॳΊʹ جຊతͳͷΛΨπͬͱՃ • ͦΕҎ߱ඞཁͳ͍ͣͳͷͰՃ
ېࢭ டং
dimen / string / shape / selector͍ճ͠͠ͳ͍ • جຊతͳͷઌʹΨπͬͱ࡞Δ •
ͦΕҎ߱ɺඃ͍ͬͯͯখ·Ίʹ ࡞Δ • த్ʹ͍ճ͍ͯ͠͠Δͱमਖ਼ ͨ͠ͱ͖ʹࢥΘ͵ͱ͜Ζ͕มΘͬͯ ͠·͏֬͠ೝ͠Α͏͕ͳ͍ɻɻ டং
ল ཪʹग़ͨ͜ͱͱ͔ͳ͔͕ͬͨɺ ͏গ͜͠͏ͨ͠΄͏͕Α͔ͬͨͳͬͯ͜ ͱͳͲ
ઃܭ্ࣅͨΑ͏ͳͷΛ࡞Δ͜ ͱ͕ଟ͍ͷͰΧελϜςϯϓϨʔ τ࡞ͬͨ΄͏͕Α͔ͬͨ ෳϑΝΠϧΛ ؆୯ʹੜͰ͖Δ εϐʔυ
ઃܭ্ࣅͨΑ͏ͳͷΛ࡞Δ͜ ͱ͕ଟ͍ͷͰΧελϜςϯϓϨʔ τ࡞ͬͨ΄͏͕Α͔ͬͨ http://motida-japan.hatenablog.com/entry/ 2017/01/03/190016 εϐʔυ
ίʔυϑΥʔϚολʔͳͲͷ IDEઃఆΛڞ༗͢Δ டং IDEͷઃఆ ExportͰ͖ΔͷͰ ڞ༗͠·͠ΐ͏
ςετΛॻ͍ͯΒ͏Α͏ʹ͠ ͚ͯͨͲɺςετ࿙Ε͕͋ͬͨ githubͷ͚ࠩͩݕࡧ͠ͳ͍ͱΘ͔Βͳ ͍ͷͰݟམͱ͢͜ͱ͕͋Δ ΧελϜlintͰݕͯ͠CIͰfailʹ͍ͯ͠Δ டং
Getting StartedΛॻ͍ͯಡ· ͳ͍ਓ͍Δ ͦͦಡ·ͳ͍࣌Ͱ…ͱ͍͏ͷ͋Δ͕ ͔֬ʹίʔυϑΥʔϚολʔΧελϜςϯ ϓϨʔτͷίϐʔͱ͔໘ɻ ઃఆςϯϓϨʔτgitཧԼʹ͓͍ͯɺಋೖε ΫϦϓτҰͭୟ͚͍͍͚ͩͱ͍͏෩ʹ͓ͯ͘͠ டং
Getting StartedΛॻ͍ͯಡ· ͳ͍ਓ͍Δ டং DEMO
։ൃத൫
৽ଔҭͷ
ܾΊͨ͜ͱɺͬͨ͜ͱ • λεΫͷཻࡉ͔͘ɺ׳ΕΔʹ͠ ͕ͨͬͯͲΜͲΜେ͖͘ • ࣮લʹΫϥεਤΛॻ͍ͯΒ͏
λεΫͷཻΛࡉ͔͘ɺ׳Εͨ Βେ͖͘ • λεΫͷཻ͕େ͖͍͕ނʹͦͦ ͷ࣮ʹ͕͔͔࣌ؒΔɺͦͯ͠Ϩ ϏϡʔͰࢦఠେྔ…݁Ռɺͳ͔ͳ͔ ऴΘΒͳ͍ͱ͍͏͜ͱ͕.. ·ͣࡉ͔۠ͬͯ͘ޭମݧΛʂ
࣮લʹΫϥεਤΛॻ͍ͯΒ ͏ ΫϥεਤΛॻ͘લ • ઃܭํෆཧղ • ίʔυΛ͕ͬͭΓॻ͍ͨޙʹͯ͢ Γ͠…Έ͍ͨͳ͜ͱ͕ൃੜ • ωʔϛϯάͷѱ͞
࣮લʹΫϥεਤΛॻ͍ͯΒ ͏ ΫϥεਤΛॻ͘Α͏ʹͳͬͯ • ઃܭํͷ৯͍ҧ͍͕ࣄલʹΘ͔Δ • ωʔϛϯάͷϨϏϡʔ͕Ͱ͖Δ • ೋख͕ؒͳ͘ͳͬͨ •
ΠϯλϑΣʔεΛ͔ͬ͠Γҙࣝͯ͘͠Ε ΔΑ͏ʹͳͬͨ
ᷤ౻͕͋ͬͨͱ͜Ζ ઃܭํͳͲΛ͕ࣗߟ͑Δ͜ͱͰ ͷػձΛୣͬͯ͠·͏ͷͰ…
ʹஈ֊͕͋Δʮकഁʯ ·ͣʮकʯ͔Βɻ ܕΛΔ͖λΠϛϯάͩͬͨͷͰ ʹཱ͍༷ͬͯͨ…
ল
λεΫফԽલʹ࣮ΪϦΪϦ· Ͱͷॴ·Ͱམͱ͠ࠐΜͰ ڞ௨ೝࣝΛ࡞Δ εϐʔυ • ઃܭࣗମͷڞ௨ೝࣝͰ͖͍ͯͯࡉ͔ ͍ͱ͜ΖͰ৯͍ҧ͍͕ग़ͯ͘Δ • ͦΕ͕໌͢Δͷ͕ϨϏϡʔ࣌Ͱ͕࣌ؒ ͍ͬͨͳ͍
λεΫফԽલʹڞ௨ೝࣝΛ࡞Δ͜ͱ
λεΫফԽલʹ࣮ΪϦΪϦ· Ͱͷॴ·Ͱམͱ͠ࠐΜͰ ڞ௨ೝࣝΛ࡞Δ εϐʔυ • 1िؒ୯ҐͰΠςϨʔτ͍ͯ͠Δ • λεΫΛܾΊͨॳΊͷʹAndroidνʔ ϜͰू·ͬͯશλεΫʹ͍ͭͯΫϥεਤ Λඳ͍ͨΓɺؾʹͳΔͱ͜Ζϝιου
ͷத·Ͱඳ͍ͯڞ௨ೝࣝΛ࡞͍ͬͯΔ
λεΫফԽલʹ࣮ΪϦΪϦ· Ͱͷॴ·Ͱམͱ͠ࠐΜͰ ڞ௨ೝࣝΛ࡞Δ εϐʔυ • λεΫܾఆॳʹ3-4࣌ؒऔΒΕΔ • ͕ɺҰिؒͷΞτϓοτ͜ͷΓํ ͷ΄͏͕େ͖͍
λεΫফԽલʹ࣮ΪϦΪϦ· Ͱͷॴ·Ͱམͱ͠ࠐΜͰ ڞ௨ೝࣝΛ࡞Δ εϐʔυ ϨϏϡʔͰࠣࡉͳࢦఠ͔͠ͳ͍ͷͰɺλεΫফԽ͕ૣ͍
։ൃऴ൫
͍··Ͱʹͬͨ͜ͱ͕ ͏·͘·ͬͯ ͬ͘͡ΓQAΛͬͯ·ͨ͠
ͦͯ͠ແࣄϦϦʔε
·ͱΊ
·ͱΊ • ະख़ͳνʔϜʹܦݧෆΏ͑ʹடং ͱ։ൃεϐʔυ͕ͳ͍ • டং࡞Δ͠ • ࣮தʹߟ͑Δ͜ͱΛͰ͖ΔݶΓ࣮ લʹߟ͑Δ͜ͱͰεϐʔυΛੜΈ ग़͢͠
·ͱΊ • ϝϯόʔҭେࣄɻཻΛߟ͑ͯ ޭମݧΛੵΈ্͛Δ͠ɻ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ ϦΫϧʔτϚʔέςΟϯάύʔτφʔζͷ ϒʔεʹ͍ͨΓ͢ΔͷͰ Կ͔࣭͋ΕͦͪΒ͔ΒͰʂ (͍ͳ͔ͬͨΒ twitter͔ΒͰʂʂ)