Develop native android apps And port to other platforms · Is called device fragmentation donderdag...

Post on 17-Oct-2020

4 views 0 download

Transcript of Develop native android apps And port to other platforms · Is called device fragmentation donderdag...

Develop native android appsAnd port to other platforms

Robin Puthli, 24 October 2013

Droidcon UK

1donderdag 24 oktober 13

• Mobile developer 2001 - present

• Run a 11 strong development shop

• Netherlands based

Me

2donderdag 24 oktober 13

Native iOS

Native Android Mobile webapps

Mobile websites

Itude Mobile develops client facing apps for companies

3donderdag 24 oktober 13

Agenda

4donderdag 24 oktober 13

Agenda

• Why is it difficult to port native apps?

4donderdag 24 oktober 13

Agenda

• Why is it difficult to port native apps?

• How to cope

4donderdag 24 oktober 13

Agenda

• Why is it difficult to port native apps?

• How to cope

• We are making our tools open source

4donderdag 24 oktober 13

The problem

5donderdag 24 oktober 13

The problem

Tools

ProgrammingLanguage Java / C++ NDK Objc, C++, C C#

App LifecycleApp Structure

UI, UXWidgets

Search boxBackground

PassbookBack button Tiles

5donderdag 24 oktober 13

The problem

Tools

ProgrammingLanguage Java / C++ NDK Objc, C++, C C#

App LifecycleApp Structure

UI, UXWidgets

Search boxBackground

PassbookBack button Tiles

Is called device fragmentation

5donderdag 24 oktober 13

6donderdag 24 oktober 13

7donderdag 24 oktober 13

Android

www.opensignals.com

8donderdag 24 oktober 13

Fragmentation is here to stay

9donderdag 24 oktober 13

Fragmentation is here to stay

• 2009 - 2011 : convergence

• Manufacturers are differentiating

• Phones, phablets, tablets, watches, glasses

• Learn how to cope!

• In all stages of the process

9donderdag 24 oktober 13

Old problem!

10donderdag 24 oktober 13

Old problem!

• Windows / Mac / Unix

• Desktop browsers

• JavaME

• Mobile web

10donderdag 24 oktober 13

9 strategies

Damith C. Rajapakse, Singapore school of computing (2006)

Cost

11donderdag 24 oktober 13

Examples

Damith C. Rajapakse, Singapore school of computing (2006)

PhoneGap

Action bar sherlock

Native Android and iOS

Qt, Unity

12donderdag 24 oktober 13

If you’ve got a hammer

13donderdag 24 oktober 13

If you’ve got a hammer

Everything looks like a nail

13donderdag 24 oktober 13

What is your use case?

• Game maker

• Single platform specialist

• Multiplatform developer

14donderdag 24 oktober 13

Our strategy:mobbl.org

15donderdag 24 oktober 13

Our strategy:mobbl.org

• Software Engineering Methodology

15donderdag 24 oktober 13

Our strategy:mobbl.org

• Software Engineering Methodology

• Native libraries for Android, JSF and iOS

15donderdag 24 oktober 13

Our strategy:mobbl.org

• Software Engineering Methodology

• Native libraries for Android, JSF and iOS

• Open source Q4 2013

15donderdag 24 oktober 13

Use case

• Data centric apps

• Lot of emphasis on look and feel

• Security, performance

• Often asked to develop on one platform first, then another platform.

16donderdag 24 oktober 13

Data lifecycle

1. JSON or XML from a companies webservice

2. Parse and validate

3. Cache

4. Present on some screens

5. Change

6. Post back to the webservice

17donderdag 24 oktober 13

We tried

• HTML5 in webviews

• Javascript based tools

• Tools with a proprietary language

18donderdag 24 oktober 13

We tried

• HTML5 in webviews

• Javascript based tools

• Tools with a proprietary language

• Buggy - write once, debug everywhere

• Memory leaks

• Mediocre UI

• No developers

• No cost advantage over native

18donderdag 24 oktober 13

Goals

• Native languages

• Predictable, efficient porting effort

• Modular code for easy maintenance

• Re-use for regular tasks: caching, REST, sessions etc

19donderdag 24 oktober 13

Concepts

20donderdag 24 oktober 13

Model

Document • Parsers and serialization

• Webservices

• Persistence, Caching

• Manipulation, deep copy etc.

• Passthrough between screens

Element

Attribute

21donderdag 24 oktober 13

Controller

Screen A

Button

Screen B

22donderdag 24 oktober 13

Controller

Screen A

Button

Screen B

Logic

23donderdag 24 oktober 13

Controller

Screen A

Button

Screen B

Logic

23donderdag 24 oktober 13

Controller

Screen A

Button

Screen B

Logic

Activity

23donderdag 24 oktober 13

Controller

Screen A

Button

Controller Screen B

24donderdag 24 oktober 13

Controller

Screen A

Button

Controller Screen B

Logic

25donderdag 24 oktober 13

MOBBL

ModelController

View

26donderdag 24 oktober 13

Re-use

27donderdag 24 oktober 13

MOBBL.ORG

28donderdag 24 oktober 13

Questions?✓Code Android apps in java

✓No API restrictions

✓Port to other platforms

✓open source q4 2013

✓Sign up now to hear more

r.puthli@itude.comwww.itude.com

MOBBL.ORG

29donderdag 24 oktober 13