Introduction to Android Development
Brief bio:
I’m a senior technical consultant working at Innovapost with 7 years hands-on JEE experience. I designed and developed some big enterprise applications for home depot Canada and USA, and some other international logistic projects. My main focus is on developing enterprise RIA applications with light weight containers. Proficient with Spring related technologies, RESTful webservice design, dynamic languages such as, groovy, grails, actionscript, javascript, FLEX 2, 3 and 4. Android 1.5, 1.6, 2.x.
Project prerequisites:
Since Android is a programming model based on Java, so we assume students who come to the class should have basic understanding how Java works. How much Java knowledge do you need in order to take course? My answer on this would be: 1) Do you know Java syntax? 2) Do you know inheritance? 3) Do you know encapsulation in object oriented language? If you have C++ background, learning this course won’t be challenge to you. If you are a .net or PHP 5 developer, please feel at home when you take the course. If you are new comer to Java, as long as you know how to answer the 3 questions I asked, you should be alright to take the Android course.
Project description:
This Android course is designed to teach students how each core component works in Android, and how to realize an idea to actual design and code in Android. We will first introduce most of the Android components by explaining how and when to use them, and alternative way of achieving the same functionalities. For every component and concept we cover in class there will be a corresponding Android code for it. Students should be able to use it as a guide when prototyping their own applications or games. After finishing learning all the concepts and Android programming model, we will use a real world application from Android market to elaborate how we design it, and how we implement it, and how we release it. The most important of all is how we apply what we learn from class to it. The source code will be available amid the course. Depending on the progress of the overall class, we might add additional course materials to the class as student’s request. Course materials for the class are two application source code and instructors’ notes.
Schedule:
Chapter 1
· System setup (JDK, eclipse, Android eclipse plugin)
· Android platform introduction
· Android Project structures, conventions
· Intent, intent resolution and intent filter
· Permissions
Chapter 2
· Layout (construct layout in Java and XML)
· Layout parameters, sizing
· FrameLayout, LinearLayout, TabLayout and RelativeLayout
· Views (ListView, TabView, GridView and ScrollView)
· Common build-in Android controls
Chapter 3
· Resources
· L10N and I18N
· Animation, color state list resources,
· Drawables, dimentions, values, XML resoruces
Chapter 4
· Menus
· Activity and task lifecycle
· Maintaining application states
· Dialog windows
· Interactions with dialog windows
Chapter 5
· Preferences
· Use file system
· SQLite database
· Content provider
Chapter 6
· Use permissions
· Services
· Notifications
· Broadcast receivers
· Multimedia
· SMS
Additional materials may be added if the requests from students are overwhelming.