Slide 1

Slide 1 text

JUMP STARTING ANDROID SCOTT ALEXANDER-BOWN @scottyab

Slide 2

Slide 2 text

TEXT @scottyab

Slide 3

Slide 3 text

• Lead Android Dev (remote) at Intohand • Co-Author - Android Security Cookbook • Co-Founder of SWmobile Scott Alexander-Bown @scottyab

Slide 4

Slide 4 text

TEXT AGENDA ▸Getting started (with app development) ▸Development tips and tricks ▸Sample apps ▸3rd party services ▸Q&A @scottyab

Slide 5

Slide 5 text

GETTING STARTED

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

TEXT TESTING ▸ 3G/4G and Wifi (and without connection) ▸ Use emulators (geny motion) ▸ But use real devices ▸ Beta test ▸ Friends ▸ Family ▸ Helpful customers @scottyab

Slide 12

Slide 12 text

TEXT TIPS ▸ Lock to portrait ▸ Focus on limited devices ▸ Test on demo devices ▸ Target SDK 15+ (maybe even 21+) ▸ String cont for intent extras / pref keys ▸ Avoid Child Fragments @scottyab

Slide 13

Slide 13 text

TIPS AND TRICKS

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

NAV MENU SNACKBAR TABS COORDINATOR FLOATING ACTION BUTTON MORE… compile 'com.android.support:design:22.2.0' UI:DESIGN SUPPORT LIB

Slide 16

Slide 16 text

https://github.com/JakeWharton/butterknife UI: BUTTER KNIFE

Slide 17

Slide 17 text

ASYNC LOAD IMAGES TRANSFORM https://github.com/square/picasso UI: PICASSO

Slide 18

Slide 18 text

CONVERT JAVA OBJECTS INTO JSON AND BACK https://github.com/google/gson API: GSON

Slide 19

Slide 19 text

TYPE-SAFE HTTP CLIENT MAKES APIS EASY SIMPLE ASYNC https://github.com/square/retrofit API: RETROFIT

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

https://github.com/greenrobot/EventBus ASYNC: EVENT BUS

Slide 22

Slide 22 text

SIMPLE API AES-GCM FAST https://github.com/facebook/conceal SECURITY: CONCEAL

Slide 23

Slide 23 text

ON-TOP OF SQLITE OBJECT BASED NO SQL SUPPORTS ENCRYPTION https://realm.io/news/realm-for-android/ DATA: RELAM

Slide 24

Slide 24 text

SIMPLE LOCATION API GEO FENCING GEO CODING ACTIVITY RECOGNITION https://github.com/mrmans0n/smart-location-lib LOCATION: SMART LOCATION LIB

Slide 25

Slide 25 text

compile 'com.google.android.gms:play-services:8.1.0' GOOGLE PLAY SERVICES Analytics and Ads GCM (push) Google Maps Cast Play Games services Wallet Android Wear Google Drive Fitness

Slide 26

Slide 26 text

T ANDROID-ARSENAL.COM

Slide 27

Slide 27 text

SAMPLE APPS

Slide 28

Slide 28 text

TEXT SAMPLE APPS ▸ github.com/google/iosched ▸ github.com/googlesamples/android-topeka ▸ github.com/nickbutcher/plaid ▸ github.com/chrisbanes/philm ▸ github.com/JakeWharton/u2020 ▸ github.com/grandstaish/hello-mvp-dagger-2 @scottyab

Slide 29

Slide 29 text

3RD PARTY SERVICES (MBAAS)

Slide 30

Slide 30 text

MBAAS??? WTF?

Slide 31

Slide 31 text

OWNED BY FACEBOOK PARSE.COM ▸ Data store ▸ Users ▸ Accounts ▸ Social auth (twitter/facebook) ▸ Cloud code / hosting ▸ Push notifications ▸ Analytics ▸ Multi platform (incl embedded C)

Slide 32

Slide 32 text

OWNED BY GOOGLE FIREBASE ▸ Realtime Database ▸ Authentication ▸ email & password, Facebook, Twitter, GitHub, Google, anonymous auth ▸ Hosting

Slide 33

Slide 33 text

TWITTER’S FABRIC PLATFORM

Slide 34

Slide 34 text

THE END?

Slide 35

Slide 35 text

TEXT RESOURCES ▸ Design inspiration http://www.materialup.com ▸ OWASP Mobile security risks http://bit.ly/owaspmobile ▸ Android security cookbook [my book] http://bit.ly/MscEFu ▸ The Busy Coder's Guide to Android Development https:// wares.commonsware.com/#scottyab (referral link) ▸ GCM network manager - https://developers.google.com/cloud-messaging/ network-manager @scottyab

Slide 36

Slide 36 text

QUESTIONS? THANKS meetup.com/swmobile github/scottyab @scottyab [email protected]