7. 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
8. Presentation Outline
• How’d I get here?
• Udacity Android Basics
• The other MOOC’s
• Final thoughts, tips and tricks
10. 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
11. Five modules
1. UI Design
2. User Input
3. Multi-Screen Apps
4. Networking
5. Data Storage
12. 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
13. User Input
• How to make an app
interactive using Java
• Build a coffee ordering
app/scoring app
• Introduce OOP,
debugging and logging
14. 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
15. Networking
• Toy app: Quake report.
Project app: News app
• JSON, Networking,
Android System
Architecture, Threads
16. Data Storage
• Toy app: Pet Storage app.
Project app: Inventory app
• SQLite, Databases &
Content Providers
17. Udacity: The Good
• Practice what they preach
• Personal touch (welcoming, friendly, upbeat)
• Vignettes with Android Devs from Google
19. Udacity: The Bad
• Problem: not enough Java or Computer Science
to continue with Developer Nanodegree
• Solution: take a proper course on both
20. Udacity: The Bad
• Problem: bit packed in places
• Solution: watch video multiple times
21. Udacity: The Bad
• Problem: doesn’t cover everything*
• Solution: augment with textbooks by doing their
projects (1) new concepts (2) explain confusing
topics
22. Question #1
Question: Will this allow me to make highly
polished apps?
No. Udacity recommends going through the second
set; Android Developer Nanodegree.
23. Question #2
Question: I know Java/Development already, would
I benefit taking the basics course?
Depends on time and your level of comfort.
24. Presentation Outline
• How’d I get here?
• Udacity Android Basics
• The other MOOC’s (most to least favourite)
• Final thoughts, tips and tricks
25. 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…
26. Treehouse
• $25 USD per month
• Similar set-up to Udacity
• Solutions were
unavailable
27. Lynda
• Free through the Toronto Public Library
• Recently have been updating their offerings
• Short to the point videos
28. 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?
33. Android can be hard
• Remember why you sat down to learn the skill in
the first place!
34. Ask questions
• A bit shy at first
• One strategy for asking questions…
• Reddit AndroidDev, LearnProgramming etc.
35. Join the tribe
• By attending meet-ups like this one!
• Learn more on your own with Google IO,
conferences, newsletters, podcasts etc.
36. 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.
37. 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.
38. 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.