• No results found

Basic Trends of Modern Software Development

N/A
N/A
Protected

Academic year: 2021

Share "Basic Trends of Modern Software Development"

Copied!
45
0
0

Loading.... (view fulltext now)

Full text

(1)

DITF LDI

Lietišķo datorsistēmu programmatūras

profesora grupa

e-Business Solutions

(2)

Vladimir Kotov Basic Trends of Modern Software Development

(3)

Vladimir Kotov Basic Trends of Modern Software Development 3

(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)

Version Statistics

(12)

Version Statistics

(13)

Vladimir Kotov Basic Trends of Modern Software Development 13

Smartphone OS Market Share

(14)
(15)

Vladimir Kotov Basic Trends of Modern Software Development 15

Native Apps

(16)

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

(17)

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

(18)

Vladimir Kotov Basic Trends of Modern Software Development 18

The Mobile “Server-side” Web

(19)

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

(20)

Vladimir Kotov Basic Trends of Modern Software Development 20

(21)

Vladimir Kotov Basic Trends of Modern Software Development 21

The Mobile “Server-side” Web

+

Existing tools

No license fees

All platforms with

(22)

Vladimir Kotov Basic Trends of Modern Software Development 22

The Mobile “Client-side” Web

(23)

Vladimir Kotov Basic Trends of Modern Software Development 23

The Mobile “Client-side” Web

Sencha Touch

JQueryMobile

JQTouch

KendoUI

(24)

Vladimir Kotov Basic Trends of Modern Software Development 24

The Mobile “Client-side” Web

+

Existing tools

No license fees

All platforms with

(25)

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

(26)

Vladimir Kotov Basic Trends of Modern Software Development 26

Hybrid App

(27)

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

(28)

Vladimir Kotov Basic Trends of Modern Software Development 28

Hybrid App

+

Existing tools

No license fees

All platforms with

(29)

Vladimir Kotov Basic Trends of Modern Software Development 29

Hybrid App

Use hybrid approach if ...

(30)

Vladimir Kotov Basic Trends of Modern Software Development 30

(31)

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

(32)

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 /

(33)

Vladimir Kotov Basic Trends of Modern Software Development 33

Decision

Factors

(34)

Vladimir Kotov Basic Trends of Modern Software Development 34

(35)

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

(36)

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

(37)

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

(38)

Vladimir Kotov Basic Trends of Modern Software Development 38

(39)

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

(40)

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

(41)

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

(42)

Vladimir Kotov Basic Trends of Modern Software Development 42

(43)

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

(44)

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

(45)

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

References

Related documents