Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What I learned, learning Android

What I learned, learning Android

The talk I gave to the TO Android Dev group on March 27, 2017.

Avatar for Smriti Das

Smriti Das

March 28, 2017

Other Decks in Technology

Transcript

  1. Presentation Outline • How’d I get here? • Udacity Android

    Basics • The other MOOC’s • Final thoughts, tips and tricks
  2. Who am I? • Grad school for climate change •

    Tonnes of data to crunch: R • How to program: Python • Neither really made any sense…
  3. 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
  4. Presentation Outline • How’d I get here? • Udacity Android

    Basics • The other MOOC’s • Final thoughts, tips and tricks
  5. 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
  6. Five modules 1. UI Design 2. User Input 3. Multi-Screen

    Apps 4. Networking 5. Data Storage
  7. 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
  8. User Input • How to make an app interactive using

    Java • Build a coffee ordering app/ scoring app • Introduce OOP, debugging and logging
  9. 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
  10. Networking • Toy app: Quake report. Project app: News app

    • JSON, Networking, Android System Architecture, Threads
  11. Data Storage • Toy app: Pet Storage app. Project app:

    Inventory app • SQLite, Databases & Content Providers
  12. Udacity: The Good • Practice what they preach • Personal

    touch (welcoming, friendly, upbeat) • Vignettes with Android Devs from Google
  13. Udacity: The Bad • Problem: not enough Java or Computer

    Science to continue with Developer Nanodegree • Solution: take a proper course on both
  14. Udacity: The Bad • Problem: bit packed in places •

    Solution: watch video multiple times
  15. Udacity: The Bad • Problem: doesn’t cover everything* • Solution:

    augment with textbooks by doing their projects (1) new concepts (2) explain confusing topics
  16. Question #1 Question: Will this allow me to make highly

    polished apps? No. Udacity recommends going through the second set; Android Developer Nanodegree.
  17. Question #2 Question: I know Java/Development already, would I benefit

    taking the basics course? Depends on time and your level of comfort.
  18. Presentation Outline • How’d I get here? • Udacity Android

    Basics • The other MOOC’s (most to least favourite) • Final thoughts, tips and tricks
  19. 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…
  20. Treehouse • $25 USD per month • Similar set-up to

    Udacity • Solutions were unavailable
  21. Lynda • Free through the Toronto Public Library • Recently

    have been updating their offerings • Short to the point videos
  22. 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?
  23. Presentation Outline • How’d I get here? • Udacity Android

    Basics • The other MOOC’s • Final thoughts, tips and tricks
  24. Android can be hard • Remember why you sat down

    to learn the skill in the first place!
  25. Ask questions • A bit shy at first • One

    strategy for asking questions… • Reddit AndroidDev, LearnProgramming etc.
  26. Join the tribe • By attending meet-ups like this one!

    • Learn more on your own with Google IO, conferences, newsletters, podcasts etc.
  27. 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.
  28. 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.
  29. 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.