e-Business - Mobile development trends

Post on 28-Jan-2015

104 views 1 download

Tags:

description

 

transcript

DITF LDI Lietišķo datorsistēmu programmatūras

profesora grupa

e-Business Solutions

Basic Trends of Modern Software Development

Vladimir Kotov Basic Trends of Modern Software Development

Mobile Development Trends

Vladimir Kotov Basic Trends of Modern Software Development 3

Need an App ...

Vladimir Kotov Basic Trends of Modern Software Development 4

Popular Devices in Latvia

Versions in Latvia

Version Statistics

December 2012

Version Statistics

December 2012

Vladimir Kotov Basic Trends of Modern Software Development 13

Smartphone OS Market Share

IDC, 2012 v. 2011

Vladimir Kotov Basic Trends of Modern Software Development 14

Cross-platform Mobile Development

Application types● Native● Web● Hybrid● Cross-compile

Vladimir Kotov Basic Trends of Modern Software Development 15

Native Apps

Built for a specific platform with the platform SDK, tools and languages, typically provided by the platform vendor

Vladimir Kotov Basic Trends of Modern Software Development 16

Native Apps

+● Speed and reaction● Native look'n'feel● Native API● Debug + Profile

-● Only 1 platform● New language?● Costs● App review time

Vladimir Kotov Basic Trends of Modern Software Development 17

When to use native app ?

● Use native app if ...● You want to achieve native look and feel ● You need top performance● You want to be on the app store(s)

Vladimir Kotov Basic Trends of Modern Software Development 18

The Mobile “Server-side” Web

Uses HTML, JavaScript, CSS and runs in a devices browser

Vladimir Kotov Basic Trends of Modern Software Development 19

The Mobile “Server-side” Web

● Responsive Design

● Dynamically loads HTML content and assets● Serves same HTML content and assets for every

device and then scales via CSS using media queries

– e.g. @media screen and (max-width: 650px)

Vladimir Kotov Basic Trends of Modern Software Development 20

The Mobile “Server-side” Web

Vladimir Kotov Basic Trends of Modern Software Development 21

The Mobile “Server-side” Web

+● Existing tools● No license fees● All platforms with

browser, even your old Nokia

● Search engine

-● No app stores● Limited platform

access (camera, calendar, etc)

● As fast as your browser, network latency

Vladimir Kotov Basic Trends of Modern Software Development 22

The Mobile “Client-side” Web

Uses HTML5 + JavaScript and runs in a devices browser

Vladimir Kotov Basic Trends of Modern Software Development 23

The Mobile “Client-side” Web

● Sencha Touch● JQueryMobile

● JQTouch● KendoUI

● GWT Mobile

Vladimir Kotov Basic Trends of Modern Software Development 24

The Mobile “Client-side” Web

+● Existing tools● No license fees● All platforms with

browser● Search engine

-● No app stores● Limited platform

access (camera, calendar, etc)

● As fast as your browser, network latency

Vladimir Kotov Basic Trends of Modern Software Development 25

The Mobile “Client-side” Web

● Use the client-side web if ...● Need something that looks like an app, but

care less for the sensors of your phone● You want to prototype a service● You need crossplatform app (not native)

Vladimir Kotov Basic Trends of Modern Software Development 26

Hybrid App

HTML5 + JavaScript with a wrapper that gives it native capabilities

Vladimir Kotov Basic Trends of Modern Software Development 27

Hybrid App

● Run inside a native container to leverage the device’s browser engine (but not the browser)

● Web-to-native abstraction layer enables access to device capabilities

Vladimir Kotov Basic Trends of Modern Software Development 28

Hybrid App

+● Existing tools● No license fees● All platforms with

browser● Search engine

-● As fast as your

browser, network latency

Vladimir Kotov Basic Trends of Modern Software Development 29

Hybrid App

● Use hybrid approach if ...● You want to build your app based on HTML5● And need access to the phone's hardware

Vladimir Kotov Basic Trends of Modern Software Development 30

Interpreted and cross-compile

Vladimir Kotov Basic Trends of Modern Software Development 31

Interpreted and cross-compile

● Appcelerator Titanium

– JavaScript -> Native + Hybrid JS● MonoTouch

– C# -> Native● Apache Thrift

– Thrift definition -> Native● QT

Vladimir Kotov Basic Trends of Modern Software Development 32

Interpreted and cross-compile

● Use interpreted or cross-compiled app if ...● You want to use “one language to build them

all”● Need access to the phone's hardware● Need semi- or truly native look and feel /

performance

Vladimir Kotov Basic Trends of Modern Software Development 33

Decision

● Factors● App size and type● Platforms● Developers skills● Budget● Monetization● User experience● Importance of updates

Vladimir Kotov Basic Trends of Modern Software Development 34

Decision

Vladimir Kotov Basic Trends of Modern Software Development 35

Android platform

Android is a Linux-based operating system and a software stack designed for mobile devices

Key Applications Home, Phone, Browser

Application Framework Java layer system services

Middlewares Libraries, Dalvik VM

Operating system Linux kernel

Vladimir Kotov Basic Trends of Modern Software Development 36

Android platform

Developed by Google*

2005 – purchased Android Inc

2007 – established Open Handset Alliance (OHA)

2012 – Oracle v. Google on Java API

Compatibility Definition Document

to certify devices

SDK + tools

to create applications

Vladimir Kotov Basic Trends of Modern Software Development 37

Android platform

Main hardware platform for Android is ARM

● support for x86 from the Android x86 project

Advanced RISC Machine

● 7.9 billion shipped in 2011

– 95% smartphones

– 90% hard disk drives● Reduced instruction set computing (RISC)

● Lower costs, Less heat, Less power usage

● Reduced complexity and simpler design

● Good interfacing to many devices

Vladimir Kotov Basic Trends of Modern Software Development 38

Android Anatomy

Vladimir Kotov Basic Trends of Modern Software Development 39

Android Linux Kernel

Android kernel based on Linux 2.6 and 3.x (Android 4.0)

● Why Linux?

● Great memory and process management

● Permissions-based security model

● Proven driver model

● Support for shared libraries

● Open source

Vladimir Kotov Basic Trends of Modern Software Development 40

Android Linux Kernel

Android “is not Linux”

● Users never see Linux sub system● Not the full set of standard Linux utilities● August 2011, Linus Torvalds - "eventually Android and

Linux would come back to a common kernel, but it will probably not be for four to five years"

Vladimir Kotov Basic Trends of Modern Software Development 41

Android Linux Kernel

Android patch of kernel enhancements

● Power Management● Ashmem ● Binder IPC● Low Memory Killer

December 2011 - Android Mainlining Project to put some Android drivers, patches and features back into the Linux kernel

Vladimir Kotov Basic Trends of Modern Software Development 42

Android Native Libraries

Vladimir Kotov Basic Trends of Modern Software Development 43

Android offer

The first open* and comprehensive platform for mobile devices

● an operating system, user-interface and applications● a mobile phone without the proprietary obstacles that

have hindered mobile innovation● an open-source development platform

Vladimir Kotov Basic Trends of Modern Software Development 44

Android offer

● Apps are equivalent parts of the phone using the same API

● Reuse and replacement of application components

● GSM, EDGE, 3G, 4G, LTE data transfer

● Comprehensive location-based APIs

● Wi-Fi hardware access and peer-to-peer connection

Vladimir Kotov Basic Trends of Modern Software Development 45

Android offer

● Full multimedia hardware control, media libraries

● APIs for sensor hardware

● Libraries for Bluetooth and NFC

● Shared data stores and APIs for contacts, social networking

● Background Services, applications, and processes

● Home-screen Widgets and Live Wallpaper