1 / 24

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/15/10. Today’s Agenda. Events of the week

nira
Télécharger la présentation

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/15/10

  2. Today’s Agenda • Events of the week • Announcements / Infrastructure Updates • Memory Management Review • Last Week’s assignments • Website 101 • Next Week • Assignment 3 due by 9/23/2009 COMP 446 / ELEC 446 - Week 4

  3. Events of the Week • Apple Backs Off Restriction on App Store Development Tools • iOS 4.1 now available on iTunes • iPad Cannibalizing Whole Notebook PC Industry • Nokia Turns to Microsoft for New Chief Executive • Meet Google Instant: Results as queries are typed • 'YouTube Instant' creator finds instant fame • Microsoft legal punch may change botnet battles forever COMP 446 / ELEC 446 - Week 4

  4. AppNation Conference • Dedicated conference towards App creation • App Revenue: • 2009: $ 4.1 Billion • 2012: $17.5 Billion • App Downloads: • 2009: 7 Billion • 2010: 50 Billion • Source – NBC news report COMP 446 / ELEC 446 - Week 4

  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 2

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

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

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

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

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

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

  12. Check Your Fundamentals • If you still feel lost: • Come to TA sessions • Re-watch iTunes U videos 2, 3, and 4 • Try and use spring 2009 versions for a slightly different perspective • Take your time. Study the PDFs. Pause and rewind the video until things are more clear. COMP 446 / ELEC 446 - Week 4

  13. Memory Management Basics • Object Creation • + alloc and - init methods • Objects take space, space allocated with alloc and initialized with init. • Object retention • The objects maintain a retention count. • [object retain] increases that count by 1 • [object release] decrease that count by 1 • When count reaches 0, [object dealloc] automatically called. • Objects retained by other objects need to be released when finished • Either when explicitly finished or in the dealloc method • Objects which might get released to 0 by others need to be retained COMP 446 / ELEC 446 - Week 4

  14. Pointers vs. Objects • Objects exist in the heap and take up resources • Variable names, for example (NSString *) point at objects. Their value is a pointer to the real object. • Names can be set to nil (0) when they point to nothing COMP 446 / ELEC 446 - Week 4

  15. Pointers vs. Objects • Copying objects, particularly NSString guarantees they won’t be changed from under you • You may cast them as an NSString, but it might be an NSMutableString • Multiple names can point to the same object • (NSMutableString *)mstring1 = [NSMutableStringsetString:@”Hi”];(NSString *)string2 = mstring1; // string2 == mstring1; both point to same object COMP 446 / ELEC 446 - Week 4

  16. Instance Variables and Properties Memory • Instance variables take up some space • int, float, etc store the actual values • (NSString *) iVar saves room for a pointer to an NSString object • The space needed by the actual object goes away when the object is deallocated, not when the pointer goes away. • Variables initialized to 0 or nil. This includes pointer objects. • Instance variables assigned to objects need to be released during object deallocation • OK to message nil objects, not OK to release deallocated objects COMP 446 / ELEC 446 - Week 4

  17. NSString Setter - (void)setName:(NSString *)newName{ if (name != newName) { [name release]; //old name retain count down 1 name = [newNameretain]; // name’s retain count has been bumped up by 1} COMP 446 / ELEC 446 - Week 4

  18. NSString Setter - (void)setName:(NSString *)newName { if (name != newName) { [name release]; name = [newNamecopy]; // name has retain count of 1, we own it} COMP 446 / ELEC 446 - Week 4

  19. Autorelease • If you know you are finished with an object and you retained or own it, release it when finished. It will go away if you are the last reference. • If you no longer need the object yourself, but want to pass it to someone else, autorelease the object; let them be responsible for retaining it. • If you know you will be done with the object during this run loop but can’t tell where in your code you may finish with it, autorelease the object. • If you acquire an autoreleased object and believe you will need it on a different run-loop cycle, retain the object and later release it. COMP 446 / ELEC 446 - Week 4

  20. Initial Retention Count • Objects received through [class alloc] or [class copy] come with a retention count of 1 • By convention, all other objects are owned by others and likely come autoreleased • They will be automatically destroyed on next wait loop unless otherwise retained COMP 446 / ELEC 446 - Week 4

  21. - (void) dealloc { } • First (optional step) is to run any logic cleanup code • Second step is to release any retained objects. • [object release], not [object deallocate]. • Do not release the deallocated object itself (no [self release]) • Final step is to call [super dealloc] COMP 446 / ELEC 446 - Week 4

  22. Property Memory Management • Header options • readonly – getter, no setter. Property can not be changed. • readwrite (default) – setter and getter • assign, retain and copy relate to how setter is coded assign retain copy • (void)setName: (NSString *)value • { • if (value != name) { • // [name release]; • name = value; • } • } // Probably you would not want this • (void)setName: (NSString *)value • { • if (value != name) { • [name release]; • name = [value retain]; • } • } //Name points to other object • (void)setName: (NSString *)value • { • if (value != name) { • [name release]; • name = [value copy]; • } • } // Creates a copy which you own COMP 446 / ELEC 446 - Week 4

  23. Last Week’s Assignment • The – (NSString *) name {…} method • Controller awakeFromNib method and setting up your poygonShape • Changes in IB relating to Outlets, Actions • Warning Levels • Case sensitivity, iVar declarations, NSLog • SDK Versions COMP 446 / ELEC 446 - Week 4

  24. Week 5 • Assignments • View CS193P Lecture 5 : Views and Drawing, Animations • View CS193P Lecture 6 : View Controllers Basics, MVC • Assignment: HelloPoly II [3] (Due 9/21/10) • Note: On LogMeIn, Control Drag does not work as if you were local • Websites 101 • HTML, Browsers, Client/Server / JavaScript, AJAX, ASP.Net • iPhone (pseudo) Web Apps, Browser Capabilities • Future • Feel free to get ahead of plan with videos and published assignments • Workload will get harder with each assignment. • We will follow CS193P assignments up to and including Paparazzi 3 • Start thinking about big project • Really – start thinking about big project! COMP 446 / ELEC 446 - Week 4

More Related