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
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Facilitating Awesome Meetings
lara
57
7k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
180
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
880
Balancing Empowerment & Direction
lara
6
1.2k
HDC tutorial
michielstock
2
750
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Making the Leap to Tech Lead
cromwellryan
135
10k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
780
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
360
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