Beginner android

Post on 06-Apr-2017

23 views 0 download

Transcript of Beginner android

What I learned, learning Android

Smriti DasToronto Android DevelopersMarch 27th 2017

Presentation Outline• How’d I get here?• Udacity Android Basics• The other MOOC’s• Final thoughts, tips and tricks

Who am I?• Grad school for climate change• Tonnes of data to crunch: R • How to program: Python• Neither really made any sense…

Hacker Rank• 30 day learn to

code challenge• Java

• Verbose, many moving parts but it struck a chord

Maybe I should learn Android???

LMGTFY• Holy learning resources Batman! • After investigating I noticed two things (1)

quality control (2) communication • Decided to stick to the MOOCs• At present, not much in person training in

Toronto

Presentation Outline• How’d I get here?• Udacity Android Basics• The other MOOC’s• Final thoughts, tips and tricks

Udacity

Launched June 2016

How does it work?• $200 USD per month or free to audit*• Paying includes assignment feedback,

access to discussion forum and additional projects

• Assumes no prior background in programming (Computer Science, Java, SQL)

• Comprised of five modules that you take sequentially

Five modules1. UI Design

2. User Input

3. Multi-Screen Apps

4. Networking

5. Data Storage

UI Design• All courses are designed with a toy app

(build with them) and a project app (build on your own)

• This module is heavy on XML (viewgroups, linear vs relative layout)

• Introduce Android Studio, emulator/phone, official documentation

• Culiminates: one screen Birthday Card app

User Input • How to make an

app interactive using Java

• Build a coffee ordering app/scoring app

• Introduce OOP, debugging and logging

Multi-Screen Apps• Toy app: a translation app for the Miwok

language• Project app: tour guide• Introduce the Android Manifest, intents,

event listeners, view recycling and the activity lifecycle

• Optional lesson on fragments

Networking

• Toy app: Quake report. Project app: News app

• JSON, Networking, Android System Architecture, Threads

Data Storage

• Toy app: Pet Storage app. Project app: Inventory app

• SQLite, Databases & Content Providers

Udacity: The Good

• Practice what they preach• Personal touch (welcoming, friendly,

upbeat)• Vignettes with Android Devs from Google

Udacity: The Good

• Practical solutions for when you get stuck• Github!

Udacity: The Bad

• Problem: not enough Java or Computer Science to continue with Developer Nanodegree

• Solution: take a proper course on both

Udacity: The Bad

• Problem: bit packed in places • Solution: watch video multiple times

Udacity: The Bad

• Problem: doesn’t cover everything* • Solution: augment with textbooks by doing

their projects (1) new concepts (2) explain confusing topics

Question #1

Question: Will this allow me to make highly polished apps?

No. Udacity recommends going through the second set; Android Developer Nanodegree.

Question #2

Question: I know Java/Development already, would I benefit taking the basics course?

Depends on time and your level of comfort.

Presentation Outline• How’d I get here?• Udacity Android Basics• The other MOOC’s (most to least favourite)• Final thoughts, tips and tricks

Coursera• Recently offered by Vanderbilt University• Free to audit, have to pay to access

discussion forum etc. • Covers fewer topics, however, does a

better job• Better job explaining unit test, Android

activity lifecycle, Android system architecture…

Treehouse

• $25 USD per month• Similar set-up to

Udacity• Solutions were

unavailable

Lynda

• Free through the Toronto Public Library• Recently have been updating their

offerings• Short to the point videos

Udemy• Quality varies substantially (as does the

cost)• Rob Percival• Much of it out of date• Confusing code for a beginner• Other instructors might be worth

investigating?

To be continued…

• Pluralsight• caster.io • other newer offerings

Presentation Outline• How’d I get here?• Udacity Android Basics• The other MOOC’s• Final thoughts, tips and tricks

Patience

• With learning concepts, debugging, Gradle etc.

• With yourself!

Confidence is key

Android can be hard

• Remember why you sat down to learn the skill in the first place!

Ask questions

• A bit shy at first• One strategy for asking questions… • Reddit AndroidDev, LearnProgramming etc.

Join the tribe

• By attending meet-ups like this one!• Learn more on your own with Google IO,

conferences, newsletters, podcasts etc.

Tips from a Sr Dev #1

Android is not a platform where Google's framework is sufficient. Building an entire app using only the libraries provided by Google will make your life very difficult. Learn all the fundamentals, but also figure out which libraries are popular, since they'll probably be useful to you.

Tips from a Sr Dev #2

If you want to learn a lot very quickly, build a side project and publish it to Google Play. Make it easy for your users to give you direct feedback by email. It’s the best way to figure out how your app does on different devices, in different languages, in different environments.

Lots of apps perform well on the latest devices running on WIFI, but are unbearable on a 3G connection on a 3 year old phone.

Tips from a Sr Dev # 3

Include crash reporting in your apps, like Crashalytics or HockeyApp. Seeing where your app fails is the best way to get direct feedback on your code, and to quickly fix bugs.

–David J. Malan

“Definitely difficult. Definitely doable.”

Get in touch

Twitter: @evildas

Slack: @smriti

Email: dassmrit@gmail.com