SlideShare a Scribd company logo
Grenzen der
Crossplattform-Entwicklung



           Robert Virkus
          @robert_virkus
  14:15 (naja, so ungefähr) - 15:15
Enough Software

A Team of Mobile Enthusiasts




                       Headquarter: Bremen, Germany
                       Customer base: worldwide
2005
                                                         -3 M
                                                      Stone age



 -4,600 M      -3,500 M        -2,000 M         -225 until -65 M
Earth forms   Life forms   Complex life forms   Age of dinosaurs
MTC Spring 2013 -  crossplatform woes - robert virkus - 2013-03-13
MTC Spring 2013 -  crossplatform woes - robert virkus - 2013-03-13
Our products

Open Source Tools for App Developers

      J2ME Polish

The standard framework for   Rich UI Library for        Native BlackBerry UI
Java ME development          Samsungs bada platform     development made easy

Automatic porting to         Native API extensions
Android and BlackBerry       optimize app performance

More than 1 million
downloads
MTC Spring 2013 -  crossplatform woes - robert virkus - 2013-03-13
Non-Profit Project

Mobile Developer’s Guide
to the Galaxy
The popular, and free, handbook for developers
and decision makers

Community-driven, objective, and non-profit

45,000 hardcopies distributed,
over 100k in downloads

12th Edition out now

Download at enough.de/mdgg

Tweet about it #mdgg
The Difficulties of
                     Going cross-Platform



(c) Madlen Ehrlich
Mobile Platforms




              J2ME
Mobile Platforms
Cross-Platform Challenges

    1. Programming Languages
    2. Features
    3. In app purchase
    4. In app advertisement
    5. Push Notifications
    6. Desktop Integration
    7. UI & UX
    8. OS Versions
Challenge:
              Programming Languages

Objective-C

C/C++                                 10


C#

Java

JavaScript
Challenge:
In-App Purchase
Challenge:
In-App Advertisement
Challenge:
                      Push Notifications

8192
7168
6144                                 Data size from 256 bytes to 8kb
5120                                 Different transport protocols
4096
                                     Different options (direct text, data)
3072
                                     Different desktop visualisations
2048
                                              (badges, notifications)
1024
   0
        Max Push Size in Bytes

       iOS                       Android
       Windows Phone             BlackBerry
Challenge:
       Features




J2ME
Challenge:
UI & UX: Design Paradigm




  realistic vs digital design
Challenge:
UI & UX: Desktop Integration
Challenge:
UI & UX sample: Long Lists
Challenge:
UI & UX: Navigation Keys
Challenge:
               OS Versions




2.3           5.x         7.5            6.x
4.x           6.x         8.x            7.x
                                         10


The platforms themselves evolve all the time
Cross-Platform Strategies


  1. Native
  2. HTML 5
  3. ANSI C
  4. Cross-platform tools
Native Apps
                                                     1 team per platform
                          Best integration
                          Best reach
                          But: most effort




Photos (left to right):
(c) Julian Fong/levork flickr.com/photos/levork/4074351034
(c) Julian Fong/levork flickr.com/photos/levork/3023757995
(c) Julian Fong/levork flickr.com/photos/levork/2697173209
verious.com
chupamobile.com
cocoacontrols.com
Native Apps
        Asset Sharing




Concept & Resources
Data structures & algorithms
Code sharing of business model
Who’s Gonna
                          pay For it?!




(c) mac_filko flickr.com/photos/mac_filko/6405755185
App Stores
                                                                   !=
                                                                Freedom




(c) Pascal/pasukaru76 flickr.com/photos/pasukaru76/3926591032
The Holy Grail




(c) Daniel Novta/pj_vanf flickr.com/photos/vanf/6227607167
ANNO 2011




(c) Do-Hyun Kim/stick_kim flickr.com/photos/stickkim/6013799664
ANNO 2011




Source: http://app.ft.com
(c) Do-Hyun Kim/stick_kim flickr.com/photos/stickkim/6013799664
“I think the biggest
                                                                                           mistake we made as a
                                                                                            company is betting
                                                                                            too much on HTML5
                                                                                               as opposed to
                                                                                                  native.”



Source: http://www.forbes.com/sites/jjcolao/2012/09/19/facebooks-html5-dilemma-explained
photo (c) kris krüg/kk+ flickr.com/photos/kk/2326609919
Beware of the
   Uncanny Valley




(c) Gnsin en.wikipedia.org/wiki/File:HONDA_ASIMO.jpg
Beware of the
   Uncanny Valley




(c) Gnsin en.wikipedia.org/wiki/File:Actroid-DER_01.jpg
Beware of the Uncanny Valley




Source: http://en.wikipedia.org/w/index.php?title=File:Mori_Uncanny_Valley.svg
Beware of the Uncanny Valley




Sources: http://snippetspace.com/portfolio/iwebkit/
http://www.jqtouch.com/
http://itabbar.com/
Security




(c) mac_filko flickr.com/photos/mac_filko/5494761933
Security




Source: www.filldisk.com
Content Heavy




(c) Pascal/pasukaru76 flickr.com/photos/pasukaru76/5268559005
Content that needs Freedom




(c) Do-Hyun Kim/stick_kim flickr.com/photos/stickkim/6013799664
Hybrid
                                                            Super Power




(c) Julian Fong/levork flickr.com/photos/levork/4074351034
Native HTML5

Past             Future
C-Level




                                                                       ANSI everywhere
                                                                       Wrapper for native functions
                                                                       ...pretty hardcore
(c) Anthony/pfarrell95 flickr.com/photos/65005341@N03/6159914280
Cross-Platform Tools




   Games Are From Mars ApPs From Venus
Photos (left to right)
(c) mac_filko flickr.com/photos/mac_filko/5034317866
(c) mac_filko flickr.com/photos/mac_filko/5125597527
Game Engines
App Tools
Mono Touch & Mono Droid

C# for       ,       and
Shared libraries for business logic
OpenTK cross UI or native UI
Full native access

Problems
Know-how for both worlds required
Targeting different OS versions at once not possible
Mono Touch & Mono Droid
Language    Features   In app     In app ads   Push   Desktop   Native UI
                       purchase




           Verdict
           For C# experts
           Usefulness depends on complexity of business logic
Titanium

JavaScript for     ,       and mobile web
Access to some native UI elements
Custom Titanium API
Produces native code


Problems
Stability / memory management
No DOM tree or other browser features
Featureset differs between iOS and Android
Titanium
Language     Features   In app       In app ads   Push   Desktop   Native UI
                        purchase




           Verdict
           Great for prototyping & simple apps
Corona

Lua script for     ,
Access to some native UI elements
Custom Corona API
Bridge technology between native and Lua (Enterprise)

Problems
Very limited native access in base SDK
Very complex native access in Enterprise SDK
Featureset differs between iOS and Android
Corona
Language    Features   In app      In app ads   Push   Desktop   Native UI
                       purchase




           Verdict
           Rapid development for casual games & apps developers
           Strong community
Tools Check

Programming language

Native integration

Native UI paradigms

Use existing libraries
Is it worth it?



   Mobile OS


     you


 Your App Code
Is it worth it?



Mobile OS     Porting Tool


            you


     Your App Code
Choosing the right
Cross-platform Strategy



         how?
Choosing the right
      Cross-platform Strategy
                     how?

Idea, Features & Content

Target Audience & Platforms

Competition

Marketing Budget

Developer Know-how
(No) Return of the Zombie Apps




                                                                                                           Zombie   Alive


Source: http://gigaom.com/europe/app-store-infested-with-zombie-software-claims-analytics-startup-adeven
Photo: (c) Mark Anderson/andertoons flickr.com/photos/andertoons-cartoons/4392594997
Thanks! Questions?
                        Sögestr. 70
                        28195 Bremen

Download dev guide at   www.enough.de
enough.de/mdgg          twitter: @enoughsoftware

                        Robert Virkus
                        twitter: @robert_virkus
                        robert@enough.de

More Related Content

MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13

  • 1. Grenzen der Crossplattform-Entwicklung Robert Virkus @robert_virkus 14:15 (naja, so ungefähr) - 15:15
  • 2. Enough Software A Team of Mobile Enthusiasts Headquarter: Bremen, Germany Customer base: worldwide
  • 3. 2005 -3 M Stone age -4,600 M -3,500 M -2,000 M -225 until -65 M Earth forms Life forms Complex life forms Age of dinosaurs
  • 6. Our products Open Source Tools for App Developers J2ME Polish The standard framework for Rich UI Library for Native BlackBerry UI Java ME development Samsungs bada platform development made easy Automatic porting to Native API extensions Android and BlackBerry optimize app performance More than 1 million downloads
  • 8. Non-Profit Project Mobile Developer’s Guide to the Galaxy The popular, and free, handbook for developers and decision makers Community-driven, objective, and non-profit 45,000 hardcopies distributed, over 100k in downloads 12th Edition out now Download at enough.de/mdgg Tweet about it #mdgg
  • 9. The Difficulties of Going cross-Platform (c) Madlen Ehrlich
  • 12. Cross-Platform Challenges 1. Programming Languages 2. Features 3. In app purchase 4. In app advertisement 5. Push Notifications 6. Desktop Integration 7. UI & UX 8. OS Versions
  • 13. Challenge: Programming Languages Objective-C C/C++ 10 C# Java JavaScript
  • 16. Challenge: Push Notifications 8192 7168 6144 Data size from 256 bytes to 8kb 5120 Different transport protocols 4096 Different options (direct text, data) 3072 Different desktop visualisations 2048 (badges, notifications) 1024 0 Max Push Size in Bytes iOS Android Windows Phone BlackBerry
  • 17. Challenge: Features J2ME
  • 18. Challenge: UI & UX: Design Paradigm realistic vs digital design
  • 19. Challenge: UI & UX: Desktop Integration
  • 20. Challenge: UI & UX sample: Long Lists
  • 21. Challenge: UI & UX: Navigation Keys
  • 22. Challenge: OS Versions 2.3 5.x 7.5 6.x 4.x 6.x 8.x 7.x 10 The platforms themselves evolve all the time
  • 23. Cross-Platform Strategies 1. Native 2. HTML 5 3. ANSI C 4. Cross-platform tools
  • 24. Native Apps 1 team per platform Best integration Best reach But: most effort Photos (left to right): (c) Julian Fong/levork flickr.com/photos/levork/4074351034 (c) Julian Fong/levork flickr.com/photos/levork/3023757995 (c) Julian Fong/levork flickr.com/photos/levork/2697173209
  • 28. Native Apps Asset Sharing Concept & Resources Data structures & algorithms Code sharing of business model
  • 29. Who’s Gonna pay For it?! (c) mac_filko flickr.com/photos/mac_filko/6405755185
  • 30. App Stores != Freedom (c) Pascal/pasukaru76 flickr.com/photos/pasukaru76/3926591032
  • 31. The Holy Grail (c) Daniel Novta/pj_vanf flickr.com/photos/vanf/6227607167
  • 32. ANNO 2011 (c) Do-Hyun Kim/stick_kim flickr.com/photos/stickkim/6013799664
  • 33. ANNO 2011 Source: http://app.ft.com (c) Do-Hyun Kim/stick_kim flickr.com/photos/stickkim/6013799664
  • 34. “I think the biggest mistake we made as a company is betting too much on HTML5 as opposed to native.” Source: http://www.forbes.com/sites/jjcolao/2012/09/19/facebooks-html5-dilemma-explained photo (c) kris krüg/kk+ flickr.com/photos/kk/2326609919
  • 35. Beware of the Uncanny Valley (c) Gnsin en.wikipedia.org/wiki/File:HONDA_ASIMO.jpg
  • 36. Beware of the Uncanny Valley (c) Gnsin en.wikipedia.org/wiki/File:Actroid-DER_01.jpg
  • 37. Beware of the Uncanny Valley Source: http://en.wikipedia.org/w/index.php?title=File:Mori_Uncanny_Valley.svg
  • 38. Beware of the Uncanny Valley Sources: http://snippetspace.com/portfolio/iwebkit/ http://www.jqtouch.com/ http://itabbar.com/
  • 41. Content Heavy (c) Pascal/pasukaru76 flickr.com/photos/pasukaru76/5268559005
  • 42. Content that needs Freedom (c) Do-Hyun Kim/stick_kim flickr.com/photos/stickkim/6013799664
  • 43. Hybrid Super Power (c) Julian Fong/levork flickr.com/photos/levork/4074351034
  • 45. C-Level ANSI everywhere Wrapper for native functions ...pretty hardcore (c) Anthony/pfarrell95 flickr.com/photos/65005341@N03/6159914280
  • 46. Cross-Platform Tools Games Are From Mars ApPs From Venus Photos (left to right) (c) mac_filko flickr.com/photos/mac_filko/5034317866 (c) mac_filko flickr.com/photos/mac_filko/5125597527
  • 49. Mono Touch & Mono Droid C# for , and Shared libraries for business logic OpenTK cross UI or native UI Full native access Problems Know-how for both worlds required Targeting different OS versions at once not possible
  • 50. Mono Touch & Mono Droid Language Features In app In app ads Push Desktop Native UI purchase Verdict For C# experts Usefulness depends on complexity of business logic
  • 51. Titanium JavaScript for , and mobile web Access to some native UI elements Custom Titanium API Produces native code Problems Stability / memory management No DOM tree or other browser features Featureset differs between iOS and Android
  • 52. Titanium Language Features In app In app ads Push Desktop Native UI purchase Verdict Great for prototyping & simple apps
  • 53. Corona Lua script for , Access to some native UI elements Custom Corona API Bridge technology between native and Lua (Enterprise) Problems Very limited native access in base SDK Very complex native access in Enterprise SDK Featureset differs between iOS and Android
  • 54. Corona Language Features In app In app ads Push Desktop Native UI purchase Verdict Rapid development for casual games & apps developers Strong community
  • 55. Tools Check Programming language Native integration Native UI paradigms Use existing libraries
  • 56. Is it worth it? Mobile OS you Your App Code
  • 57. Is it worth it? Mobile OS Porting Tool you Your App Code
  • 59. Choosing the right Cross-platform Strategy how? Idea, Features & Content Target Audience & Platforms Competition Marketing Budget Developer Know-how
  • 60. (No) Return of the Zombie Apps Zombie Alive Source: http://gigaom.com/europe/app-store-infested-with-zombie-software-claims-analytics-startup-adeven Photo: (c) Mark Anderson/andertoons flickr.com/photos/andertoons-cartoons/4392594997
  • 61. Thanks! Questions? Sögestr. 70 28195 Bremen Download dev guide at www.enough.de enough.de/mdgg twitter: @enoughsoftware Robert Virkus twitter: @robert_virkus robert@enough.de