DITF LDI
Lietišķo datorsistēmu programmatūras
profesora grupa
e-Business Solutions
Vladimir Kotov Basic Trends of Modern Software Development
Vladimir Kotov Basic Trends of Modern Software Development 3
Version Statistics
Version Statistics
Vladimir Kotov Basic Trends of Modern Software Development 13
Smartphone OS Market Share
Vladimir Kotov Basic Trends of Modern Software Development 15
Native Apps
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
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
Vladimir Kotov Basic Trends of Modern Software Development 18
The Mobile “Server-side” Web
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
Vladimir Kotov Basic Trends of Modern Software Development 20
Vladimir Kotov Basic Trends of Modern Software Development 21
The Mobile “Server-side” Web
+
●
Existing tools
●No license fees
●All platforms with
Vladimir Kotov Basic Trends of Modern Software Development 22
The Mobile “Client-side” Web
Vladimir Kotov Basic Trends of Modern Software Development 23
The Mobile “Client-side” Web
●
Sencha Touch
●JQueryMobile
●
JQTouch
●KendoUI
Vladimir Kotov Basic Trends of Modern Software Development 24
The Mobile “Client-side” Web
+
●
Existing tools
●No license fees
●All platforms with
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
Vladimir Kotov Basic Trends of Modern Software Development 26
Hybrid App
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
Vladimir Kotov Basic Trends of Modern Software Development 28
Hybrid App
+
●
Existing tools
●No license fees
●All platforms with
Vladimir Kotov Basic Trends of Modern Software Development 29
Hybrid App
●
Use hybrid approach if ...
Vladimir Kotov Basic Trends of Modern Software Development 30
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
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 /
Vladimir Kotov Basic Trends of Modern Software Development 33
Decision
●
Factors
Vladimir Kotov Basic Trends of Modern Software Development 34
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
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
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
Vladimir Kotov Basic Trends of Modern Software Development 38
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
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
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
Vladimir Kotov Basic Trends of Modern Software Development 42
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
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
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
●