Presentation for Podcamp 2017 Toronto introducing how to do Android app development in Java. This is a basic introduction to what app development looks like Java and how to learn more
1. Todd Burgess
Todd Burgess Media
todd@toddburgessmedia.com
Twitter: @tburgess57
Github: toddburgessmedia
Introduction to Android Development
https://bit.ly/podcamp2017Android
Introduction to Android Development
2. Introduction to Android Development
https://bit.ly/podcamp2017Android
About MeAbout Me
Computing and Information Science degree from University of Guelph
Did Java enterprise apps in Silicon Valley for 1.5 years
Migrated to Android platform 2 years ago
Several Apps on Google Play
What’s Your Score
Tech Dive
Eaves Street
Adoptathon Manager and Store Corodinator with Toronto Cat Rescue
6. Introduction to Android Development
https://bit.ly/podcamp2017Android
Android Introduction
In the Beginning
Android Introduction
In the Beginning
Mobile operating system first
released in 2008
Based on the Linux operating
system
API Version 1
7. Introduction to Android Development
https://bit.ly/podcamp2017Android
Android 2017Android 2017
Current Android Release is Nougat
Over 1 billion devices in the World are currently running
Android
Android now runs on phones, tablets, watches, cars
and televisions
8. Introduction to Android Development
https://bit.ly/podcamp2017Android
Android Nougat
API 25
Android Nougat
API 25
9. Introduction to Android Development
https://bit.ly/podcamp2017Android
Android on TabletsAndroid on Tablets
10. Introduction to Android Development
https://bit.ly/podcamp2017Android
Android WearAndroid Wear
11. Introduction to Android Development
https://bit.ly/podcamp2017Android
Android AutoAndroid Auto
13. Introduction to Android Development
https://bit.ly/podcamp2017Android
Android ThingsAndroid Things
14. Introduction to Android Development
https://bit.ly/podcamp2017Android
Android MarketshareAndroid Marketshare
https://www.statista.com/statistics/263445/global-smartphone-sales-by-operating-system-since-2009/
15. Introduction to Android Development
https://bit.ly/podcamp2017Android
Android Versions (according to Wikipedia)Android Versions (according to Wikipedia)
16. Introduction to Android Development
https://bit.ly/podcamp2017Android
Android Version Breakdown (January 2017)
Source: Wikipedia
Android Version Breakdown (January 2017)
Source: Wikipedia
17. Introduction to Android Development
https://bit.ly/podcamp2017Android
Understanding the Version FragmentationUnderstanding the Version Fragmentation
Android is popular in emerging markets
Emerging market Android devices are use older
technology
Android devices are not upgraded for a variety of
reasons
Upgrading Android devices is a “complicated process”
20. Introduction to Android Development
https://bit.ly/podcamp2017Android
What is a Mobile Application
Source: Techopedia
What is a Mobile Application
Source: Techopedia
A mobile application, most commonly referred to as an
app, is a type of application software designed to run on a
mobile device, such as a smartphone or tablet computer.
Mobile applications frequently serve to provide users with
similar services to those accessed on PCs. Apps are
generally small, individual software units with limited
function.
21. Introduction to Android Development
https://bit.ly/podcamp2017Android
Advantages of a Mobile Device for AppsAdvantages of a Mobile Device for Apps
Ubitiquy
Availability
Data Consumption over Production
Sensor Information (ie accelertometers, light sensors,
device orientation)
Location Information
Notifications
22. Introduction to Android Development
https://bit.ly/podcamp2017Android
Introduction to the Android Operating SystemIntroduction to the Android Operating System
Android SDK
Your App
23. Introduction to Android Development
https://bit.ly/podcamp2017Android
Android App Development OptionsAndroid App Development Options
Natives apps written with the Java programming language
Other options include C, C++, Kotlin
Apps written in Java are referred to as native apps
Other forms of app development include cross platform
development (React Native, Ionic, Xamarin, Unity)
Progressive web apps
Mobile Web sites
24. Introduction to Android Development
https://bit.ly/podcamp2017Android
Advantages of Native App DevelopmentAdvantages of Native App Development
Take advantge of all Android features
Reduced memory
Increased speed (Perf matters!!)
Users appreciate native experience
Can function off-line
Greater control of the user experience
25. Introduction to Android Development
https://bit.ly/podcamp2017Android
Putting an App TogetherPutting an App Together
Development Environment
Android Studio (Linux, macOS, Windows)
Java Programming Language
User Experience
Material Design
Testing Environment
Android Virtual Devices and Real Devices
Deployment
Google Play
Custom Applications
28. Introduction to Android Development
https://bit.ly/podcamp2017Android
Material Design RationaleMaterial Design Rationale
Material Design is Google’s best practices for Android app design
Material Design Covers
● Colour Palettes
● Icons
● Margins and Borders
● Typography
● Elevations
● Animations
Adhering to Material Design is important to get the app
promoted by Google
29.
30. Introduction to Android Development
https://bit.ly/podcamp2017Android
Introduction to JavaIntroduction to Java
Java is an open source programming languge
developed by Sun and maintained by Oracle
Object Oriented
Current version is 1.8 but most Android apps use 1.7
Java is found in enterprise applications, Android Studio
and Android
31. Introduction to Android Development
https://bit.ly/podcamp2017Android
Hello World in JavaHello World in Java
32. Introduction to Android Development
https://bit.ly/podcamp2017Android
Java vs Java on AndroidJava vs Java on Android
36. Introduction to Android Development
https://bit.ly/podcamp2017Android
Four Pieces of an Android AppFour Pieces of an Android App
Activity
● The user facing part of an app
● Can be thought of as the screens users interact with
Broadcast Receiver
● Handles events
● Can be app generated or system events
Service
● Runs in the background
● Can perform tasks (Intents) outside of the application
Content Provider
● Exposes app data to other applications
37. Introduction to Android Development
https://bit.ly/podcamp2017Android
Podcast Android AppPodcast Android App
38. Introduction to Android Development
https://bit.ly/podcamp2017Android
Introduction to MainActivityIntroduction to MainActivity
The first activity of an Android app is referred to as the
MainActivity
Activities have two basic components:
Java class file that extends Activity or
AppCompatActivity
XML Layout file
39. Introduction to Android Development
https://bit.ly/podcamp2017Android
activity_main.xmlactivity_main.xml
40. Introduction to Android Development
https://bit.ly/podcamp2017Android
activity_main.xml in Layout Editoractivity_main.xml in Layout Editor
41. Introduction to Android Development
https://bit.ly/podcamp2017Android
MainActivity.javaMainActivity.java
42. Introduction to Android Development
https://bit.ly/podcamp2017Android
AndroidManifest.xml
Describing our App to Android
AndroidManifest.xml
Describing our App to Android
45. Introduction to Android Development
https://bit.ly/podcamp2017Android
PodcastsPodcasts
Fragmented
Covers a wide range of subjects regarding Android
and Java
Android Developers Backstage
Google podcast that deep dives into all things Android
and coding
46. Introduction to Android Development
https://bit.ly/podcamp2017Android
Udacity
Free courses by Google About Android
Udacity
Free courses by Google About Android
47. Introduction to Android Development
https://bit.ly/podcamp2017Android
Caster.io
Short Tutorials on Android Topics
Caster.io
Short Tutorials on Android Topics
48. Introduction to Android Development
https://bit.ly/podcamp2017Android
Words of Wisdom on Android TutorialsWords of Wisdom on Android Tutorials
Android tools and best practises
are changing every year so
when seeking out answers pay
special attention to the date it
was written
49. Introduction to Android Development
https://bit.ly/podcamp2017Android
MeetupsMeetups
Toronto Android Developers
https://www.meetup.com/ToAndroidDev/
Toronto Java User Group
https://www.meetup.com/Toronto-Java-Users-Group/
Mobile Growth Meetup
https://www.meetup.com/Mobile-Growth-Toronto/
How many use Android devices?
How many people have software development experience?
Any Java people? Android developers?
IOS developers?
Web people?
Want to get into mobile development?
Are in the wrong room?
30.7% of all devices are 2 years old (Marshmellow)
21.9% of devices are 4 years old (KitKat)
32.9% Lollipop is 3 years old
85.5% of all devices 2 – 4 years old
76% of iOS devices are iOS 10
Bottom two layers will disappear with black box
Middle layer will be replaced with Android SDK
Top layer will become Your App