Mobile App Development
Spring 2013
Agenda
• Practical information
• Introduction to mobile development
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
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
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
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:
• This is a preliminary version of the goals – we will adjust by next week
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
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
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)
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/
Exam
• Part 1:
– 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
Questions?
?
Introduction to mobile
development
• Why develop for mobiles?
• The mobile landscape right now
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
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
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)
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
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