develop native android apps and port to other platforms · is called device fragmentation donderdag...
TRANSCRIPT
![Page 1: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/1.jpg)
Develop native android appsAnd port to other platforms
Robin Puthli, 24 October 2013
Droidcon UK
1donderdag 24 oktober 13
![Page 2: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/2.jpg)
• Mobile developer 2001 - present
• Run a 11 strong development shop
• Netherlands based
Me
2donderdag 24 oktober 13
![Page 3: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/3.jpg)
Native iOS
Native Android Mobile webapps
Mobile websites
Itude Mobile develops client facing apps for companies
3donderdag 24 oktober 13
![Page 4: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/4.jpg)
Agenda
4donderdag 24 oktober 13
![Page 5: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/5.jpg)
Agenda
• Why is it difficult to port native apps?
4donderdag 24 oktober 13
![Page 6: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/6.jpg)
Agenda
• Why is it difficult to port native apps?
• How to cope
4donderdag 24 oktober 13
![Page 7: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/7.jpg)
Agenda
• Why is it difficult to port native apps?
• How to cope
• We are making our tools open source
4donderdag 24 oktober 13
![Page 8: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/8.jpg)
The problem
5donderdag 24 oktober 13
![Page 9: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/9.jpg)
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
![Page 10: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/10.jpg)
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
![Page 11: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/11.jpg)
6donderdag 24 oktober 13
![Page 12: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/12.jpg)
7donderdag 24 oktober 13
![Page 13: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/13.jpg)
Android
www.opensignals.com
8donderdag 24 oktober 13
![Page 14: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/14.jpg)
Fragmentation is here to stay
9donderdag 24 oktober 13
![Page 15: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/15.jpg)
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
![Page 16: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/16.jpg)
Old problem!
10donderdag 24 oktober 13
![Page 17: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/17.jpg)
Old problem!
• Windows / Mac / Unix
• Desktop browsers
• JavaME
• Mobile web
10donderdag 24 oktober 13
![Page 18: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/18.jpg)
9 strategies
Damith C. Rajapakse, Singapore school of computing (2006)
Cost
11donderdag 24 oktober 13
![Page 19: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/19.jpg)
Examples
Damith C. Rajapakse, Singapore school of computing (2006)
PhoneGap
Action bar sherlock
Native Android and iOS
Qt, Unity
12donderdag 24 oktober 13
![Page 20: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/20.jpg)
If you’ve got a hammer
13donderdag 24 oktober 13
![Page 21: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/21.jpg)
If you’ve got a hammer
Everything looks like a nail
13donderdag 24 oktober 13
![Page 22: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/22.jpg)
What is your use case?
• Game maker
• Single platform specialist
• Multiplatform developer
14donderdag 24 oktober 13
![Page 23: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/23.jpg)
Our strategy:mobbl.org
15donderdag 24 oktober 13
![Page 24: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/24.jpg)
Our strategy:mobbl.org
• Software Engineering Methodology
15donderdag 24 oktober 13
![Page 25: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/25.jpg)
Our strategy:mobbl.org
• Software Engineering Methodology
• Native libraries for Android, JSF and iOS
15donderdag 24 oktober 13
![Page 26: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/26.jpg)
Our strategy:mobbl.org
• Software Engineering Methodology
• Native libraries for Android, JSF and iOS
• Open source Q4 2013
15donderdag 24 oktober 13
![Page 27: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/27.jpg)
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
![Page 28: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/28.jpg)
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
![Page 29: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/29.jpg)
We tried
• HTML5 in webviews
• Javascript based tools
• Tools with a proprietary language
18donderdag 24 oktober 13
![Page 30: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/30.jpg)
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
![Page 31: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/31.jpg)
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
![Page 32: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/32.jpg)
Concepts
20donderdag 24 oktober 13
![Page 33: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/33.jpg)
Model
Document • Parsers and serialization
• Webservices
• Persistence, Caching
• Manipulation, deep copy etc.
• Passthrough between screens
Element
Attribute
21donderdag 24 oktober 13
![Page 34: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/34.jpg)
Controller
Screen A
Button
Screen B
22donderdag 24 oktober 13
![Page 35: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/35.jpg)
Controller
Screen A
Button
Screen B
Logic
23donderdag 24 oktober 13
![Page 36: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/36.jpg)
Controller
Screen A
Button
Screen B
Logic
23donderdag 24 oktober 13
![Page 37: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/37.jpg)
Controller
Screen A
Button
Screen B
Logic
Activity
23donderdag 24 oktober 13
![Page 38: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/38.jpg)
Controller
Screen A
Button
Controller Screen B
24donderdag 24 oktober 13
![Page 39: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/39.jpg)
Controller
Screen A
Button
Controller Screen B
Logic
25donderdag 24 oktober 13
![Page 40: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/40.jpg)
MOBBL
ModelController
View
26donderdag 24 oktober 13
![Page 41: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/41.jpg)
Re-use
27donderdag 24 oktober 13
![Page 42: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/42.jpg)
MOBBL.ORG
28donderdag 24 oktober 13
![Page 43: Develop native android apps And port to other platforms · Is called device fragmentation donderdag 24 oktober 13 5. donderdag 24 oktober 13 6. donderdag 24 oktober 13 7. Android](https://reader036.vdocuments.us/reader036/viewer/2022070112/60570f157896220b9e49ce31/html5/thumbnails/43.jpg)
Questions?✓Code Android apps in java
✓No API restrictions
✓Port to other platforms
✓open source q4 2013
✓Sign up now to hear more
MOBBL.ORG
29donderdag 24 oktober 13