410 likes | 534 Views
Wednesday 2-4, KH 105. COMP 446 / ELEC 446 Mobile Wireless Services Project. Scott Cutler Professor in the Practice of Computer Technology Department of Computer Science Department of Electrical and Computer Engineering cutler@rice.edu 9/22/10. Today’s Agenda. Events of the week
E N D
Wednesday 2-4, KH 105 COMP 446 / ELEC 446 Mobile Wireless Services Project Scott Cutler Professor in the Practice of Computer Technology Department of Computer Science Department of Electrical and Computer Engineering cutler@rice.edu 9/22/10
Today’s Agenda • Events of the week • Announcements / Infrastructure Updates • Last Week’s assignments • Website 101 • Next Week • Paparazzi due by 9/28/2010 COMP 446 / ELEC 446 - Week 5
Events of the Week • Windows Phone 7 will be GSM-only in 2010 • Halo: Reach tallies $200 million on launch day • HDCP antipiracy leak opens doors for black boxes • Major carriers pick up the Tab • Google's Out, Bing's In on Verizon's Samsung Fascinate • Amazon Kindle Ad Taunts Apple iPad • Google Maps Gets Walking Navigation on Android Phones • iPad Cannibalizing Notebook Sales, Best Buy CEO Says • Intel Plans for 22-nm 'Ivy Bridge,' 15-nm Atom Chips • Microsoft's Windows Phone 7 Developer Tools Are Final • Apple Approves Google Voice App for iPhone App Store • Apple's iPhone Keeps AT&T 4G Migration on Hold • Microsoft Releases Advisory for ASP.NET Vulnerability COMP 446 / ELEC 446 - Week 5
Current Roster • Julia Botev • COMP, SR, McMurtryJulia.K.Botev@rice.edu • Eric Cheng • COMP, GR eric.cheng@rice.edu • Jesus Cortez • COMP, JR, Jones JesusCortez@rice.edu • Graham De Wit • ELEC, SR, Wiessgraham.dewit@rice.edu • Ashley Herron • ELEC, SR, Martel Ashley.N.Herron@rice.edu • Tara Hong • ELEC, SR, Will Rice Seoyeon.Hong@rice.edu • Vic Hu • ELEC, SR, Wiessmrwho@rice.edu • Marcos Hung • BIOE, GR Marcos.G.Hung@rice.edu COMP 446 / ELEC 446 - Week 5
Current Roster (2) • Jin Kim • COMP, GR Kyujin.Kim@rice.edu • Kevin Lin • COMP, SO, McMurtryKevin.S.Lin@rice.edu • Robyn Moscowitz • COMP, JR, McMurtryRobyn.A.Moscowitz@rice.edu • Norman Pai • ELEC, SR, HanszenNorman.L.Pai@rice.edu • Josh Rykowski • COMP, GR Joshua.Rykowski@rice.edu • Ivan Van • COMP, SR, Will Rice, i.van@rice.edu • Jeff Yeh • ELEC, SR, Hanszenjeff.yeh@rice.edu • Aron Yu • ELEC, SR, HanszenAron.Yu@rice.edu COMP 446 / ELEC 446 - Week 5
Current Roster (3) • Michael Lo • ELEC, GR mlo@rice.edu • Elliot Ng • ELEC, GR elliottng@rice.edu • Rick Manning • COMP, SR, Jones rick.manning@rice.edu • Henry Zhang • ELEC, SR, Jones qz1@rice.edu • Jason Xu • ELEC, SR, Brown jax1@rice.edu • Catherine Elder • ELEC, SR, Hanszencje1@rice.edu COMP 446 / ELEC 446 - Week 5
Current Roster (4) • Sid Byrd • Staff sidb@rice.edu • Xiang ‘Jash’ Guo • ELEC, GR xg1@rice.edu • Wenyang Wu • CS, GR ww7@rice.edu • ZheRen • CS, GR zr2@rice.edu COMP 446 / ELEC 446 - Week 5
COMP 446 Syllabus • 8/25/10 Introduction / What makes mobile apps special • Assignment: Load Visual Studio – Due 8/30/10, Access a Mac, Download CS193P materials • 9/1/10 Intro to Mac OS X and Cocoa Touch, Objective-C, Dev Tools, Using Objective-C, Foundation framework • Videos: Lecture 1. Introduction to Mac OS X, Cocoa Touch, Objective-C and Tools (January 5, 2010) Lecture 2. Objective-C and Foundation Framework (January 7, 2010) • Assignment: Hello Rice [1a] and WhatATool 1 [1b] (Due 9/7/10) • 9/8/10 Discussion of first applications • Videos: Lecture 3. Custom Classes, Object Lifecycle, Autorelease, Objective-C Properties (January 12, 2010)Lecture 4. Building an Application; Model, View, Controller; Nib Files; Controls and Target-Action (January 14, 2010) Lecture 4a Xcode, Finding Help, Debugging (January 15, 2010) • Assignment: WhatATool 2 [2a] and HelloPoly I [2b] (Due 9/14/10) • 9/15/10 ASP.Net with a little HTML • Videos: Lecture 5. Views, Drawing, and Animation (January 19, 2010) Lecture 6. Designing iPhone Applications, Model-View-Controller, View Controllers (January 21, 2010) • Assignment: HelloPoly II [3] (Due 9/21/10) • 9/22/10 iPhone (pseudo) Web Apps / Browser Capabilities • Videos: Lecture 7. Navigation & Tab Bar Controllers (January 26, 2010) Lecture 8. Scroll Views and Table Views (January 28, 2010) • Assignment: Paparazzi 1 (Due 9/28/10) • 9/29/10 Creating and Consuming Web Services • Videos: Lecture 9. Data in Your iPhone App (February 2, 2010)- Lecture 10. Performance (February 4, 2010) • Assignment: Paparazzi 2 (Due 10/05/10) (note that Paparazzi will not be considered late until 10/12/10; You have 3 weeks to complete Paparazzi 2 and 3 but I need to have first submission of Paparazzi 2 by 10/05/10) • 10/6/10 SQL 101 • Videos: Lecture 11. Text Input and Presenting Content Modally (February 9, 2010) Lecture 12. Web Views; Locations and Maps (February 11, 2010) • Assignment: Paparazzi 3 (Due 10/19/10, but watch lectures prior to 10/13/10 class) COMP 446 / ELEC 446 - Week 5
COMP 446 Syllabus • 10/13/10iPad Development / iOS 4 • Videos:Lecture 13. Address Book: Putting People in Your App (February 16, 2010) Lecture 14. Touch Events & Multi-touch (February 18, 2010)Lecture 12a: Designing for the iPad (February 12, 2010)Assignment: Final Project Proposal (Due 10/19/10 along with Paparazzi 3) • 10/20/10 Android 1 • Videos: Lecture 15. iPhone Device APIs; Location, Accelerometer & Camera; Battery Life & Power Management (February 23, 2010) Lecture 16. Audio APIs, Video Playback, Settings (February 25, 2010) • Assignment: Final Project, Stage 1 (Due 10/26/10) • 10/27/10 Android 2 • Videos: Lecture 17. Bonjour, NSStream, GameKit (March 2, 2010) Lecture 18. Unit Testing; Fun with Objective-C; Localization (March 4, 2010) • Assignment: Advanced Feature App or iPad Application (Due 11/02/10) • 11/3/10 Windows Phone 7, Final Project Prep • Videos: Lecture 19. OpenGL ES Basics (March 9, 2010)Lecture 20. From Student to Startup: Lessons from a CS193P Alumnus (March 11, 2010) • Assignment: Final Project, Stage 2 (Due 11/09/2010) • 11/10/10 iPhone v. Android v. Windows Phone 7 group discussion • Videos: Yelp Monocle (February 6, 2010) Evernote(February 19, 2010) Bump (February 26, 2010) • Assignment: Final Project, Stage 3 (Due 11/16/2010) • 11/17/10 Final Project Prep • Videos: Publishing on the App Store (March 5, 2010) LinkedIn: Important Life Lessons on CoreData & GameKit (March 12, 2010) • Assignment: Final Project (Due 12/01/2010) • 11/24/10 Thanksgiving – Continue Final Projects on your own • 12/1/10 Demonstrate Final Projects • 12/5/10 Class Offsite – Sunday (tentative) COMP 446 / ELEC 446 - Week 5
Final Project Platform • Final Project is primary course output and majority influence on course grade. • Your choice of platform • iOS (iPhone, iPad, iPod Touch) • Android • Windows Phone 7 (WP7) • Mostly on your own regarding Android or WP7 • Encouraged to work in pairs. COMP 446 / ELEC 446 - Week 5
Available Hardware • 3 iPhones – original, 3G, 3Gs • Wi-Fi or AT&T • 4 Motorola Droids • Wi-Fi or Verizon • 1 Google Nexus One • Wi-Fi, T-Mobile 3G or AT&T EDGE COMP 446 / ELEC 446 - Week 5
Special for Android Students • Obtain Reto Meier’s Professional Android 2 Application Development Book ($34.19 from Amazon) • (ISBN-13: 978-0470565520) • You are encouraged to complete iOS through Paparazzi 3; however • You may replace Paparazzi 2 with Android Hello world app by fully installing environment and initial project from Chapter 2 • You may replace Paparazzi 3 with Android application (see me for details it will be from Chapters 3 - 7) • Replace Advanced feature app with Android Advanced Feature App (from Chapters 8 – 15). COMP 446 / ELEC 446 - Week 5
Submitting Assignments • Please delete your build directory before submitting. • It makes a 2MB file closer to 100KB or less. • Programs with errors or warnings will be sent back without comments unless you explicitly let me know you are having issues you can not fix. COMP 446 / ELEC 446 - Week 5
Last Week’s Videos • Views and Subviews • Can create complex Subviews that can be added, removed or moved on a hierarchical layer structure. • Superviews retain their subviews • Views can be hidden • CGPoints and CGRects • Frames and Bounds • Frame is in superview’scoordinate system (when using a view) • Bounds is in local coordinate system (when implementing a view) COMP 446 / ELEC 446 - Week 5
-(void)drawRect:(CGRect)rect • Override – drawRect: to draw a custom view • Be Lazy • Use –(void)setNeedsDisplay; to invoke drawRect, don’t call it directly. • Will see this again with Table Views this week COMP 446 / ELEC 446 - Week 5
UIx • Special UIView subclass that knows how to do things • UILabel is a subview that knows how to draw text • UIImageView knows how to draw images. • In typical Apple style, automatically handles various media types • UIControl • UIView with Target-Action event handling • UIButton: • UITextField: • Will automatically bring up keyboard COMP 446 / ELEC 446 - Week 5
Animation • Apple ‘style’ automatically • Really increases professionalism and sex appeal of applications • Either animates your views or automatic animations of system classes. COMP 446 / ELEC 446 - Week 5
UserDefaults • [[NSUserDefaultsstandardUserDefaults] setValue:[NSNumbernumberWithInt:polygon.numberOfSides] forKey:@”numberOfSides”]; • int sides = [[NSUserDefaultsstandardUserDefaults] integerForKey:@”numberOfSides”]; COMP 446 / ELEC 446 - Week 5
View Controllers • Learn more about use this week • Starting point for many applications • Logic for Navigation Controllers • The standard hierarchical nature of most iPhone apps • Automatic handling of going backwards • Logic for Tabs • Major application sections • Pre-create views, push them on the stack • Typically loaded lazily, created on demand – don’t load directly COMP 446 / ELEC 446 - Week 5
Last Week’s Assignment COMP 446 / ELEC 446 - Week 5
Next Week • Will learn a lot about Table Views. • Paparazzi1 will have you select and display views. The main goal is to great and manipulate views using tab view controllers and custom views. • Paparazzi 2 will introduce table views to Paparazzi and utilize better data storage methods. • Paparazzi 3 will have you fetch data from the web and have you plot location information on a map. COMP 446 / ELEC 446 - Week 5
Introduction to Websites • HTML 4.01 • The browser / web server model • The browser / server language dance • JavaScript • AJAX • ASP.Net • Detecting and reacting to browser capabilities • Web apps that look like iPhone apps • Next week – Adding SQL to websites • In two weeks – .Net Web Services COMP 446 / ELEC 446 - Week 5
HTML 4.01 • Collection of nested tags defining the way a document is displayed. • Two basic forms: • <tag> … </tag> • <tag /> • Many great references • http://www.w3schools.com/tags/default.asp COMP 446 / ELEC 446 - Week 5
HTML 4.01 Tag Types • Basic • <body>, <h1>, <p>, <br />, <!-- … --> • Formatting • <b>, <center>, <i>, <sub>, <u> • Forms • <form>, <input />, <button>, <select>, <label> • Frames • Images <img>, <map> COMP 446 / ELEC 446 - Week 5
HTML 4.01 Tag Types (2) • Lists • <ul>, <ol>, <li> • Tables • <table>, <tr>, <td>, <th> • Styles • <style>, <div>, <span> • Meta Info • <head>, <title>, <meta> • Programming • <script>, <object> COMP 446 / ELEC 446 - Week 5
Simple Initial Page <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> </body> </html> COMP 446 / ELEC 446 - Week 5
Sample HTML Body <body> <h1>This is a test page</h1> <div style="background-color:Yellow; color:Red; font-size:medium; text-align:center; width:400px"> The text in this section will be colored Red, aligned in the center with background of Yellow. </div> <p /> Click <a href="http://www.comp446.com" target="_blank">here</a> to jump to the COMP446 website. </body> COMP 446 / ELEC 446 - Week 5
Generates This is a test page The text in this section will be colored Red, aligned in the center with background of Yellow. Click here to jump to the COMP446 website. COMP 446 / ELEC 446 - Week 5
Sample HTML Body - Table <body> <table style=" border-style:solid; border-width:medium"> <tr> <td> Cell 1</td> <td> Cell 2</td> </tr> <tr> <td> Yet another cell</td> <td> <span style= "color:Red"> our last cell</span></td> </tr> </table> </body> Cell 2 Cell 1 our last cell Yet another cell COMP 446 / ELEC 446 - Week 5
Cascading Style Sheets • Defines a set of style elements stored in a separate file and called by name. • Style=“color:red;” etc replaced with class=“<cssclass_name>” • Changing style sheet can change the look of an entire website • Think skin for a webpage COMP 446 / ELEC 446 - Week 5
HTML Events • Body Events • Onload, onunload • Form Events • Onblur, onchange, onfocus, onreset, onselect, onsubmit • Keyboard • Onkeydown, onkeypress, onkeyup • Mouse Events • Onclick, ondblclick, onmousedown/up, onmousemove, onmouseout, onmouseover COMP 446 / ELEC 446 - Week 5
JavaScript • Full language hosted in the browser • Handles actions from HTML events • Creates, reads and manages cookies • Handles validation and animation • Reacts to user inputs and timers COMP 446 / ELEC 446 - Week 5
Browser / Webserver model • User types a URL into browser address window. • Server at that URL sends an HTML page with JavaScript to the browser • Server is now disconnected and won’t reengage until the browser contacts the server • Often difficult concept to grasp • Information often sent back to server to maintain state COMP 446 / ELEC 446 - Week 5
AJAX • Asynchronous JavaScript and XML • Uses existing techniques to allow partial page refreshes. • Major early examples were Gmail and Google Maps • Quite difficult to program – but made relatively simple with ASP.Net and other modern development tools COMP 446 / ELEC 446 - Week 5
.Net • Created in 2000, it extends Windows with a higher level framework • Driven off an intermediate, Common Language Infrastructure (CLI) • Targets include: x86, x64, Windows Mobile and Website Development (ASP.Net) • Compilers to CIL/CLR (Common Interface Language)/(Common Language Runtime) from many languages including C# and VB • Managed Memory – no alloc, dealloc, GC • Integrates security, database interface, extensive libraries • Silverlight multimedia and AJAX support • Tightly integrated into Visual Studio .Net • Great article on Wikipedia - http://en.wikipedia.org/wiki/.NET_Framework • Makes many difficult tasks easy. COMP 446 / ELEC 446 - Week 5
ASP.Net • Runs .Net runtime library on the server • Set of web controls that execute on the server and send appropriate JavaScript to the browser • Manages ViewState • Can easily generate or consume web services • Integrated configuration files simplify interfaces with email, SQL, authentication, etc. • Simple AJAX integration COMP 446 / ELEC 446 - Week 5
Visual Studio • Fully integrated development tool • Stand Alone • Web • Mobile • SQL • Multiple Languages • Deployment and Debugging • Integrates with Expression line of advanced web design tools COMP 446 / ELEC 446 - Week 5
Demo COMP 446 / ELEC 446 - Week 5
Browser Capabilities • Communication between browser and server is two way. • You can customize a web application for target browser • Server can read “Request.Browser” and determine Type, Name, Version, Platform, if it supports various features, is a mobile device, page size, screen characteristics. • Not all features reported correctly by all browsers. COMP 446 / ELEC 446 - Week 5
IUI • Collection of CSS and JavaScript that when combined with logic of ASP.Net server (or other servers) can create a browser app which looks like an iPhone app – particularly those with table views. • Leverages public AppKit framework. • Requires good Internet connection • Does NOT require approval by Apple. COMP 446 / ELEC 446 - Week 5
Week 6 • Assignments • View CS193P Lecture 7 : Navigation & Tab Bar Controllers • View CS193P Lecture 8 : Scroll Views and Table Views • Assignment: Paparazzi 1 (Due 9/28/10) • Classroom Technology: Introduction to SQL • Choose final project architecture (iOS, Android or WP7) and let me know, particularly if it is other than iOS. • Start thinking about big project • Really – start thinking about big project! COMP 446 / ELEC 446 - Week 5