CprE Curriculum based Application Development using iPod Touch May10-23: Advisor: Professor Akhilesh Tyagi Autumn Winkie Chad Nelson Morgan Janes Sean Freitag Tim Danzer Outline 1. Introduction to iPod Touch 2. Integrating iPod 5. Final Design 6. Schedule Touch into ECpE 7. Design Testing curriculum 8. Test Class 3. Project 9. Feasibility Analysis Requirements 10. Projected Costs 4. Proposed Design The iPod Touch Based on iPhone hardware Mobile Embedded Platform Samsung 32-bit RISC ARM Clocked at 412 MHz Multi-touch touch screen 128 MB DRAM 8-32 GB solid state memory 120 x 480 pixel, 163 pixels/inch LCD iPhoneOS Stripped down version on MacOSX WiFi and Bluetooth Battery 3.7 V at 1150 mAh Development Environment Closed Platform Unix based Objective-C Communicates via “small-talk” Frameworks provide communication to the systems devices Unable to access services outside of provided frameworks iPod Touch Capabilities The iPod touch is capable of: Communicating via WiFi to external networks Communicating via Bluetooth to other iPhone based devices and hands free peripheral devices Detecting acceleration in three dimensional space Determining its own location Displaying advanced user interfaces Encoding/decoding music and video for play back iPod Touch Limitations The iPod touch is not capable of: Communicating via serial/USB without Apple’s permission (which we do not have) Utilizing camera, GPS, video recording, microphone, or compass like the iPhone 3GS Executing user developed background applications Supporting Bluetooth profiles outside of advanced audio distribution, audio/video remote control, and personal area network iPod/iPhone Popularity Sold approximately 26.4 Million iPhones and 20 million iPod Touches Approximately 5% of US population owns an iPhone Over 1 Billion apps downloaded from Apple’s store Project Objective Because of the overwhelming popularity of the iPhone platform it would be opportunistic for Iowa State University to pursue integrating the platform into its curriculum Our project is to assess the feasibly of integrating the iPod touch into the CprE embedded systems curriculum Course Outline Professor Tyagi has communicated with the Embedded Systems faculty to create requirements for this embedded course Project requirements will be based on those established for CprE 388X: Microcontroller and Systems Design Feasibility will be assessed based on fulfillment of these requirements Requirements Event Loop Event Scheduling Web Client Design (Network Embedded Systems) Cooperative and Distributed Decision Making Resource Management Processor Memory Energy Design Approach Design a minimal set of labs to meet requirements Implement given set of labs Generate documentation for each lab Test effectiveness of each lab implementation Provide labs, documentation, feasibility analysis and any other relevant resources as deliverables Initial Design Plan Five labs will meet requirements Hello World! Light Saber iFind Web Radio iRobot Integration Project Evolution Labs Requirements Hello World! Event Loop Light saber Event Scheduling iFind Networking (Client/Server) Web Radio Resource Management (memory, processor, energy) iRobot Integration Cooperative and Distributed Decision Making Project Evolution Labs Requirements Hello World! Event Loop Resource Light saber Management Event Scheduling FindMe iFind Networking (Client/Server) Distributed Web Radio Brute Force Resource Management (memory, processor, energy) iRobot Integration Cooperative and Distributed Decision Making Project Evolution Labs Requirements Hello World! Event Loop Resource Management Event Scheduling Guitar App Networking (Client/Server) FindMe Resource Management (memory, processor, energy) Multiplayer Grouping Cooperative and Distributed Decision Making Lab 1: Hello World Description: Introduce students to iPhone application development process Concepts: Objective-C Structure and components for iPhone app View Controllers Delegates Interface Builder Developer Certificates to directly test on the iPhone platform Deliverable: An application using these components to display “Hello World” Lab 2: Resource Management Description: Require students to explore the physical constraints of the platform Concepts: Monitor battery depletion Compare processor performance versus energy consumption Compare network usage versus energy consumption Illustrate need for memory management Deliverable: A lab report with supporting graphs demonstrating the application of resource management Lab 3: Guitar App Description: Use multiple iPod touches to emulate a guitar, with one iPod touch as the frets, and another as the pick Concepts: Uses Bluetooth Implements Accelerometers Sounds via AudioToolbox Deliverable: An application that plays sounds based on the pressed frets when a strum occurs, similar to a guitar Lab 4: FindMe Description: Utilize location services to track other users’ locations other Concepts: Alert users when a friend is nearby Apple Push Notifications Client/Server interactions Advanced user interface design MapKit and Corelocations frameworks for iPhone platform Deliverable: An application that submits its geo-location to a server and receives peer locations. A server that supports push notifications. Lab 5: Multiplayer Grouping Description: Group multiple iPod Touches together via a distributive algorithm in which all iPod Touches are equal Concepts: Ad-hoc networking via GameKit Distributive computing Protocol Implementation Deliverable: An application that groups a specified number of ipods together, discontinuing search when a group is formed Lab Reasoning 5 labs is the minimal set that meets all requirements Expected that filler labs will be created during class implementation Labs are subject to change to parallel lecture material Lab Timeline 1. Hello World (1 week) 2. Resource Management (1 week) 3. Expected filler lab (1-2 weeks) 4. Guitar App (2 weeks) 5. FindMe App (2 weeks) 6. Multiplayer Grouping (3-4 weeks) Total of 10-12 weeks worth of labs Fall Semester Breakdown Learn Objective-C (2 weeks) Research iPhone platform capabilities (2 weeks) Initial proposal of curriculum (3 weeks) Attempted implementation of initial proposal (3 weeks) Revised Proposal (2 weeks) Began implementation of revised curriculum (3 weeks) Spring Semester Breakdown Made minor adjustments to curriculum proposal (2 weeks) Finished implementation (4 weeks) Tested minimum curriculum (6 weeks) Compiled testing results (1 week) Authored feasibility report (2 weeks) Testing Offered a seminar to test the usefulness of the documentation in implementing the labs that took place during March 2010 Ideal participants Must have completed CprE 288 Have interest in the iPhone platform. Seminar provided us with An idea of the difficultly of the labs/projects The usefulness of the documentation made to accompany each lab or project The feedback was analyzed and used to improve labs and generate feasibility report Testing Approach Offer two night classes (16 hours each) 4 weeks 2 sessions per week 2 hours per session Satisfactory/Fail 1 Credit 29 students registered, 24 students completed the course Course Layout 8 Session Schedule 1.Intro Lab 2.Resource Management Lab 3.Guitar App (Part 1) 4.Guitar App (Part 2) 5.FindMe App (Part 1) 6.FindMe App (Part 2) 7.Multiplayer Grouping (Part 1) 8.Multiplayer Grouping (Part 2) Course Requirements Satisfactory grade dependent upon: 5 Lab Surveys Attending all 8 sessions Submit source code Testing Results Feedback Many students did not possess the knowledge assumed from the prereq Students struggled with the semantics of Objective-C Not enough emphasis on GUI Students prefer comprehensive documentation Greater explanation of toolkits used in the labs General Mac usage was unfamiliar to the students Feasibility Analysis Documented evolution of the project Provided reasoning for proposed curriculum Integrated feedback into final proposal Offers advice towards succession planning Is it Feasible? Reasons Supporting Feasibility Produced a curriculum that successfully met the requirements of an embedded systems course on a mobile platform Extremely high interest in the platform Evidence to support longevity of iPhone platform Mobile computing represents the dominant trend in future technology Testing was positive with strong constructive criticism Project Costs Purchases prior to project start Apple enterprise developer program certification - $99 25 x 8gb iPod touches provided by the department $4975 Costs incurred during project Labor: 554 hrs total x $20/hr = $11080 Poster: $40 Total Cost = $16194 May10-23 Website Progress and status reports can be viewed at the team website: http://seniord.ece.iastate.edu/may1023 References Picture References in order of appearance http://techplore.com/technology/wpcontent/uploads/2009/07/new_iphone.jpg http://www.ifixit.com/Teardown/iPod-Touch-1st-Generation/596/3 http://upload.wikimedia.org/wikipedia/commons/8/8f/IPhone_sales_per_q uarter.svg http://idannyb.wordpress.com/2008/05/16/iphone-country-count-up-to-53/ http://jonmell.co.uk/wp-content/uploads/2008/12/find-people.jpg http://greatbignerd.files.wordpress.com/2009/05/133946__lightsaber_l.jpg Questions?