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/17/12 Wednesday 2-3:30, DH 1046 Agenda Events of the Week Using Storyboard to Size Images iOS 6 Questions on Assignment #6 SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 2 Events of the Week Softbank to Buy 70 Percent of Sprint for $20.1 Billion MIT puts mobile technology front and center in new research lab Apple to show off iPad Mini at Oct. 23 event, report says Galaxy S3 Mini: Samsung's big new move Appeals court nixes a Galaxy Nexus ban requested by Apple Google rolls out 'biggest update ever' for Street View Microsoft takes on Google directly in German patent lawsuit Apple licenses Swiss rail clock design PC Shipments to Fall for First Time in 11 Years – Forecast Lenovo Knocks HP from Top of Global PC Market: Gartner AMD: Third quarter unravels amid weak demand, excess inventory 10 Hottest Technical Skills for 2013 Apple Snags Chip Engineer From Rival Samsung SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 3 Current Roster Victor Acuna Ryan Artecona Gbenga Badipe Peter Chang Joan Chao SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 4 Current Roster (2) Alex Chiu Heaven Chen Lingo Dai Weibo He Sahil Hingorani SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 5 Current Roster (3) Abdul Nimeri Bill Robertson Frank Salinas Tyler Siegert Austin Witt Matthew Zhao SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 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/17/12 COMP 446 / ELEC 446 - Week 9 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/23 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/17/12 COMP 446 / ELEC 446 - Week 9 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/17/12 COMP 446 / ELEC 446 - Week 9 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/19 - FP Proposal 10/23 - Major Feature 11/2 - Individual Meetings 11/14 - Final Presentation 11/28 - Documentation due Finals Day SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 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/17/12 COMP 446 / ELEC 446 - Week 9 11 Some iOS Devices Available iPhone iPhone 3G iPhone 3GS AT&T iPhone 4 Verizon 4S may be available SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 12 Week 10 Watch Optional CS193p lectures #15 and #16 Assignment #6 due this Friday, 10/19 6:00 am Full final project spec with layout due BEFORE next class Make progress on CS193p Assignment #6 Try and complete before 10/17 class. Due Friday, 10/19 6:00 am Next week’s lecture – HTML 5, Windows Phone SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 13 What is coming up in the assignments? Assignment #6 – Core Data Flickr UIDocument Core Data Aspects outside of core data version of #5 optional You are on your own for assignment #6 SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 14 Image Scaling Large number of students still not properly sizing images. I am testing in both portrait and landscape. Let bounds auto scale to frame of parent, but check bounds as they may change with rotation Aspect ratio must be maintained Check aspect ratios to see which dimension dominates scaling. Scale up or down to make critical dimension just fit Make sure to set your scale factor for smooth changes. SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 15 Image Scaling – The Simple Way Let the storyboard do most of the work Layout detail view controller Top level view has UIToolbar and UIScrollView UIScrollView has UIImageView Set scroll view’s min and max zoom levels Set UIImageView’s mode to “Aspect Fit” Top level and scroll views set to “Scale to Fit” (default) Code in PhotoScrollViewController Let setPhoto handle all image loading activity In main queue portion of setPhoto add: self.photoScrollView.contentSize=image.size; self.photoScrollView.zoomScale = 1.0; SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 16 Demo SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 17 iOS 6 SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 18 iOS6 More of an external, feature upgrade than a significant update to existing code Many features help integrate with iCloud ands social media. And of course, there are the new maps Although the interface is compatible. SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 19 Maps Bring the power of the amazing new Maps engine into your app. With Map Kit, you can automatically take advantage of the beautiful Apple-designed cartography and vector-based interactivity. Users can also discover your routing apps right within Maps. So when users are looking for specific ways to get around, whether by subway, ferry, bike, or walking, Maps will show your app as an option. SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 20 Facebook Give users even more ways to connect and share by adding Facebook support to your app. With single signon capability, Facebook sheets, and the new Social framework, users can post status updates to their account seamlessly, and easily share photos with friends, right from your app. SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 21 Passbook Passbook gives users a whole new way to organize boarding passes, tickets, gift cards, and loyalty cards. You can bring up passes in your app with Pass Kit APIs or send them via email or post them on the web. You can set items to appear at certain times or locations and update items with push notifications. SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 22 Game Center Take fun to a whole new level with the latest features in Game Center. Make any game a multiplayer game by turning high scores and achievements into challenges with friends. With Game Groups, you can enable multiplayer games and share leaderboards and achievements across iOS and Mac versions of your app. And now it’s even easier to integrate Game Center features into a single view in your app. SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 23 Reminders Your app can now access and share to-do lists in the Reminders app. With the Event Kit framework, your app can create and modify reminders, assign properties like due dates and priorities, and even set location and timebased alarms. SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 24 Camera Use powerful new features of the built-in camera. New APIs support real-time video stabilization, an improved LED flash, and face detection and display. You can get reports of dropped frames during capture and leverage new utilities to map UI touches to focus and exposure commands. SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 25 In-App Purchase In-App Content Purchasing Enable users to purchase and download apps, music, books, and other iTunes content without ever leaving your app. In-App Hosted Content Host In-App Purchase content on Apple’s servers, so you can easily add, manage, and deliver In-App Purchase content for your app. SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 26 WebKit and Safari Safari continues to support the latest web standards and technologies. New features in Safari on iOS 6 let you create audio for interactive web applications using Web Audio API, use advanced color and pixel effects with CSS filters, and upload videos and images from the Photo Library. SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 27 Xcode 4.5 Features to help support the increased number of screen resolutions more easily. Auto Layout Enhancements to Segue Identifiers SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 28 Assignment #6 Questions SEC - 10/17/12 COMP 446 / ELEC 446 - Week 9 29