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
How to start Android app development
Search
Daichi Furiya (Wasabeef)
January 17, 2018
Programming
1
850
How to start Android app development
How to start Android app development
Daichi Furiya (Wasabeef)
January 17, 2018
Tweet
Share
More Decks by Daichi Furiya (Wasabeef)
See All by Daichi Furiya (Wasabeef)
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
1.4k
About Flutter Architecture
wasabeef
1
190
2023 Flutter/Dart Summary
wasabeef
0
56
I/O Extended 2023 - Dart と Flutter の新機能
wasabeef
0
160
I/O Extended 2023 - Flutter 活用事例
wasabeef
10
2.8k
What it Takes to be a Flutter Developer
wasabeef
0
180
FlutterKaigi 2022 Keynote
wasabeef
1
580
Flutter Hooks を使ったアプリ開発 / App Development with the Flutter Hooks
wasabeef
2
1.3k
Flutter 2021 の振り返りと今後のアプリ開発に向けて / Looking back on Flutter 2021 and for future app development.
wasabeef
4
2.1k
Other Decks in Programming
See All in Programming
Visual StudioのGitHub Copilotでいろいろやってみる
tomokusaba
1
190
React 19アップデートのために必要なこと
uhyo
5
1.1k
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
180
『GO』アプリ データ基盤のログ収集システムコスト削減
mot_techtalk
0
130
GAEログのコスト削減
mot_techtalk
0
120
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
250
AI Agent系IDEを使って 開発生産性を爆アゲする
ouchi2501
1
100
Datadog Workflow Automation で圧倒的価値提供
showwin
1
100
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
210
Formの複雑さに立ち向かう
bmthd
1
900
法律の脱レガシーに学ぶフロントエンド刷新
oguemon
5
750
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
1
480
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
RailsConf 2023
tenderlove
29
1k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.8k
Making Projects Easy
brettharned
116
6k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
Become a Pro
speakerdeck
PRO
26
5.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
250
Transcript
How to start Android app development wasabeef GDG Tokyo New
Year 2018
About me Daichi Furiya Google Developer Expert CyberAgent, Inc. @wasabeef_jp
wasabeef
Android OS
8.1 Oreo (2017/12) Unix like (C/C++, Java) smartphones, tablets,
TV, wear, auto Android OS
None
Lessons
Building Your First App Different Devices Lifecycles System Permissions Lessons
Building Your First App Different Devices Lifecycles System Permissions Lessons
Building Your First App Different Devices Lifecycles System Permissions Lessons
Building Your First App Different Devices Lifecycles System Permissions Lessons
Building Your First App Different Devices Lifecycles System Permissions Lessons
Building Your First App
Android Studio d.android.com/studio
Demo!
None
Kotlin
Concise Safe Interoperable Tool-Friendly Kotlin Kotlin Koans Online https://try.kotlinlang.org
Diffrent Devices
Diffrent Devices
Versions (2018/01) Version Release Date Codename API Distribution 2.3.3 -
2.3.7 2010/12 Gingerbread 10 0.4% 4.0.3 - 4.0.4 2011/10 Ice Cream 15 0.5% 4.1.x 2012/07 Jelly Bean 16 1.9% 4.2.x 2012/11 17 2.9% 4.3 2013/7 18 0.8% 4.4 2013/10 KitKat 19 12.8% 5.0 2014/11 Lollipop 21 5.7% 5.1 2015/03 22 19.4% 6.0 2015/10 Marshmallow 23 28.6% 7.0 2016/08 Nougat 24 21.1% 7.1 2016/12 25 5.2% 8.0 2016/08 Oreo 26 0.5% 8.1 2017/12 27 0.2%
Support Library
Backward Compatibility for newer APIs Convenience and Helper Classes Debugging,
Testing and Utilities Support Library
Support Library // build.gradle (app) dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.51" implementation
"com.android.support:appcompat-v7:27.0.2" implementation "com.android.support:design:27.0.2" }
Support Library <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:src="@drawable/ic_my_icon" android:layout_margin="16dp" />
Lifecycles
Lifecycles
Lifecycles override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } override
fun onResume() { super.onResume() } override fun onPause() { super.onPause() } override fun onDestroy() { super.onDestroy() }
System Permissions
System Permissions <!— AndroidManifest.xml —> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.wasabeef.demo" > <uses-permission
android:name="android.permission.INTERNET" /> ... </manifest>
Internet Camera Storage Location Vibrate System Permissions Calendar Contacts Phone
Wake Lock Alarm
Runtime Permissions at Run time ~ Lollipop (5.x) Marshmallow (6.x)
~
Etc..
View Animation Intent Kotlin Support Library RxJava, RxKotlin Android Architecture
Components Etc.. Testing Media (ExoPlayer) FireBase DI (Dagger..)
Thank you. twitter.com/wasabeef_jp wasabeef.jp github.com/wasabeef