Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
アプリ開発初心者が 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
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
58k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
New Earth Scene 8
popppiees
4
2.6k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1k
Building AI with AI
inesmontani
PRO
1
1.2k
Typedesign – Prime Four
hannesfritz
42
3.2k
Are puppies a ranking factor?
jonoalderson
2
3.9k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
510
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
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