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
アプリ開発初心者が Androidアプリを作っている話
Search
Yosuke Fujii
September 14, 2018
2.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アプリ開発初心者が Androidアプリを作っている話
Yosuke Fujii
September 14, 2018
More Decks by Yosuke Fujii
See All by Yosuke Fujii
arap_osaka_1
syousa1982
1
420
アプリ開発初挑戦のチームでアプリ運用の自動化した話
syousa1982
0
310
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
400
GitHub's CSS Performance
jonrohan
1033
470k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
66
55k
Optimizing for Happiness
mojombo
378
71k
Designing Experiences People Love
moore
143
24k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
Statistics for Hackers
jakevdp
799
230k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
300
Transcript
ΞϓϦ։ൃॳ৺ऀ͕ AndroidΞϓϦͰ ԕִҩྍαʔϏεΛ࡞͍ͬͯΔ @syo_sa1982
࣍ • ࣗݾհ • ։ൃதͷαʔϏε • ٕज़બఆ • Ͳ͏ͬͯ࡞͍ͬͯΔ͔ʁ •
࣮ࡍ։ൃͯ͠ΈͯͲ͏͔ͩͬͨʁ • ·ͱΊɾࠓޙͷ͜ͱ
• ౻Ҫ ཅհ(@syo_sa1982) • ωΫετΠϊϕʔγϣϯגࣜձࣾॴଐ • Web։ൃྺ:10 • AndroidΞϓϦ։ൃྺ:3ϲ݄
։ൃதͷαʔϏε
• αʔϏε໊: εϚ • ωοταʔϏε • 1.0͕ਖ਼ࣜՔಇத • ECدΓʹϦχϡʔΞϧͤͨ͞ 2.0Λ։ൃத
• WebɾAndroid/iOSΞϓϦͰ ల։͢Δ༧ఆ
Business Model γεςϜఏڙ ૬අ༻ͷ ͓ࢧ͍ ױऀ ूۚߦ ωοτ ҩࢣ ࣬ױܒൃ
डק ڞ༗ిࢠΧϧς botܕ શͯͷ࣬ױΛʮอݥ֎ྍʯʹͯߦ͍·͢ ʢྍཆ୲نଇʹҧ͠·ͤΜʣ
ٕज़બఆ
• Android/iOS྆ํ։ൃ͢ΔͷͰɺ ΫϩεϓϥοτϑΥʔϜͷ࠾༻ બࢶʹ্͕͍ͬͯͨɻ • ͔݁Βݴ͏ͱɺωΠςΟϒͰ Android/iOSͦΕͧΕ։ൃ͢Δ͜ͱʹ • ڍ͕͍ͬͯͨީิओʹ ReactNativeͱXamarin
• ReactNative • ϝδϟʔϦϦʔε͞Εͯͳ͍ͷͰɺ ഁյతมߋͷϦεΫ͕ߴ͍ • ใ͕গͳ͍ • ʮJSͰ࣮Ͱ͖Δ =
Webͷ͚ࣝͩͰΞϓϦ͕࡞ΕΔʯ ͱ͍͏Θ͚Ͱͳ͍ • ݁ہAndroid/iOSͷࣝٻΊΒΕΔ • ظతʹݟͯɺอकͷίετֻ͕͔Γͦ͏
• Xamarin • υΩϡϝϯτ͕๛Ͱ։ൃڥ҆ఆ͍ͯ͠Δ • νϡʔτϦΞϧ৮ͬͨײɺ࣮͔ͬͨ͢͠ • ͕ɺXamarinܦݧऀ͕ࣾʹډͳ͍ͷͰɺ ͦͷ։ൃεϐʔυམͪΔՄೳੑ͕ߴ͍
• ωΠςΟϒ(Kotlin/Swift4) • ผʑʹ։ൃ͢ΔͷͰɺ ͲͪΒ͔ยํͷϦϦʔε͕ͣΕࠐΉՄೳੑ͋Δ • νʔϜʹΞϓϦΤϯδχΞ͕ډΔ • ࣮ίετ͔͔Δ͕ɺޙʑͷอक ԼखʹΫϩεϓϥοτϑΥʔϜͰ։ൃ͢ΔΑΓ
ίετ͕গͳ͍ͱஅɻ
Ͳ͏ͬͯ࡞͍ͬͯΔ͔ʁ
None
com.sumashin |-- [extension] ֦ு(Kotlin Extension & DataBinding BindingAdapter) |-- [helper]
ϔϧύʔʢBroadcast & Push௨ etc...ʣ |-- [manager] ϚωʔδϟʔʢΞϓϦέʔγϣϯΫϥεͰอ࣋͢ΔཧΫϥεʣ |-- RepositoryManager ΞϓϦέʔγϣϯΫϥεͰRepositoryΛཧ͢ΔಠࣗΫϥε |-- [model] Ϟσϧ |-- [api] API |-- [db] σʔλϕʔε & Ωϟογϡ |-- [entity] Modelຊମ |-- [repository] ϦϙδτϦʢAPI & DB ˍ ModelɹΛ౷ׅ͢Δʣ |-- [presenter] ϓϨθϯλʔ |-- [view] ϓϨθϯλʔ͔ΒViewΠϕϯτΛ௨͢ΔΠϯλϑΣʔε |-- [viewmodel] ϏϡʔϞσϧ |-- [activity] ActivityͷϩδοΫ |-- [fragment] FragmentͷϩδοΫ |-- FragmentController FragmentͷભҠΛ୲͏Ϋϥε |-- [view] View |-- [activity] ը໘ |-- [fragment] ը໘ |-- [custom] ΧελϜϏϡʔ |-- [adapter] RecyclerView/ListView/ViewPagerͷAdapter |-- MedicalApplication ΞϓϦέʔγϣϯΫϥε
• Model • API௨৴௨৴݁ՌͷΩϟογϡorӬଓԽͳͲΛߦ͏ • API௨৴݁ՌͷϨεϙϯε༰entityͰఆٛ • APIʹ͢RequestύϥϝʔλModelͱͯ͠ఆٛ • RepositoryΛܦ༝ͯ͠Presenterͱ௨৴
• JsonͷύʔεɾӬଓԽ&ΩϟογϡʹϥΠϒϥϦΛ༻ |-- [model] Ϟσϧ |-- [api] API |-- [db] σʔλϕʔε & Ωϟογϡ |-- [entity] Modelຊମ |-- [repository] ϦϙδτϦʢAPI & DB ˍ ModelɹΛ౷ׅ͢Δʣ
• View • େػೳ͝ͱʹActivityΛ༻ҙͯ͠ɺখػೳ͝ͱʹ FragmentΛભҠͤ͞Δ • FragmentControllerʹɺFragNav ͱ͍͏ϥΠϒϥϦΛܧঝͯ͠ɺભҠΛ୲͍ͬͯΔ • FragmentControllerͰFragmentͷભҠΛ੍ޚ
• AdapterRecyclerViewͷ੍ޚʹΘΕΔ |-- [view] View |-- [activity] ը໘ |-- [fragment] ը໘ |-- [custom] ΧελϜϏϡʔ |-- [adapter] RecyclerView/ViewPager |-- FragmentController FragmentͷભҠΛ୲͏Ϋϥε
• Presenter • Model͔Βσʔλऔಘͯ͠RxͰՃ • ViewͱσʔλͷΓऔΓ • ViewModel • Viewʹ͢ใΛཧ
|-- [presenter] ϓϨθϯλʔ |-- [view] ϓϨθϯλʔ͔ΒViewΠϕϯτΛ௨͢ΔΠϯλϑΣʔε |-- [viewmodel] ϏϡʔϞσϧ
• MedicalApplication • ApplicationΫϥεͷ֦ு • RepositoryManager • ApplicationΫϥεͰRepositoryΛཧ • extension
• ΞϓϦશମͰසൟʹ͏ػೳͷݺͼग़͠ͷ؆ུԽ ݩʑ͋Δػೳͷ֦ுͳͲ • helper • όϦσʔγϣϯpush௨ͳͲ |-- [extension] ֦ு(Kotlin Extension & DataBinding BindingAdapter) |-- [helper] ϔϧύʔʢBroadcast & Push௨ etc...ʣ |-- [manager] ϚωʔδϟʔʢΞϓϦέʔγϣϯΫϥεͰอ࣋͢ΔཧΫϥεʣ |-- RepositoryManager ΞϓϦέʔγϣϯΫϥεͰRepositoryΛཧ͢ |-- MedicalApplication ΞϓϦέʔγϣϯΫϥε
࣮ࡍ։ൃͯ͠Έͯ Ͳ͏͔ͩͬͨʁ
։ൃ͔ͬͨ͢͠ • ࠷ॳʹͱͳΔΞʔΩςΫνϟΛܾΊ͍ͯͨͷͰɺ ࣮Ͱ໎͏έʔεগͳ͔ͬͨɻ • ಛघͳػೳʹ͍ͭͯνʔϜͰٞ • ΞϓϦ։ൃܦݧऀ͕ۙ͘ʹډͨͷͰɺࣝͷٵऩ ૣ͔ͬͨؾ͕͢Δ •
Android5ະຬΓࣺͯͯͨͷͰɺ4.4Ҏ߱ͷԼҐ όʔδϣϯؾʹͤͣࡁΜͩ
ۤ࿑ͨ͠ • UIͷ࣮ํ๏͕વWebͱҧ͏ͷͰɺ׳Ε͕ඞཁͩͬͨ • ֤ڥ༻ʹRepositoryManager͕ඞཁͳͷ͕ɺखؒ • ͔͠ϞοΫڥҎ֎த͕શ͘ಉ͡ • Rxͷ͍ํʹ׳ΕΔ·Ͱ͕͔͔࣌ؒͬͨɻ •
৽نͰModel࣮͢Δͷ͕ɺखؒʹࢥ͑ͨ • ࠷ͰEntityɾAPIɾRepositoryඞཁͳ্ʹ ֤ڥͷRepositoryManagerʹखΛՃ͑Δඞཁ͕͋Δ
Α͘ࢀߟʹͯͨ͠هࣄ • ConstraintLayoutΛ͏গ͠ਂͬͯ͘ΈΔ https://qiita.com/takahirom/items/ 97818748e2c2059a2536 • Fragmentͷجຊ https://qiita.com/naoi/items/3e1125d1e1418d09f77a • ඇಉظฒྻॲཧʹཱͭRxJavaͷ͍ํ
https://qiita.com/disc99/items/1b2e44a1105008ec3ac9 • Kotlin είʔϓؔ ༻్·ͱΊ https://qiita.com/ngsw_taro/items/ d29e3080d9fc8a38691e
·ͱΊɾࠓޙͷ͜ͱ
• ࠓͷϦϦʔε͚Ӷҙ։ൃத • ͜͜·Ͱςετ͕ॻ͚͍ͯͳ͍ͷͰɺϦϦʔεޙͷ ΞοϓσʔτͷͨΊʹςετॻ͍͍͖͍ͯͨ • ࠓճMVP + DataBinding ͕࠾༻͞Ε͕ͨɺଞ
ͷΞʔΩςΫνϟͷϝϦοτɾσϝϦοτͬͯ ͓͖͍ͨ
࠷ޙʹ
None