Sample Curriculum 3x - Duke

wireanticipatedSoftware and s/w Development

Dec 14, 2013 (3 years and 6 months ago)

71 views

Sample Curriculum 3


Course Textbook:

Beginning iPhone Development: Exploring the iPhone SDK

*1 day = 1 class meeting

*1 week = 1 calendar week

*Assuming 108 style meetings (3 per week)

*I think Etch
-
a
-
Sketch can be done in less than three weeks. The
animation part should take about a
week, because it will take 2 days to cover all of it I think, and then the rest of the week to get the
animation part down. The accelerometer stuff should be easy enough to incorporate into the
assignment right after it’
s taught, but if they attempt the extra credit (using gestures to figure out
certain motions) I think it could take a little bit longer than 2 weeks, but perhaps that’s why it’s extra
credit.

I.

Introduction to IPhone Development (1
-
2 days)

a.

Getting Started (p
age 2) (day 1)

i.

Intel
-
based Mac running Leopard

ii.

IPhone SDK

iii.

IPhone or Ipod Touch (IPhone simulator)

b.

Objective
-
C (page 5) (day 1)

i.

Pick it up as you go along

ii.

Objective
-
C resources

c.

Limitations of the IPhone (page 6) (day 1)

i.

What you can and cannot do (as of OS
v2)

ii.

Important programming practices

d.

Setting u
p a project (page 11) (day
2)

i.

Tour of the development environment

ii.

Interface builder

iii.

Hello World

II.

Model View Controller

(10

days)

a.

Introduction to MVC (page 30) (day 1)

b.

Basic User Interaction (page 31) (day 1)

i.

Chapter Tutorial


buttons, labels, actions

ii.

When a user taps the button, the text label changes

iii.

Make sure to talk about properties/release/retain

c.

More User Interaction (page 53) (day 2)

i.

Chapter Tutorial


other UI items, modular design

ii.

Various other action
s for UI items, connecting outlets, more
exploration of interface builder and xcode

d.

Assignment 1


Temperature Conversion Assignment (1 week)

i.

Design an application that converts temperature between
celcius and farenheit.

ii.

Covers UI elements, actions, button
s.

e.

Multivie
w Applications (page 113) (day 3
)

i.

Chapter Tutorial


multiview controllers, switching between views

ii.

Builds the foundation for Navigation and Tab Bar controllers that we
will see later

f.

Tab B
ar (page 139) (day 4 and 5
)

i.

Chapter Tutorial


tab bar
controllers, image pickers, some
beginning data persistence

ii.

Involves pickers, delegates, data sources, setting up tab bar
application from scratch.

g.

Assignement 2


Extend Temperature Conversion Assignment (1
week)

i.

Use multiple tabs to add two other useful
conversions (miles
to kilometers, inches to centimeters, etc.)

ii.

Builds upon previous assignment by adding support for
multiple views

h.

Table Views (page 185)

(day 6 and 7
)

i.

Chapter Tutorial
1


simple tables, images, selection, customization

ii.

Introduce tables,
teach basic concepts such as row selection,
editing cell appearance

iii.

Chapter Tutorial 2
-


grouped and indexed, searching, copying

iv.

More table concepts such as creating indices and the ability to
search through a table

i.

Navigation Bar (pa
ge 231) (day 8 and 9
)

i.

Chapter Tutorial


navigation controllers, some more data
persistence, drill down menus, edit mode

ii.

Teaches the user about how navigation is implemented on a stack.
Builds on the previous chapter’s table view knowledge, as well as
introducing some more co
mplex topics.

j.

Special Topics (day 10
)

i.

Adding Navigation Bars to Tab Bars

ii.

Figuring out when tabs are switched

iii.

Custom Templates

iv.

Catch up

III.

Features Part I
(4 days)

a.

Assignment

2


Etch
-
a
-
Sketch Assignment (2

weeks)

i.

Can only paint in straight lines like an
etch
-
a
-
sketch

ii.

Shake to erase

iii.

Extra credit if your user interface includes knobs/looks like an
etch
-
a
-
sketch.

iv.

Covers Quartz animation, accelerometer user, and gestures

b.

Animation (page 361) (day 1 and day 2)

i.

Quartz Tutorial


make a simple paint program that

draws shapes
on the screen

ii.

OpenGL Tutorial


do the same thing using OpenGL

c.

Accelerometer (page 441) (day 3)

i.

Chapter Tutorial


shakes, tilts

ii.

First part detects shaking, second part simulates a ball rolling due
to accelerometer

d.

Taps, Touches, and Gestures

(page 401) (day 4)

i.

Chapter Tutorial


taps, multiple taps, swipes, pinches, custom
gestures

ii.

Several fairly simple tutorials that explore different ways the IPhone
can recognize user touch

IV.

The Development Process

(
2
-
3 days)

a.

Introduce
Final Project

i.

Make a
substantial application

ii.

Should include multiple views, and at least one of the
following: GPS, Camera, Accelerometer, Animation, Gestures,
any other cool features

iii.

Go through steps outline in development process

iv.

Publish application to app store


b.

Planning yo
ur application

(IPhone Human Interface Guidelines

page
13,36
) (day 1)

i.

Review IPhone limitations

ii.

Things to keep in mind (small screen, one application at a time,
etc.)

iii.

Choosing your application type

iv.

Metaphors, Direct Manipulation, See and Point, Feedback, U
ser
Control, Aesthetic Integrity

v.

Features of good IPhone applications (starts on page 36)

vi.

Common Tasks

1.

Starting, Stopping, Settings, Orientation Changes, Sound,
Choice

c.

Product Management (IPhone Human Interface Guidelines page 35) (day
2)

i.

Product
Definition Statement

ii.

Project Artifact (108/109 type things)

iii.

*What things can go here?

d.

Application testing

and debugging (IPhone Development Guide page 45)
(day 2)

i.

GDB/Breakpoints/Memory leaks

ii.

Where to get help (
Beginning IPhone Development
page 491)

e.

Application tuning

(IPhone Development Guide page 49) (day 2)

i.

Instruments

ii.

Shark

f.

Application publishing

(day 2 or 3)

i.

Getting an application on your IPhone

(IPhone Development Guide
page 35)

ii.

Testing on other peoples IPhones (IPhone Development Guide
page 52)

V.

Data Persistence

(3 days)

a.

Application Settings (page 303)

(day 1)

i.

Chapter Tutorial


settings bundle, property list

ii.

Reading and writing application settings/defaults

b.

File Management (page 329)

(day 2 and day 3)

i.

Property List Tutorial


using property
lists to store data

ii.

When/where we can use properylists, serializablility

iii.

Archiving Tutorial


writing custom objects to memory

iv.

When we need to create custom objects that we want to read in or
out of memory we can use Archiving

v.

SQLite3 Tutorial


using dat
abase

vi.

Won’t teach a lot of database stuff, but will just give simple
information to enable user to use it and know it exists.

VI.

Features

Part II (3

days)

a.

Autorotation and Autosize (page 89)

(day 1)

i.

Chapter Tutorial


demonstrate different ways autorotating/s
izing
works

ii.

Autosize vs. Multiple views (one view for each orientation)

b.

GPS (page 429) (day 2
)

i.

Chapter Tutorial


experimenting with GPS

ii.

Core Location API

c.

Camera (page 463) (day 3
)

i.

Chapter Tutorial


image pickers, camera, photo library

ii.

Learning to use the

Image Picker API

d.

Networking if I can figure it out (day 4)

i.

Downloading from HTTP server