CS193a Android Programming

CS193a teaches basic Android programming for an audience with moderate programming experience.

Lectures and Homeworks
  1. Introduction
  2. Intent, onClick, Animation
  3. Lifecycle, state save
  4. Lists, Preferences
  5. SQLite, Lists, Menus -- db/list homework
  6. How GUIs work, custom views
  7. Monkey View, Touch Gestures, Game Animation -- view homework
  8. Advanced View Techniques, Background Tasks
  9. Pixels, Running, Notifications -- last homework
  10. Market, .apk, Certs
  • Try our Baby Picture Fun app in the market: Baby Picture Fun
  • (see CourseWare site for hw turn-in instructions (you may need to sign in to see the instructions))

Recent news articles related to Android and the phone/tablet space (newest first)

  • Kindle Fire Released -- an android device from amazon. Not exactly like a regular device. Does not support the regular store. However, it's cheap ($200) as amazon figures to make the money back some other way. Cheap hardware in people's hands is neat. You need to tie it to a 1-click-shopping-enabled amazon account for the machine to work at all, so that's a bit creepy. I suspect this is sign of cheap/prolific android hardware of all sorts in the future.
  • Flash Canceled for Mobile -- shows how open platforms such as HTML5 and to a degree Android seem to be taking over. Think how annoying it would be if, as a developer, you had invested in lots of Flash programming, and then Adobe just canceled Flash out from under you. This is one way of understanding why Android is open source .. it makes it more safe/attractive to developers. They can build on it, but not be subject to weird decisions from google. More generally various forms of "open" platforms are taking over (HTML, Javascript, Python, ...). Building your software on someone else's proprietary platform is like building your very expensive building on someone else's land, trusting them to play nice in the future.
  • Ice Cream Sandwitch latest release, unifies phone/tablet OSs
  • $35 Android Tablet launched in India ... the sort of thing that happens if your platform is open source (we'll see if they can really hit that price)
  • Steve Jobs, Giant Episodes from career: (a) Jobs fosters the huge technical leap of the GUI Macintosh, but DOS beats it anyway -- Network Effect trumps product quality. (b) Jobs, with the iphone, forces the carriers away from their preferred charge-for-each-little-event paradigm. Having a less predatory attitude towards the users creates a better and more profitable ecosystem.
  • Amazon Fire - Android that Amazon can just do this is a defacto example that Android is open source. Strategy questions for later: why is Android open source vs. the closed iphone model? How does that impact developers? Cell carriers?
  • Texting SMS vs. TCP/IP

Lecture will go over the key ideas and examples for building Android programs, leading to a programming exercise on the same material. The exercises should not be too hard, just giving you chance to apply what you just saw. We will grade the exercises P/NC and indeed the course is graded P/NC. There was a snafu with the course in axess makes it appear that you can get a letter grade -- you cannot.

Topics -- here's a rough plan. We'll use a large, working code examples for a few weeks each to explore the related techniques.

Class is Wed 3:15-4:45 in 320-105 new room! (campus-map.stanford.edu .. sorry, they don't support linking to a result. This is a case where the webapp should use GET but they use POST)


Licensing: this material was created by Nick Parlante in 2011. This material is released into the public domain -- it is free to be re-used in any way.