1 / 41

Wednesday 2-4, KH 105

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

fell
Download Presentation

Wednesday 2-4, KH 105

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-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

  2. 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

  3. 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

  4. 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

  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

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

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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. -(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

  16. 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

  17. 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

  18. UserDefaults • [[NSUserDefaultsstandardUserDefaults] setValue:[NSNumbernumberWithInt:polygon.numberOfSides] forKey:@”numberOfSides”]; • int sides = [[NSUserDefaultsstandardUserDefaults] integerForKey:@”numberOfSides”]; COMP 446 / ELEC 446 - Week 5

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

  20. Last Week’s Assignment COMP 446 / ELEC 446 - Week 5

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. .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

  36. 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

  37. 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

  38. Demo COMP 446 / ELEC 446 - Week 5

  39. 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

  40. 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

  41. 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

More Related