Post on 06-Apr-2017
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?
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.”