Mobile App Development Spring 2013 Agenda Practical information Introduction to mobile development Introduction to Android development 1
About us Jacob Avlund, course manager Kasper Østerbye, teacher Charlotte Katzmann, TA Jesper Sandberg, TA Natalia Izabela Kuraszynska, TA Natalia Izabela Kuraszynska Has a Master in Chemistry with application of Computer Science from Poland TA for Mobile and Distributed Systems in Fall 2011 and 2012 Starts master thesis in March Main interests: HCI, environmental sensing, data mining, mobile programing, IT project management 2
Jesper Sandberg Starting Master thesis in March within Pervasive Computing Also working as IT Manager and Web Developer Will gladly accept any foosball challenge Charlotte Katzmann Finished master in software development- and technology in nov 2012. Danske Bank IT Developer Graduate Programme Many Android and IOS projects on the side 3
Kasper Østerbye Ph.d from Aalborg University, 1990 Has worked with object oriented programming since 1985 Background in the Smalltalk, Java, C# etc Taught a number of courses at ITU Never done an app... Jacob Avlund Cand.it from ITU, 2005 I develop apps for Android and ios in my company Siblingsoft Background in the Java Enterprise world Taught a number of courses at ITU Created the app Valg2011 for ios/android, which got more than 100.000 downloads 4
Prerequisites Programming experience corresponding to the course Object Oriented Programming, and experience from one or more programming projects here at ITU Knowledge of XML and SQL an advantage Bring your own computer if at all possible Course goals Straight from the course base: After the course, the student should be able to: describe the major mobile technologies currently leading the market, as well as how they differ from each other characterise the advantages of developing for a mobile device over developing for a desktop machine/server list the feature set of a modern mobile device describe and design using the distribution model of an app for a mobile device summarise the architecture and work flow of an Android app for a specific case list, select and apply relevant design patterns for an Android app for a specific case create and deploy an Android app This is a preliminary version of the goals we will adjust by next week 5
Subjects About the mobile market and mobile programming in general Android architecture and configuration Layouts and resources Activities and fragments Intents Persistence Location/GPS Server communication Threads and services Distributing apps Mobile web What you see is what you get What this course IS Very technical Very practical Android-focused What this course is NOT An iphone course A graphic design course A marketing course A Java course 6
Literature Mandatory: Lee, Wei-Meng: Beginning Android 4 Application Development Additional: Lee, Wei-Meng: Android Application Development Cookbook Hardcore: Meier, Reto: Professional Android 4 Application Development Exercises Exercises are held immediately after lectures 19.00-21.00 Recurring case, which will also form the basis for the exam Exercises are not mandatory, but the Tas will correct your solutions if you choose to hand them in (which we recommend, of course) 7
Misc. practical information The ITU canteen is closed in the evening; KUA s canteen may be open though Also, there are vending machines here or there where you might find food and other stuff Course home page: http://www.itu.dk/courses/mmad/f2013/ Part 1: Exam 48 hour exam, where you solve an assignment based on the case we ve been working on during the semester Can be done at home, at school or wherever else you d like Part 2: Oral exam, where you defend your solution from Part 1 You may also (and probably will) be asked questions from this course s curriculum 8
Questions?? Introduction to mobile development Why develop for mobiles? The mobile landscape right now Why Android? 9
What is a mobile app? Software application designed for smart phones and/or tablets Normally distributed through huge application portals (App Store, Google Play, Windows Phone Store etc.) Can utilize phone hardware Why develop for mobile? A grotesque amount of smart phones on the market: ios (iphone, ipad, ipod touch): 316 mil sold in 4 years (in comparison: 122 mil Macs sold in 28 years) Android: more than 500 mil devices activated (and 1.3 mil more every day) Huge software market: ios: more than 750,000 apps in App Store, more than 40 bil downloads Android: more than 700,000 apps in Google Play, more than 25 bil downloads Sources: http://techcrunch.com/2012/02/16/apple-sold-more-iphones-than-macs-ever/ http://www.informationweek.com/hardware/handheld/google-races-toward-1-billion-android-ac/240007197 http://www.apple.com/pr/library/2013/01/07app-store-tops-40-billion-downloads-with-almost-half-in-2012.html http://sociable.co/mobile/google-play-will-hit-one-billion-apps-this-june/ 10
Why develop for mobile? Access to unique technology: Camera Accelerometer GPS NFC Etc. A possibility to reach the ordinary consumer fast and cheap A new entrance for existing services Some history Before 2007, the market was dominated by Nokia phones using the Symbian system and RIM s Blackberry devices The smart phone race rose to an entirely new level when the first iphone was released in 2007 App Store (introduced with iphone 3G) delivered an entirely new distribution model, with a huge market as a consequence The first commercially available Android based phone (HTC Dream) appeared in october 2008, with Android Market (now Google Play) as an alternative to App Store Windows Phone was announced and marketed in 2010, and in 2011 Nokia and Microsoft made an alliance, resulting in Nokia focusing strongly on Windows Phone based smart phones 11
ios/android/windows Phone ios Android Windows Phone Developed by Apple Google Microsoft Newest version 6.0 4.2 8.0 Used by Apple ONLY Samsung, HTC, Sony etc. Nokia, HTC etc. Primary language Objective C Java C# Development IDE Xcode (Mac required) Eclipse (ADT) Visual Studio Distributed via App Store Google Play WP Store Subscription fee $99/year $25 (once) $99/year Download fee 30% 30% 30% (20%) Mobile web sites Web sites optimized for smart phones Typically developed in HTML5 with CSS3 and JavaScript Challenges compared to desktop web sites: Screen size Connection speed and cost Cumbersome multi-tasking No plugins (Flash, Java) Touch navigation 12
Apps vs. Mobile web sites App advantages Strong distribution model Speed More flexible offline capabilities Better access to phone hardware Prestige Mobile web advantages No need to download an app Works on all... well, most devices Lower development costs Why Android? Open source Big market and many types of devices Apps are written in Java Relatively easy to test Does not require specific hardware 13
Android versions Version Name Features 1.5 Cupcake Widgets, copy/paste 1.6 Donut WVGA support 2.0-2.1 Eclair 2.2 Froyo Generel overhaul 2.3.x Gingerbread NFC, WXGA support 3.x Honeycomb Tablet support, fragments 4.0 Ice Cream Sandwich Unified version 4.2 Jelly Bean UI speed boost Who s using what? Source: http://developer.android.com/about/dashboards/index.html (20. dec 2012 3. jan 2013) 14
Android architecture 15