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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
Exploring anti-patterns in Rails
aemeredith
3
470
The browser strikes back
jonoalderson
0
1.5k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Side Projects
sachag
455
43k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
First, design no harm
axbom
PRO
2
1.3k
Visualization
eitanlees
152
17k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
440
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