Android Tech Track Mobile App development 24 February 2011 Sogeti, Evere Ben Stroobants, Kenneth Van Rumste, Alexis Mathieux, Geoffroy Mispelaere, Tom Pluym
Agenda Introduction Demonstration Set up Track Actions Conclusion
Introduction Smartphones & Mobile Apps Android Case: Antalis
Introduction: Smartphones & Mobile Apps
Mobile Apps Communication is already multi/cross-channel New channel
Mobile Apps vs Mobile Website Mobile Website One single design for all devices No obligation to download new versions Save on the cost of development Independence with regard to app stores and operators: not subject to market place checks No commission to pay to an app store Instantly available to the public (automatic indexation in search engines).
Mobile Apps vs Mobile Website Mobile App Format perfectly suited to the device One-click access (no searching as on a mobile site) Can work offline Look and feel is more accessible to the general public Can offer more advanced functions: integration of device features like geolocation, camera, accelerometer Modern image Direct shortcut to the ‘brand’: users tend to spend more time on an application than to spend on a website. Also, a person downloading an application reflects already trust and interest in the ‘brand’.
Mobile Apps vs Mobile website Consultant’s answer: ‘It depends’ Important to ensure  consistent image consistent cross-channel experience.
Android What is Android? The Open Handset Alliance Recent version history Features Architecture Apps on Android Global market importance Overview
Android A software platform and operating system for mobile devices Initially developed by Android, inc. (bought by Google in 2005) Since 2007, result of collaboration by Open Handset Alliance Open platform, released under the Apache license What is Android?
Android The Open Handset Alliance (OHA)
Android Established on November 5, 2007 Led by Google. Initially 34 enterprises joined (number still growing) Enterprises include major players from different sectors: Mobile operators: T-Mobile, Vodafone,… Software companies: Google, eBay, Nuance,… Commercialization companies: Accenture,… Semiconductor companies: Intel, Nvidia,… Handset manufacturers: HTC, Motorola,… Goal: Develop technologies that will significantly lower the cost of developing and distributing mobile devices and services The Open Handset Alliance (OHA)
Android Android 2.1 - Eclair: Released January 2010 Android 2.2 – Froyo: Released May 2010 General OS, speed, memory improvements Support for Adobe Flash 10.1 Android 2.3  Gingerbread: Released December 2010 Improved hardware support and power management Android 3.0 Honeycomb: Preview release January 2011 Support for multicore processors For now: only tablet-support Improved user interface Today? Launch of Motorola Xoom, first tablet with Android 3.0 Recent version history
Android Recent version history- market share
Android Integrated browser based on open-source WebKit engine, coupled with Chrome JS engine v8. SQLite: RDBMS Wide range of media support Multitasking possible Dalvik Virtual Machine: optimized for mobile devices Software features
Android connectivity technologies: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, and WiMAX. Wide range of hardware support: Touchscreen (multitouch) Cameras GPS Accelerometers Gyroscopes Proximity and pressure sensors Accelerated 3D graphics Hardware features
Android Architecture
Android Android SDK or native code Android Market (Google’s appStore) Made available in October 2008 Support for paid applications since February 2009 Since december 2010: +200,000 apps available Est. 2.5 billion downloads so far Not the only place where you can find apps! Alternative markets: Andspot, Handango,… Install the apps yourself by use of the APK-file (Android package) Apps on android
Android 300,000 android-based devices are activated each day Best-selling mobile platform at this moment On daily-use basis, there’s still heavy competition from iOS, Symbian and Blackberry, but Android’s usage is rising rapidly Global market importance
Android Global market importance
Case Antalis Long user session: collect products to order during the day Fast order flow: users know their product codes
Demonstration Android App
Set Up Android SDK + Eclipse ADT plugin Source control : private repository in GitHub Server Application
Android Tech Track
Approach / Actions: BeJUG What is BeJUG? Belgian Java User Group Official mission statement; “The primary focus of The Belgium Java User Group (founded in 1997) is to inform our members about the Java ecosystem.” When? Every two weeks. Where? Several location in Belgium (Ghent, Antwerp, Leuven and Louvain-la-Neuve). More information on  www.bejug.org
Approach / Actions: BeJUG BeJUG and Sogeti 5 silver subscriptions; 5 persons from Sogeti can join BeJUG sessions. Check your mailbox for proposals or make your own. (… and don’t forget the free drinks and the free pizzas!)
Approach / Actions: BeJUG BeJUG and the Android Tech Track Regular session The “usual” conference, One or several gurus present a technology or framework, In the case of Android, the conference was about presenting the most important components of an Android application, as well as the interesting “buzzwords” to look into when making an application. Dojo session A much more technical approach, A small contextual idea is given at the beginning of the session, Everyone, one person after another, is invited to add a little brick to the whole.
Approach / Actions: Initial App A hello-world application Create a hello world app Structure Information http://developer.android.com/
Approach / Actions: Initial App Antalis project Notepad tutorial CRUD on Products and User Account SQLite
Approach / Actions: Authentication Oauth2: protocol for secure API authorization Tokens over credentials Scenario Client Credentials flow Implementation Server: Spring Security + Spring Mobile Security Client: leeloo
Approach / Actions: Promotions Goal :  A  way  to display promotions to  customers.
Approach / Actions: Promotions Idea :  Usage of a list that shows different banners and details. Expandable List
Approach / Actions: Promotions Server side Two webservices :  getPromotions  to retrieve all the promotions as a JSON object. getPicture  to download the banner linked to a promotion.
Approach / Actions: Promotions Client side ExpandableListActivity  It’s an activity that displays an expandable list of items by binding to a data source and exposes event handlers when the user selects an item.  ExpandableListAdapter An adapter that links an ExpandableListView with the underlying data. This adapter will provide access to the data of the children (categorized by groups) and also instantiate Views for children and groups.
Approach / Actions: Promotions Problems : Refresh of the list of promotions when the application is running. Latency to display the list due to the download of the pictures.
Approach / Actions: Promotions Promotions – Services - Introduction Services are used to; Perform a longer-running operation while not interacting with the user Supply functionalities for other applications to use It has its own lifecycle and can be bound to an activity or any other component having an Android context.
Approach / Actions: Promotions Promotions – Services - Specifications Although it can be set up to have its own process, it is by default managed by the main application thread. Binding to a service is an asynchronous operation, meaning that you have to first use a callback method before calling specific operations on your service.
Approach / Actions: Promotions Promotions – Asynchronous tasks An easy way to execute one-shot background operations without blocking the UI. Used by subclassing the AsyncTask class and running the execute(…) method. The system keeps a link to the UI thread to allow easier update of the progress in the interface.
Approach / Actions: Barcode scanning Integration of other functionality by  Intent s Handle the response: ‘onActivityResult’ Barcode scanner ZXing
Approach / Actions: Layout Activity class Lifecycle start Activities and get results XML-configuration
Approach / Actions: iPhone
Approach / Actions: iPhone Android Java  (subset of J2SE) Component reuse, Activity, Intents JUnit tests Open source Iphone Objective-C (C with extensions for OO) MVC model, Controller, Sharing Data Unit tests Language, Programming model and platform.
Approach / Actions: iPhone Android Guide and API reference (online and offline). Videos, tutorials Open source Android projects ApiDemos section www.android.com Iphone Starting guide videos Some open source projects http://developer.apple.com Documentations
Approach / Actions: iPhone Android Eclipse Plugin Android UIBuilder Eclipse debugger Trace view Emulator Debug on real device Iphone XCode UIBuilder Debugger Profiler Emulator Debug on real device (need to pay for that) Tooling
Approach / Actions: iPhone Android Android market Available in a few minutes Take 30% of your app price. Iphone App Store Need to be approved by Apple Take 30% of your app price. App Store
Conclusions Know how Confidence Track approach worked

Sogeti - Android tech track presentation - 24 february 2011

  • 1.
    Android Tech TrackMobile App development 24 February 2011 Sogeti, Evere Ben Stroobants, Kenneth Van Rumste, Alexis Mathieux, Geoffroy Mispelaere, Tom Pluym
  • 2.
    Agenda Introduction DemonstrationSet up Track Actions Conclusion
  • 3.
    Introduction Smartphones &Mobile Apps Android Case: Antalis
  • 4.
  • 5.
    Mobile Apps Communicationis already multi/cross-channel New channel
  • 6.
    Mobile Apps vsMobile Website Mobile Website One single design for all devices No obligation to download new versions Save on the cost of development Independence with regard to app stores and operators: not subject to market place checks No commission to pay to an app store Instantly available to the public (automatic indexation in search engines).
  • 7.
    Mobile Apps vsMobile Website Mobile App Format perfectly suited to the device One-click access (no searching as on a mobile site) Can work offline Look and feel is more accessible to the general public Can offer more advanced functions: integration of device features like geolocation, camera, accelerometer Modern image Direct shortcut to the ‘brand’: users tend to spend more time on an application than to spend on a website. Also, a person downloading an application reflects already trust and interest in the ‘brand’.
  • 8.
    Mobile Apps vsMobile website Consultant’s answer: ‘It depends’ Important to ensure consistent image consistent cross-channel experience.
  • 9.
    Android What isAndroid? The Open Handset Alliance Recent version history Features Architecture Apps on Android Global market importance Overview
  • 10.
    Android A softwareplatform and operating system for mobile devices Initially developed by Android, inc. (bought by Google in 2005) Since 2007, result of collaboration by Open Handset Alliance Open platform, released under the Apache license What is Android?
  • 11.
    Android The OpenHandset Alliance (OHA)
  • 12.
    Android Established onNovember 5, 2007 Led by Google. Initially 34 enterprises joined (number still growing) Enterprises include major players from different sectors: Mobile operators: T-Mobile, Vodafone,… Software companies: Google, eBay, Nuance,… Commercialization companies: Accenture,… Semiconductor companies: Intel, Nvidia,… Handset manufacturers: HTC, Motorola,… Goal: Develop technologies that will significantly lower the cost of developing and distributing mobile devices and services The Open Handset Alliance (OHA)
  • 13.
    Android Android 2.1- Eclair: Released January 2010 Android 2.2 – Froyo: Released May 2010 General OS, speed, memory improvements Support for Adobe Flash 10.1 Android 2.3 Gingerbread: Released December 2010 Improved hardware support and power management Android 3.0 Honeycomb: Preview release January 2011 Support for multicore processors For now: only tablet-support Improved user interface Today? Launch of Motorola Xoom, first tablet with Android 3.0 Recent version history
  • 14.
    Android Recent versionhistory- market share
  • 15.
    Android Integrated browserbased on open-source WebKit engine, coupled with Chrome JS engine v8. SQLite: RDBMS Wide range of media support Multitasking possible Dalvik Virtual Machine: optimized for mobile devices Software features
  • 16.
    Android connectivity technologies:GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, and WiMAX. Wide range of hardware support: Touchscreen (multitouch) Cameras GPS Accelerometers Gyroscopes Proximity and pressure sensors Accelerated 3D graphics Hardware features
  • 17.
  • 18.
    Android Android SDKor native code Android Market (Google’s appStore) Made available in October 2008 Support for paid applications since February 2009 Since december 2010: +200,000 apps available Est. 2.5 billion downloads so far Not the only place where you can find apps! Alternative markets: Andspot, Handango,… Install the apps yourself by use of the APK-file (Android package) Apps on android
  • 19.
    Android 300,000 android-baseddevices are activated each day Best-selling mobile platform at this moment On daily-use basis, there’s still heavy competition from iOS, Symbian and Blackberry, but Android’s usage is rising rapidly Global market importance
  • 20.
  • 21.
    Case Antalis Longuser session: collect products to order during the day Fast order flow: users know their product codes
  • 22.
  • 23.
    Set Up AndroidSDK + Eclipse ADT plugin Source control : private repository in GitHub Server Application
  • 24.
  • 25.
    Approach / Actions:BeJUG What is BeJUG? Belgian Java User Group Official mission statement; “The primary focus of The Belgium Java User Group (founded in 1997) is to inform our members about the Java ecosystem.” When? Every two weeks. Where? Several location in Belgium (Ghent, Antwerp, Leuven and Louvain-la-Neuve). More information on www.bejug.org
  • 26.
    Approach / Actions:BeJUG BeJUG and Sogeti 5 silver subscriptions; 5 persons from Sogeti can join BeJUG sessions. Check your mailbox for proposals or make your own. (… and don’t forget the free drinks and the free pizzas!)
  • 27.
    Approach / Actions:BeJUG BeJUG and the Android Tech Track Regular session The “usual” conference, One or several gurus present a technology or framework, In the case of Android, the conference was about presenting the most important components of an Android application, as well as the interesting “buzzwords” to look into when making an application. Dojo session A much more technical approach, A small contextual idea is given at the beginning of the session, Everyone, one person after another, is invited to add a little brick to the whole.
  • 28.
    Approach / Actions:Initial App A hello-world application Create a hello world app Structure Information http://developer.android.com/
  • 29.
    Approach / Actions:Initial App Antalis project Notepad tutorial CRUD on Products and User Account SQLite
  • 30.
    Approach / Actions:Authentication Oauth2: protocol for secure API authorization Tokens over credentials Scenario Client Credentials flow Implementation Server: Spring Security + Spring Mobile Security Client: leeloo
  • 31.
    Approach / Actions:Promotions Goal : A way to display promotions to customers.
  • 32.
    Approach / Actions:Promotions Idea : Usage of a list that shows different banners and details. Expandable List
  • 33.
    Approach / Actions:Promotions Server side Two webservices : getPromotions to retrieve all the promotions as a JSON object. getPicture to download the banner linked to a promotion.
  • 34.
    Approach / Actions:Promotions Client side ExpandableListActivity It’s an activity that displays an expandable list of items by binding to a data source and exposes event handlers when the user selects an item. ExpandableListAdapter An adapter that links an ExpandableListView with the underlying data. This adapter will provide access to the data of the children (categorized by groups) and also instantiate Views for children and groups.
  • 35.
    Approach / Actions:Promotions Problems : Refresh of the list of promotions when the application is running. Latency to display the list due to the download of the pictures.
  • 36.
    Approach / Actions:Promotions Promotions – Services - Introduction Services are used to; Perform a longer-running operation while not interacting with the user Supply functionalities for other applications to use It has its own lifecycle and can be bound to an activity or any other component having an Android context.
  • 37.
    Approach / Actions:Promotions Promotions – Services - Specifications Although it can be set up to have its own process, it is by default managed by the main application thread. Binding to a service is an asynchronous operation, meaning that you have to first use a callback method before calling specific operations on your service.
  • 38.
    Approach / Actions:Promotions Promotions – Asynchronous tasks An easy way to execute one-shot background operations without blocking the UI. Used by subclassing the AsyncTask class and running the execute(…) method. The system keeps a link to the UI thread to allow easier update of the progress in the interface.
  • 39.
    Approach / Actions:Barcode scanning Integration of other functionality by Intent s Handle the response: ‘onActivityResult’ Barcode scanner ZXing
  • 40.
    Approach / Actions:Layout Activity class Lifecycle start Activities and get results XML-configuration
  • 41.
  • 42.
    Approach / Actions:iPhone Android Java (subset of J2SE) Component reuse, Activity, Intents JUnit tests Open source Iphone Objective-C (C with extensions for OO) MVC model, Controller, Sharing Data Unit tests Language, Programming model and platform.
  • 43.
    Approach / Actions:iPhone Android Guide and API reference (online and offline). Videos, tutorials Open source Android projects ApiDemos section www.android.com Iphone Starting guide videos Some open source projects http://developer.apple.com Documentations
  • 44.
    Approach / Actions:iPhone Android Eclipse Plugin Android UIBuilder Eclipse debugger Trace view Emulator Debug on real device Iphone XCode UIBuilder Debugger Profiler Emulator Debug on real device (need to pay for that) Tooling
  • 45.
    Approach / Actions:iPhone Android Android market Available in a few minutes Take 30% of your app price. Iphone App Store Need to be approved by Apple Take 30% of your app price. App Store
  • 46.
    Conclusions Know howConfidence Track approach worked

Editor's Notes

  • #2 Welcome: Mobile App development where we present the results of the Android Tech Track 5 presenters 7 participants: presenters + Mark Fonteyne + Mikhail Panshenskov Goal:
  • #5 What? handheld computers integrated with a mobile telephone usually allows the user to install and run more advanced applications run complete operating system software providing a platform for application developers it integrates a wide range of features into a consumer-oriented device among which satellite navigation (GPS), a megapixel camera with autofocus and LED flash, 3G and wi-fi connectivity, motion detection (accelerometers, tilt sensors), … 2001: Kyocera 6035 by Palm Inc.; combined features of a PDA and a wireless phone e.g. dial from contact list and limited web browsing 2002: Blackberry (here Blackberry 7250); device optimized for wireless email use 2007: Nokia N95: GPS, a 5 megapixel camera with autofocus and LED flash, 3G and wi-fi connectivity and TV-out 2007: later in 2007, Apple releases original iPhone; controlled mainly through its multi-touchscreen marks the starting point for broad consumer adaptation of the smartphone device 2008: Android 2008: App Store + Android Market 2010: Windows Phone 7, limited success 2011: iPhone + Android, RIM and Nokia struggle with perception of being old-fashioned.
  • #6 One of the distinct features of a smartphone is that one can install apps on it. Multi-channel communication: e-mail, sms, website, phone, store, paper catalogue, snail mail etc. Channel it is most compared with is a (mobile) website.
  • #7 New versions: Distribution model: put on webserver Apps: app stores
  • #8 multi-channel: e-mail, sms, website, store, paper catalogue, snail mail etc e.g. Lego: was loosing appeal in the market to Adapted strategy. Created different brands Multi-channel approach: stores, websites, booklets New functionality in apps. Example: Mindstorms Installs: 10,000 – 50,000 How To Tie a Tie : Killer app  : 500,000 – 1,000,000 installs (android market) app fits the format of the smartphone; mobile website wouldn’t be so user friendly; videos on internet Almost as simple and cheap as it can get BBC
  • #23 Add product - productcode - barcoce - promotion 2. Sign in 3. Promotions 4. Order
  • #24 GitHub: advantages: Internet based: easily accessible Git: distributed source control system Server: For real connectivity Tomcat Spring framework Spring security modules Options: publicly accessible instance from Sogeti / Amazon cloud
  • #25 Original planning Participants: Kenneth Van Rumste, Mark Fonteyne, Mikhail Panshenskov, Ben Stroobants, Alexis Mathieux, Geoffroy Mispelaere, Tom Pluym Extra: initial app by Kenneth Van Rumste Weekly meeting: Synchronize work: Tasks completed Identify work items Assign tasks
  • #40 Intent: abstract description of an operation to be performed provides a facility for performing late runtime binding between the code in different applications most significant use is in the launching of activities , where it can be thought of as the glue between activities
  • #41 Activity class: An activity is a single, focused thing that the user can do . Almost all activities interact with the user , so the Activity class takes care of creating a window for you in which you can place your on UI  Lifecycle, e.g. in onPause() one can save somet state Start activities: see barcoce scanner Handle screen events (if not by view) Context menus