Introduction to Android App Development

Embed Size (px)

Citation preview

hack klout

Todd Burgess

Todd Burgess Media

[email protected]: @tburgess57Github: toddburgessmediaIntroduction to Android Developmenthttps://bit.ly/podcamp2017Android

Introduction to Android Development

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?

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAbout MeComputing 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 PlayWhats Your ScoreTech DiveEaves Street

Adoptathon Manager and Store Corodinator with Toronto Cat Rescue

Kenny and Spencer

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidCakes by Todd

IntroducingAndroid

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid IntroductionIn the BeginningMobile operating system first released in 2008

Based on the Linux operating system

API Version 1

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid 2017Current 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

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid NougatAPI 25

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid on Tablets

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid Wear

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid Auto

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid TV

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid Things

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid Marketshare

https://www.statista.com/statistics/263445/global-smartphone-sales-by-operating-system-since-2009/

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid Versions (according to Wikipedia)

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid Version Breakdown (January 2017)Source: Wikipedia

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

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidUnderstanding the Version FragmentationAndroid 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

Introduction to Android Developmenthttps://bit.ly/podcamp2017Android

IntroductionToAndroidApps

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidWhat is a Mobile ApplicationSource: 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.

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAdvantages of a Mobile Device for AppsUbitiquy

Availability

Data Consumption over Production

Sensor Information (ie accelertometers, light sensors, device orientation)

Location Information

Notifications

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidIntroduction to the Android Operating System

Android SDKYour AppBottom two layers will disappear with black box

Middle layer will be replaced with Android SDK

Top layer will become Your App

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid App Development OptionsNatives 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

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAdvantages of Native App DevelopmentTake 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

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidPutting an App TogetherDevelopment EnvironmentAndroid Studio (Linux, macOS, Windows)Java Programming Language

User ExperienceMaterial Design

Testing EnvironmentAndroid Virtual Devices and Real Devices

DeploymentGoogle PlayCustom Applications

Material Design

Material Design Examples

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidMaterial Design RationaleMaterial Design is Googles best practices for Android app design

Material Design CoversColour Palettes

Icons

Margins and Borders

Typography

Elevations

Animations

Adhering to Material Design is important to get the app promoted by Google

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidIntroduction to JavaJava 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

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidHello World in Java

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidJava vs Java on Android

WritingAndroidCode

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroid Studio

ActivityServiceContentProviderBroadcastReceiver

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidFour Pieces of an Android AppActivityThe user facing part of an app

Can be thought of as the screens users interact with

Broadcast ReceiverHandles events

Can be app generated or system events

ServiceRuns in the background

Can perform tasks (Intents) outside of the application

Content ProviderExposes app data to other applications

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidPodcast Android App

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidIntroduction to MainActivityThe 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

Introduction to Android Developmenthttps://bit.ly/podcamp2017Androidactivity_main.xml

Red Box is coming

Introduction to Android Developmenthttps://bit.ly/podcamp2017Androidactivity_main.xml in Layout Editor

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidMainActivity.java

5 red boxes to go through

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidAndroidManifest.xmlDescribing our App to Android

2 red boxes to go through

Learning More About Android

Android Developershttps://developer.android.com/index.html

Material Design for Androidhttps://developer.android.com/design/material/index.html

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidGoogle Resources

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidPodcastsFragmentedCovers a wide range of subjects regarding Android and Java

Android Developers BackstageGoogle podcast that deep dives into all things Android and coding

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidUdacityFree courses by Google About Android

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidCaster.ioShort Tutorials on Android Topics

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidWords of Wisdom on Android TutorialsAndroid tools and best practises are changing every year so when seeking out answers pay special attention to the date it was written

Introduction to Android Developmenthttps://bit.ly/podcamp2017AndroidMeetupsToronto Android Developershttps://www.meetup.com/ToAndroidDev/

Toronto Java User Grouphttps://www.meetup.com/Toronto-Java-Users-Group/

Mobile Growth Meetuphttps://www.meetup.com/Mobile-Growth-Toronto/

Thanks for Listening

Happy Coding&Good Luck