MAP524/DPS924 Lecture 1

From CDOT Wiki
Revision as of 22:32, 10 January 2016 by Andrew (talk | contribs) (Versions)
Jump to: navigation, search

Welcome to the course! Android programming is a complex topic with so much material that changes so often that the learning never ends. But in this course you'll learn enough to start you on your way to becoming an expert if that's your plan, or just enough to be able to create an application if that's all you need.

Your professor this semester is Andrew Smith.

Course Overview

  • Course outline is here.
  • The course is a 50/50 split of lectures and labs. One lab isn't worth much but it's critical that you do all the labs, and do them on time. Not only will that get you 20% of your final grade but it's a sure way to make sure that you'll do well on the test, assignments, and the final exam.
  • I will do my best to make sure this course isn't about your ability to memorize stuff, but rather it's about building real applications in a realistic way. That means you'll be able to bring your labbook (and a textbook if you have one) with you to the test and exam.
  • Speaking of textbooks - one is not required for this course. All the material you'll need is available for free on the web. I'll collect links to material and tutorials I think are most relevant for each week into the notes for that week.

Professor's policies

  • The best way to contact me is via email. Most questions can be answered that way and I'm reasonably good at replying to reasonable emails. If the question is too complex for email - we can work on your prolem in the lab or you can come see me during office hours.
  • Plagiarism will not be tolerated.
    • You may use online resources to learn, including code examples from documentation and from forums, but all the code you use must have attribution, for example:
      • // Code copied from: http://bla.bla.bla/bla
      • // Inspiration from: http://bla.bla.bla/bla
      • <!-- Code in this XML file from a combination of sources: 
        http://bla.bla.bla/bla1
        http://bla.bla.bla/bla2
        http://bla.bla.bla/bla3 -->
    • Any code you submit that wasn't written by you or generated by the development tools must have correct attribution. If it doesn't - you'll end up with plagiarism on your record.
    • Working with your classmates
  • Late work will be penalized as specified in the assignment/lab.

Assignment expectations

Other than the notes on plagiarism above (use whatever online resources you find but always provide attribution) you should also:

  • Follow the instructions for naming files and projects.
  • Submit assignments on Blackboard.
  • Labs need to be checked by me in person, I will sign your labbook if it looks good.
  • Don't email me files over a megabyte in size. In fact if you're using Seneca email don't bother trying to send attachments at all - use storage on matrix if you need a way to send me an assignemnt other than the final submission on Blackboard.

Android History

  • Android Inc. founded in 2003
  • Google acquired Android in 2005
  • Open Handset Alliance formed in 2007
  • First Android smartphone was HTC Dream in 2008 (vs first iPhone in 2007)
  • Nexus series launched in 2010

Versions


API
Version
Name
Date
1
1.0
APPLE PIE
Oct 2008
2
1.1
BANANA BREAD
Feb 2009
3
1.5
CUPCAKE
May 2009
4
1.6
DONUT
Sep 2009
5
2.0
ECLAIR
Nov 2009
6
2.0.1
ECLAIR
Dec 2009
7
2.1
ECLAIR
Jan 2010
8
2.2
FROYO
May 2010
9
2.3
GINGERBREAD
Dec 2010
10
2.3.3
GINGERBREAD
Feb 2011
10
2.3.4
GINGERBREAD
May 2011
11
3.0
HONEYCOMB - Tablet Only Features
Feb 2011
12
3.1
HONEYCOMB
May 2011
13
3.2
HONEYCOMB
July 2011
14
4.0
ICE CREAM SANDWICH - Combined Phone and Tablet Features
Oct 2011
15
4.0.3
ICE CREAM SANDWICH
Dec 2011
16
4.1
JELLY BEAN
July 2012
17
4.2
JELLY BEAN
Nov 2012
18
4.3
SWEETER JELLY BEAN
July 2013
19
4.4
KITKAT
Oct 2013
20
4.4
KITKAT with Wearable Extensions
July 2014
21
5.0
LOLLIPOP
Oct 2014
22
5.1
LOLLIPOP
Mar 2015
23
6.0
MARSHMALLOW
Oct 2015
23
6.0.1
MARSHMALLOW
Dec 2015

Architecture

System-architecture.jpg

Devices

  • Phones
  • Tablets
  • e-Readers
  • Netbooks
  • Audio players
  • Internet TV
  • Wearables
  • watches
  • Glasses
  • Cars
  • Game consoles

Applications Stores

Alternatives to Google's Android

Android Market Share

Current data

Our Development Environment

The primary Android application devlopment tools can be set up on any operating system, you are free to use whatever operating system you like, but I'll recommend using the ICT USB Stick or having your own Linux installation on your own laptop.

That will give you a consistent development environment that will be troule-free, especially compared to using our lab windows images.

If you choose to host your work on Windows or OSX I'll do my best to help when problems happen but it may take longer to figure out what's wrong.

'Before the lab this week' make sure that you purchase a 32GB USB3 memory stick and install the image on it. Desktops in our lab doesn't have internal harddrives so you'll need to do that in the open lab or on a laptop or at home.