You are on page 1of 23

Android App Programming

Agenda for Week

Today

General intro
Introduction to App Inventor
Various Demos and Hands-on Exercises
Lunch: Ms. Lynsey Dill

Rest of week

See end of slides

Why Smartphones?

Motivation: Teaching CS 1980s style

Typical example was text-based, trivial, and


uninspiring

Motivation: New and Exciting Contexts

Media Computation (Georgia Tech)

Robots

Programming in a more exciting context by


manipulating images and sounds
Lego NXT

2D/3D Animation Environments

Alice, Scratch, AgentSheets

Motivation: Newest Context

Teen cell phone adoption at 84%


March 3, 2011

Android marketshare (29%) passes Apple (27%)


Android sales soar 888%

Social networking and


crowd sourcing a daily
activity
Increasing adoption of
smartphones in science
and medical applications

Android Overview

Brief History

2005

2007

Google acquires startup Android Inc. to start Android


platform
Work on Dalvik VM begins
Open Handset Alliance announced
Early look at SDK

2008

Google sponsors 1st Android Developer Challenge


T-Mobile G1 announced
SDK 1.0 released
Android released open source (Apache License)
Android Dev Phone 1 released

Brief History cont.

2009

SDK 1.5 (Cupcake)

SDK 1.6 (Donut)


SDK 2.0/2.0.1/2.1 (Eclair)

Gartner Inc. predicts 14% in 2012

2010

Nexus One released to the public


SDK 2.2 (Froyo)

wifi tethering, Flash

SDK 2.3 (Gingerbread)

Exchange support; refine UI

Android runs on 3.5% of all smartphones

new soft keyboard with an "Autocomplete" feature

refine UI; improve keyboard copy/paste

Q4 Android passes Symbia as best-selling smartphone platform

2011

SDK 3.0 (Honeycomb)

Table only release; Motorola Xoom in 2 weeks

Ice-cream Sandwich (mid-2011)

Android Facts

From Wikipedia

Modified version of Linux kernel


Android is composed of 12 millions lines of code

3M SLOCs pertaining to XML


2.8M SLOCS in C
2.1M SLOCS in Java
1.75M SLOCS in C++

Linux kernel tensions


Oracle lawsuit

Android Developer Challenge

http://code.google.com/android/adc/
2008:

10 teams received $275k


10 teams received $100k
Each of top 50 finalists received $25k

2009

10 first prizes at $100k


10 2nd prizes at $50k
10 3rd prizes at 25k
Overall: 1st-$250k, 2nd- $50k, 3rd- $25k

Open Handset Alliance

Established November 2007


Competes against Microsoft, Apple, Nokia
(Symbia), Palm, RIM, and Samsung (Bada)
Composed of 79 software and hardware
companies
URLs:

http://www.openhandsetalliance.com/
http://en.wikipedia.org/wiki/Open_Handset_Alliance

Key Differences: Android vs. iPhone

iPhone
OS is proprietary
OS runs on iPhone or
iPod Touches only
Apps written in ObjectiveC
Apple must approve all
apps Application Store
Some apps are more
important than others
(Safari is your browser)

Android
OS is open source
OS can be licensed for
any mobile device
Apps written in Java
No approval process for
apps Android Market
All apps considered equal
(choose your browser)

What is Google Android?

A software stack for mobile devices that includes

An operating system
Middleware
Key Applications

Uses Linux to provide core system services

Security
Memory management
Process management
Power management
Hardware drivers

App Inventor Overview

App Inventor Overview

URL: http://appinventor.googlelabs.com
Purpose

Teaching
Prototyping

Components of App Inventor

Designer

GUI builder

Block Editor

Provide behavior behind the GUI


Based on MIT OpenBlocks and Scratch

App Inventor Overview

Installing and Running

http://appinventor.googlelabs.com/learn/setup
/index.html#setupComputer

App Inventor environment loads in a web


browser

Requires Java 1.6


Install App Inventor setup

Login using Google account

Run from a phone or the Android emulator


Stores programs in the cloud

Designer

Provides a WYSIWYG editor for designing the


visual parts of the app
Also provides ability to attach non-visual
components

Blocks Editor

Provides an ability to give


behavior to an app; the
programming part
Typical and expected basic
predefined constructs (logic,
conditionals, iteration)
Ability to refer to the
components and their
properties from the Designer
Very similar to Scratch

Built on Open Blocks library


from MIT

Limitations

File I/O
Custom objects
Printing your code!
Reliability

Examples

Many tutorials available:

Standard Google Kitty app (embarrassing!)

Developed by Dave Wolber (Univ. San Francisco)


http://appinventor.googlelabs.com/learn/tutorials/index.html

http://appinventor.googlelabs.com/learn/setup/hellopurr/hellopurr
emulatorpart1.html

Other Examples

Wheres My Car, No Text While Driving

Schedule

Thursday

Project implementation
Late Afternoon: CS AP GridWorld

Mr. Martin and Mrs. Woessner

Friday

Project wrap-up and final presentations


Lunch
Say good-byes

You might also like