Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Week 3: Android App Programming Jeff Gray, Ph.D. - Associate Professor Carnegie Foundation Professor of the Year (Alabama, 2008) University of Alabama Department of Computer Science [email protected] http://www.cs.ua.edu/~gray Agenda for Week • Today • • • • • General intro Introduction to App Inventor Various Demos and Hands-on Exercises Lunch: Ms. Lynsey Dill Rest of week • See end of slides Camp Introduction    Liability forms Photos throughout the week Lunch each day – 11:30am-12:45pm       Today: Pizza lunch (Shelby 3438) Tue-Thu: Lunch in the Freshens Food Court Fri: Catered lunch Restrooms USB Stick Assumption  Java background Camp rules  Camp Rules  No cell phone usage in class except for emergencies  No headphones while instructor is speaking  No surfing the web or playing games during lectures  No food or drink are allowed in the lab  Pay attention during class exercises; do not jump ahead and let us know if you fall behind General Info • • • Bleeding edge – may encounter various “issues” throughout the week; App Inventor barely a year old Sharing of various Android phones Much different than week 1 • • Focus is on motivating you to practice Java on fun exercises Developing your own creativity while implementing a customized app Why Smartphones? Motivation: Teaching CS – 1980s style  Typical example was text-based, trivial, and uninspiring Motivation: New and Exciting Contexts  Media Computation (Georgia Tech)   Robots   Programming in a more exciting context by manipulating images and sounds Lego NXT 2D/3D Animation Environments  Alice, Scratch, AgentSheets Motivation: Newest Context   Teen cell phone adoption at 84% March 3, 2011   Android marketshare (29%) passes Apple (27%) Android sales soar 888%   Social networking and crowd sourcing a daily activity Increasing adoption of smartphones in science and medical applications Android Overview Brief History  2005    2007    Google acquires startup Android Inc. to start Android platform Work on Dalvik VM begins Open Handset Alliance announced Early look at SDK 2008      Google sponsors 1st Android Developer Challenge T-Mobile G1 announced SDK 1.0 released Android released open source (Apache License) Android Dev Phone 1 released Brief History cont.  2009  SDK 1.5 (Cupcake)    SDK 1.6 (Donut) SDK 2.0/2.0.1/2.1 (Eclair)   Gartner Inc. predicts 14% in 2012 2010   Nexus One released to the public SDK 2.2 (Froyo)    wifi tethering, Flash SDK 2.3 (Gingerbread)   Exchange support; refine UI Android runs on 3.5% of all smartphones   new soft keyboard with an "Autocomplete" feature refine UI; improve keyboard copy/paste Q4 Android passes Symbia as best-selling smartphone platform 2011  SDK 3.0 (Honeycomb)   Table only release; Motorola Xoom in 2 weeks Ice-cream Sandwich (mid-2011) http://en.wikipedia.org/wiki/Android_(operating_system) Android Facts  From Wikipedia   Modified version of Linux kernel Android is composed of 12 millions lines of code       3M SLOCs pertaining to XML 2.8M SLOCS in C 2.1M SLOCS in Java 1.75M SLOCS in C++ Linux kernel tensions Oracle lawsuit Android Developer Challenge   http://code.google.com/android/adc/ 2008:     10 teams received $275k 10 teams received $100k Each of top 50 finalists received $25k 2009     10 first prizes at $100k 10 2nd prizes at $50k 10 3rd prizes at 25k Overall: 1st-$250k, 2nd- $50k, 3rd- $25k Open Handset Alliance     Established November 2007 Competes against Microsoft, Apple, Nokia (Symbia), Palm, RIM, and Samsung (Bada) Composed of 79 software and hardware companies URLs:   http://www.openhandsetalliance.com/ http://en.wikipedia.org/wiki/Open_Handset_Alliance Key Differences: Android vs. iPhone      iPhone OS is proprietary OS runs on iPhone or iPod Touches only Apps written in ObjectiveC Apple must approve all apps  Application Store Some apps are more important than others (Safari is your browser)      Android OS is open source OS can be licensed for any mobile device Apps written in Java No approval process for apps  Android Market All apps considered equal (choose your browser) What is Google Android?  A software stack for mobile devices that includes     An operating system Middleware Key Applications Uses Linux to provide core system services      Security Memory management Process management Power management Hardware drivers App Inventor Overview App Inventor Overview   URL: http://appinventor.googlelabs.com Purpose    Teaching Prototyping Components of App Inventor  Designer   GUI builder Block Editor   Provide behavior behind the GUI Based on MIT OpenBlocks and Scratch App Inventor Overview Installing and Running  http://appinventor.googlelabs.com/learn/setup /index.html#setupComputer    App Inventor environment loads in a web browser    Requires Java 1.6 Install App Inventor setup Login using Google account Run from a phone or the Android emulator Stores programs in the cloud Designer   Provides a WYSIWYG editor for designing the visual parts of the app Also provides ability to attach non-visual components Blocks Editor     Provides an ability to give behavior to an app; the programming part Typical and expected basic predefined constructs (logic, conditionals, iteration) Ability to refer to the components and their properties from the Designer Very similar to Scratch  Built on Open Blocks library from MIT Limitations     File I/O Custom objects Printing your code! Reliability Examples  Many tutorials available:    Standard Google Kitty app (embarrassing!)   Developed by Dave Wolber (Univ. San Francisco) http://appinventor.googlelabs.com/learn/tutorials/index.html http://appinventor.googlelabs.com/learn/setup/hellopurr/hellopurr emulatorpart1.html Other Examples  Where’s My Car, No Text While Driving Schedule  Monday    Tuesday     Intro to App Inventor Think about an app idea More on App Inventor Java-based intro to writing Android Apps Prepare project presentation (3 minutes each) Wednesday     Start at 8:30am Project proposal presentation More Java-based Android Start project implementation Schedule  Thursday   Project implementation Late Afternoon: CS AP GridWorld   Mr. Martin and Mrs. Woessner Friday    Project wrap-up and final presentations Lunch Say good-byes