250 likes | 404 Views
Wednesday 2-3:30, DH 1046. 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 cutler@rice.edu 10/3/12. Agenda. Events of the Week
E N D
Wednesday 2-3:30, DH 1046 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 cutler@rice.edu 10/3/12
Agenda • Events of the Week • Next week’s assignment and class • Multi-thread, MapKitand Persistence Preview • Questions on Assignment #4 COMP 446 / ELEC 446 - Week 7
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 COMP 446 / ELEC 446 - Week 7
Current Roster • Victor Acuna • Ryan Artecona • Gbenga Badipe • Peter Chang • Joan Chao COMP 446 / ELEC 446 - Week 7
Current Roster (2) • Alex Chiu • Heaven Chen • Lingo Dai • Weibo He • SahilHingorani COMP 446 / ELEC 446 - Week 7
Current Roster (3) • Abdul Nimeri • Bill Robertson • Frank Salinas • Tyler Siegert • Austin Witt • Matthew Zhao COMP 446 / ELEC 446 - Week 7
COMP 446 Syllabus (updated) • Lecture 1 - 8/22/12 - Introduction • Watch before: None • Assignment: #1 - Calculator • Assignment due: Friday, 8/31 6:00 am (Thursday 30:00) • Lecture 2 - 8/29/12 - Assignment 1 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: 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: 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) COMP 446 / ELEC 446 - Week 7
COMP 446 Syllabus (updated) • Lecture 6 - 9/26/12 - Assignment 4 technology preview • Watch by 10/3: 8, 9 very beginning of 10 (for Assignment 4) • Assignment: #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 before: 8, 9 very beginning of 10 • Assignment: 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 • 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 - iOS6, Server technology • Watch for #6: 13, 14 • Assignment: iOS 6 app • Assignment due: Friday, 10/26 6:00 am (Thursday 30:00) COMP 446 / ELEC 446 - Week 7
COMP 446 Syllabus (updated) • Lecture 10 - 10/24/12 - HTML 5, Windows Phone • Watch before: Optional 15, 16 • Assignment: Major Final Project Feature • Assignment due: Friday, 11/2 6:00 am (Thursday 30:00) • Lecture 11 - 10/31/12 – Android • 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 • Assignment: Continue working on Final Project • Assignment due: Wednesday, 11/28 2:00pm • Lecture 13 - 11/14/12 - Individual meetings on Final Project • 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 15 - 11/28/12 - Final Presentations • Assignment: Document Final Project • Assignment due: By time assigned for COMP 446 final (there is NO final exam) COMP 446 / ELEC 446 - Week 7
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 COMP 446 / ELEC 446 - Week 7
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. COMP 446 / ELEC 446 - Week 7
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 COMP 446 / ELEC 446 - Week 7
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 COMP 446 / ELEC 446 - Week 7
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 COMP 446 / ELEC 446 - Week 7
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 COMP 446 / ELEC 446 - Week 7
Blocks Simplified • A set of statements bracketed by { and } similar to a method or if statement, Preceded by carat ^ ^{UIImage*image = [UIImageimageWithData: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 COMP 446 / ELEC 446 - Week 7
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 COMP 446 / ELEC 446 - Week 7
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; COMP 446 / ELEC 446 - Week 7
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 COMP 446 / ELEC 446 - Week 7
Core Location • Basic object is CLLocation • @property • coordinate • altitude • horizontalAccuracy / verticalAccuracy • timestamp • speed • course • Highly abstracted from backend processing • Many automatic callbacks COMP 446 / ELEC 446 - Week 7
MapKit • Base Element is MKMapView • Complete map in Class • Abstracts underlying technologies • Can be layered with other information • Rich set of annotations COMP 446 / ELEC 446 - Week 7
MKAnnotation • Drop Pins and configurable callouts • Similar in many ways to UITableViewCell • Can use standard MKAnnotationViews or embellish with custom views COMP 446 / ELEC 446 - Week 7
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. COMP 446 / ELEC 446 - Week 7
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 COMP 446 / ELEC 446 - Week 7
Assignment #4 Questions COMP 446 / ELEC 446 - Week 7