1 / 38

Wednesday 2-3:30, DH 1046

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 9/26/12. Agenda. Events of the Week

jaguar
Download Presentation

Wednesday 2-3:30, DH 1046

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 9/26/12

  2. Agenda • Events of the Week • Next week’s assignment and class • Review of Assignment 3 • Some more on UIScrollView, UITableView • Questions on Assignment #4 COMP 446 / ELEC 446 - Week 6

  3. Events of the Week • Apple sells over 5 million iPhone 5, supply constraints loom • iPhone 5 Sales Break Record -- And Disappoint • Apple's Maps app slammed over missing cities and other mistakes • Apple apparently fixes iOS 6 Wi-Fi bug • Apple supplier Foxconn: Production will resume tomorrow • Verizon gets back on board with Windows Phone • FCC to look at AT&T's FaceTime limits, says report • Android Phone Hacked via NFC • Behind the curtain at Google's Cirque du Soleil show • WalmartStops Selling Amazon Kindles • Bad Timing: BlackBerry Outage Hits RIM on iPhone 5 Day COMP 446 / ELEC 446 - Week 6

  4. COMP 446 / ELEC 446 - Week 6

  5. Current Roster • Victor Acuna • Ryan Artecona • Gbenga Badipe • Peter Chang • Joan Chao COMP 446 / ELEC 446 - Week 6

  6. Current Roster (2) • Alex Chiu • Heaven Chen • Lingo Dai • Weibo He • SahilHingorani COMP 446 / ELEC 446 - Week 6

  7. Current Roster (3) • Abdul Nimeri • Bill Robertson • Frank Salinas • Tyler Siegert • Austin Witt • Matthew Zhao COMP 446 / ELEC 446 - Week 6

  8. COMP 446 Syllabus • 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, 9/28 6:00 am (Thursday 30:00) COMP 446 / ELEC 446 - Week 6

  9. COMP 446 Syllabus • Lecture 6 - 9/26/12 - Assignment 4 issues and questions from videos • Watch before: 8, 9 very beginning of 10 • Assignment: #5 – Flickr Map Places • Assignment due: Friday, 10/5 6:00 am (Thursday 30:00) • Lecture 7 - 10/03/12 - Assignment 5 issues and questions from videos • Watch before: 10 (after Tab Bar), 11, 12 • Assignment: 1: #6 – Flickr Core Data - Likely 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/12 6:00 am (Thursday 30:00) • Lecture 8 - 10/10/12 - Assignment 6 issues and SQL • Watch before: 13, 14 • Assignment: Final Project Proposal • Assignment due: Tuesday, 10/16 6:00 am (Monday 30:00) • Lecture 9 - 10/17/12 - iOS6 • Watch before: Optional 15, 16 • Assignment: iOS 6 app • Assignment due: Friday, 10/26 6:00 am (Thursday 30:00) COMP 446 / ELEC 446 - Week 6

  10. COMP 446 Syllabus • Lecture 10 - 10/24/12 – HTML 5 • Watch before: Optional 17, 18 • Assignment: Major Final Project Feature • Assignment due: Friday, 11/2 6:00 am (Thursday 30:00) • Lecture 11 - 10/31/12 - TBD • 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 6

  11. Final Projects • Projects will be individual • An acceptable iPad project can couple to an iPhone project • Projects can be in iOS, Windows 8 or Android • You are responsible for Win 8 or Android technology • I have a small number of iOS devices that can be used by students without one. • May have to share • Likely have to deploy from a non-community Mac • Must utilize at least one major and one minor iOS framework and feature not covered in first 6 assignments; preferably >1 major. • Project must be pre-approved • Often because proposed project too difficult to complete • Sometimes need to be modified for content COMP 446 / ELEC 446 - Week 6

  12. Final Project Ideas • Augmented Reality is always a winner • There are some interesting robots utilizing the iPhone. • One could make a board game with iPhone players and iPad game board. • OpenGL is a good feature. • External universal frameworks are NOT allowed. • Utilizing a backend is good, but not much credit given for backend logic COMP 446 / ELEC 446 - Week 6

  13. Final Project Request • Rebecca Richards-Kortum Lab • Cell-phone based micro endoscope for the detection of cervical cancer • Android based • Project does not met COMP 446 Pedagogy • Can be external project if interested • Can be split into 2 parts with part 1 capable of being a COMP 446 project COMP 446 / ELEC 446 - Week 6

  14. Final Project Timeline 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 9/28 - #5 10/05 - FP Topic 10/10 - #6 10/12 - 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 6

  15. Week 7 • Watch CS193p lectures #10 (after Tab Bar), #11 and #12 • Make progress on CS193p Assignment #5 • Try and complete before 10/03 class. Due Friday, 10/05 6:00 am . • Submit assignments, review lectures at www.comp446.com • Start thinking about big project • Next week’s lecture – Maps, Blocks and Threads COMP 446 / ELEC 446 - Week 6

  16. 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 • Builds on Assignment #4 • Multi Threading / Grand Central Dispatch • MapKit • Assignment #6 – Core Data Flickr • UIDocument • Core Data COMP 446 / ELEC 446 - Week 6

  17. Assignment #3b Comments • No Retina support (iteration by pixel, not points) • Many issues with graph title, • Many toolbar issues with missing bar button items • Confusion with rotation. • Gesture issues with location, immediacy, sign, etc. • But these were not the biggest problem COMP 446 / ELEC 446 - Week 6

  18. Sloppy Assignment Submissions • Very incomplete testing. • Missed direct, specific aspects of the assignment. • Evidence of starting close to due date. • Evidence of not studying the videos. • Videos are your friend. Demos even friendlier! COMP 446 / ELEC 446 - Week 6

  19. 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 6

  20. Review of Vides 8-10 • 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 6

  21. New Classes • UIImage and UIImageView • UIWebView • UIScrollView • UITableView COMP 446 / ELEC 446 - Week 6

  22. UIImage • Easy to create • UIImage *image = [UIImageimageNamed”@foo.jpg”]; • Looks in your Resources folder for file named foo.jpg. • UIImage *image = [UIImageimageWithContentsOfFile:(NSString *)path]; • Path is a path to a file in your application sandbox • UIImage * image = [[UIImagealloc] initWithData: (NSData *)data]; • Creates and image out of a collection of data. • Data in points, not pixels • Shows up as same size on iPhone with or without retina • Does support high definition, retina images COMP 446 / ELEC 446 - Week 6

  23. UIImageView • Subclass of UIView used to display UIImages • Create in: • Storyboard or • UIImageView *imageView = [[UIImageViewalloc] initWithImage:(UIImage *)image]; • image is a property of UIImageView • @property (retain) UIImage *image; • Many other properties • Highlighted images (i.e. to show selection or press) • Animation (animates through an NSArray of images) • Calls to start, stop and time animations. COMP 446 / ELEC 446 - Week 6

  24. UIWebView • A complete internet browser inside a UIView • Based on Apple started WebKit HTML rendering • Will load HTML, PDF’s, mail and other complex documents • Supports light weight (time limited) JavaScript • Can load from web URL or file URL COMP 446 / ELEC 446 - Week 6

  25. UIScrollView • Handles images bigger than bounds of the UIScrollView • Built in gesture recognizers • Super class of UITextView and UITableView COMP 446 / ELEC 446 - Week 6

  26. UIScrollView COMP 446 / ELEC 446 - Week 6

  27. UIScrollView • Zooming based on affine transform of underlining UIView • scrollView.minimumZoomScale andscrollView.maximumZoomScale must be set • Required delegate method to specify view • -(UIView *)viewForZoomingInScrollView:(UIScrollView *)sender; • With one view, return sender.view • Programmatically use: • -(void)setZoomScale: animated: • -(void)zoomToRect: animated: COMP 446 / ELEC 446 - Week 6

  28. UITableView • The canonical class used for efficiently displaying tables of data. • Creates and reuses UITableViewCells • Delegates • UITableViewDataSource for data • UITableViewDelegate for display information • Both often part of UITableViewController COMP 446 / ELEC 446 - Week 6

  29. UITableView COMP 446 / ELEC 446 - Week 6

  30. UITableView COMP 446 / ELEC 446 - Week 6

  31. UITableViewDataSource • -(NSInteger)numberOfSectionsInTableView:(UITableView *)sender; • Optional method, defaulting to 1 • -(NSInteger)tableView:(UITableView *)sender numberOfRowsInSection:(NSInteger)section; • Required method • - (UITableViewCell *)tableView:(UITableView *) sender cellForRowAtIndexPath:(NSIndexPath *)indexPath; • NSIndexPath has two important properties, ip.section and ip.row. COMP 446 / ELEC 446 - Week 6

  32. UITableViewCell • Standard methods or fully customizable. • Built in properties • (readonly) UILabel *textLabel; • (readonly) UILabel *detailTextLabel; • (readonly) UIImageView *imageView; COMP 446 / ELEC 446 - Week 6

  33. UITableViewCell • - initWithStyle:(UITableViewCellStyle) style reuseIdentifier:(NSString *)reuseId; COMP 446 / ELEC 446 - Week 6

  34. UITableViewCellreuseIdentifier • Creation of TableViewCells is expensive • The desire is for effortless scrolling through hundreds or thousands of cells • Only cells which are actively being displayed need to be fully formed • Cells which go off the edge or not destroyed, but saved for reuse; keyed by reuseIdentifier • DataSource methods for changing content of established cells is very efficient COMP 446 / ELEC 446 - Week 6

  35. UITableViewCellAccessoryType • The disclosure indicator lets the user know that more information can be seen if the cell is clicked. • The Checkmark signifies selection and is managed by your program • The DetailDisclosureButton is a secondary launcher that brings up different details than just selecting the row. COMP 446 / ELEC 446 - Week 6

  36. UITableViewDelegate • Second protocol, often implemented in the same class as the UITableViewDataSource • Most used method: • - (void) tableView:(UITableView *) sender didSelectRowAtIndexPath:(NSIndexPath *)indexPath; • Typically pushes another view controller related to cell selected. • Also has methods for: • Controlling height • Reacting to lifecycle events for the cell • Custom header views and cell selection actions COMP 446 / ELEC 446 - Week 6

  37. Assignment 4 Tasks • Read the list of 11 required tasks. • Don’t forget to properly sort the lists • Don’t forget to limit the number of recent photos to 20 and that they are unique. • Properly show the requested cell title and subtitle • Show the table or navigation controller title • Initial view of a picture should be the largest that can completely fit. • Scrolling, pinching, rotating and state saving need to work. • Suggest starting with a universal app as iPad optional this assignment, but required for next. COMP 446 / ELEC 446 - Week 6

  38. Assignment #4 Questions COMP 446 / ELEC 446 - Week 6

More Related