Transcript Lecture 7
COMP 446 / ELEC 446
Mobile Device Applications
Scott Cutler
Professor in the Practice of Computer Technology
Department of Computer Science
Department of Electrical and Computer Engineering
[email protected]
10/3/12
Wednesday 2-3:30, DH 1046
Agenda
Events of the Week
Next week’s assignment and class
Multi-thread, MapKit and Persistence Preview
Questions on Assignment #4
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
2
Events of the Week
Samsung Asks for New Trial in Apple Case
iOS 6 users continue to grapple with Wi-Fi problems
Apple rolls out fix for iPhone 5 Wi-Fi network data bug
Apple CEO: We are 'extremely sorry' for Maps flap
Intel Disputes Reported Otellini Comments About Windows 8
HP CEO Meg Whitman Shares Turnaround Plan
Judge puts Galaxy Tab back on market; Samsung sues over iPhone
AT&T nabs One X+, One VX, Windows Phone 8X from HTC
SSDs: mind-blowing Moore's law case studies
Data Is Data Right? The Truth About LTE vs. 3G
Samsung retains U.S. smartphone crown, Apple rapidly catching up
The smartphone battle has now moved from hardware to services
Nest 2.0: Slimmer, sleeker thermostat smarter than ever
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
3
Current Roster
Victor Acuna
Ryan Artecona
Gbenga Badipe
Peter Chang
Joan Chao
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
4
Current Roster (2)
Alex Chiu
Heaven Chen
Lingo Dai
Weibo He
Sahil Hingorani
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
5
Current Roster (3)
Abdul Nimeri
Bill Robertson
Frank Salinas
Tyler Siegert
Austin Witt
Matthew Zhao
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
6
COMP 446 Syllabus (updated)
Lecture 1 - 8/22/12 - Introduction
Lecture 2 - 8/29/12 - Assignment 1 issues and questions from videos
Watch before:
3, 4 (demo part)
Assignment:
#3 – Graphing Universal Calculator
Assignment due: Tuesday, 9/18 6:00 am (Monday 30:00)
Lecture 4 - 9/12/12 - Assignment 3 issues and questions from videos
Watch before:
1, 2
Assignment:
#2 – Function Calculator
Assignment due: Friday, 9/7 6:00 am (Thursday 30:00)
Lecture 3 - 9/05/12 - Assignment 2 issues and questions from videos
Watch before:
None
Assignment:
#1 - Calculator
Assignment due: Friday, 8/31 6:00 am (Thursday 30:00)
Watch before:
4 (post demo), 5, 6
Assignment:
Continue with #3 – Graphing Universal Calculator
Assignment due: Tuesday, 9/18 6:00 am (Monday 30:00)
Lecture 5 - 9/19/12 - Assignment 3 issues and questions from videos
Watch before:
Watch 7 before class, 8 after class
Assignment:
#4 – Flickr Top Places
Assignment due: Friday, 10/05 6:00 am (Thursday 30:00)
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
7
COMP 446 Syllabus (updated)
Lecture 6 - 9/26/12 - Assignment 4 technology preview
Watch before:
Assignment:
8, 9 very beginning of 10
1: #6 – Flickr Core Data
- To be broken into required and optional parts
- Optional part required for A+
2: Final Project Topic (due before next class)
Assignment due: Friday, 10/19 6:00 am (Thursday 30:00)
Lecture 8 - 10/10/12 - Assignment 6 technology preview and SQL
8, 9 very beginning of 10 (for Assignment 4)
#5 – Flickr Map Places
Tasks 3, 4 and 8 are optional for extra credit (required for A+)
Assignment due: Thursday, 10/11 6:00 am (Wednesday 30:00) (10/12 OK)
Lecture 7 - 10/03/12 - Assignment 5 technology preview
Watch by 10/3:
Assignment:
Watch for #5:
10 (after Tab Bar), 11, 12
Assignment:
Final Project Proposal
Assignment due: Tuesday, 10/16 6:00 am (Monday 30:00)
Lecture 9 - 10/17/12 - iOS 6, Server technology
Watch for #6:
13, 14
Assignment:
iOS 6 app
Assignment due: Friday, 10/26 6:00 am (Thursday 30:00)
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
8
COMP 446 Syllabus (updated)
Lecture 10 - 10/24/12 - HTML 5, Windows Phone
Lecture 11 - 10/31/12 – Android
Assignment:
Continue working on Final Project
Assignment due: Wednesday, 11/28 2:00pm
Lecture 14 - 11/21/12 – No class, but continue on final project
Assignment:
Continue working on Final Project
Assignment due: Wednesday, 11/28 2:00pm
Lecture 13 - 11/14/12 - Individual meetings on Final Project
Watch before:
Optional 17, 18
Assignment:
Continue working on Final Project
Assignment due: Wednesday, 11/28 2:00pm
Lecture 12 - 11/7/12- Android vs. iOS vs. Windows Phone group debate
Watch before:
Optional 15, 16
Assignment:
Major Final Project Feature
Assignment due: Friday, 11/2 6:00 am (Thursday 30:00)
Assignment:
Continue working on Final Project
Assignment due: Wednesday, 11/28 2:00pm
Lecture 15 - 11/28/12 - Final Presentations
Assignment:
Document Final Project
Assignment due: By time assigned for COMP 446 final (there is NO final exam)
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
9
Final Project Timeline New
9/19
9/26
10/03 10/10 10/17 10/24 10/31 11/7
11/14 11/21 11/28 12/5
- #4 10/05
- #5 10/12
- FP Topic 10/10
- #6 10/17
- FP Proposal 10/16
- Major Feature 11/2
- Individual Meetings 11/14
- Final Presentation 11/28
- Documentation due Finals Day
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
10
Deploying to Device
Read deployment information at developer.apple.com
4 Steps
Load intermediate certificate
Request development certificate
Send me device id to register
Use Xcode to deploy. It will use team provisioning
profile
If you have problems, we will have a deployment session
after class.
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
11
Week 8
Watch CS193p lectures #10 (after Tab Bar), #11 and #12
Email dialog to determine final project before next class
Make progress on CS193p Assignment #5
Try and complete before 10/10 class. Due Thursday, 10/11 6:00
am due to centennial, but Friday submission OK.
Next week’s lecture – Core Data Preview
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
12
What is coming up in the assignments?
Assignment #4 – Flickr Top Places
Tab bar controllers
TableView controllers
ScrollViews
Data from the internet
Assignment #5 – Fast Flickr Map
Multi Threading / Grand Central Dispatch
MapKit
Deployment and cache aspects optional (Tasks 3, 4 and 8)
Assignment #6 – Core Data Flickr
UIDocument
Core Data
Aspects outside of core data version of #5 optional
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
13
Review of Vides 10-12
Many of the slides to follow come directly
from the Fall 2011 Stanford CS193p slide
deck.
Some come from earlier versions of CS193p
which I think were a bit clearer than the
current deck
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
14
Video 10 – Grand Central Dispatch
UI should always be responsive
Put time consuming tasks in a separate queue
UI must run in main queue
GCD – another example of Apple making a difficult task
quite easy
Linear programming of multiple queues
Rich interface with many complexities
Most common scenario is quite simple
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
15
Blocks Simplified
A set of statements bracketed by { and } similar to a
method or if statement, Preceded by carat ^
^{
UIImage *image = [UIImage imageWithData:imageData];
self.imageView.image = image;
self.imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height);
self.scrollView.contentSize = image.size;
}
Method’s local variables stay in scope
For the most part, can be treated like an object (typedef)
NSArray methods for enumerating with blocks
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
16
Grand Central Dispatch
C API, more ()
Runs different queues in separate threads
Easy process
Create queue
Dispatch queue with block
Release queue
Must keep UI in main threat
Inside above queue, dispatch UI block within
separate block.
This is all you will need for Assignment #5
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
17
GCD Memory Management Issues
Avoid circular references to self as it will leak memory
_ _ weak MyClass *weakSelf = self;
Local variables declared in method before blocks still in
scope
Read only unless tagged with _ _ block
_ _ block BOOL stoppedEarly = NO;
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
18
Video 11 – Core Location / MapKit
Two major frameworks that often go together
Core Location and MapKit
MapKit is the heart of assignment #5
Not part of default linking, but very easy to add
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
19
Core Location
Basic object is CLLocation
@property
coordinate
altitude
horizontalAccuracy / verticalAccuracy
timestamp
speed
course
Highly abstracted from backend processing
Many automatic callbacks
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
20
MapKit
Base Element is MKMapView
Complete map in Class
Abstracts underlying technologies
Can be layered with other information
Rich set of annotations
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
21
MKAnnotation
Drop Pins and configurable callouts
Similar in many ways to UITableViewCell
Can use standard MKAnnotationViews or
embellish with custom views
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
22
Video 12 – Persistence
Multiple forms of persistence
Property Lists (such as NSUserDefaults)
Archiving Objects
Storing things in the file system
SQLite
Core Data
Core Data is at the heart of Assignment #6 and very
important
Conceptually difficult, but way simplified from previous years.
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
23
iOS File System
Each application has its own sandbox for protection
Actual binary along with shipped resources in
application bundle directory - which is read only
Copy prototype documents to documents directory
for modification
Cache directory for recreatable objects
Directory choice important for backup
Watch lecture (short) even if not doing extra credit
Core Data will use small part of this technology
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
24
Assignment #4 Questions
SEC - 10/3/12
COMP 446 / ELEC 446 - Week 7
25