Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Heiko Behrens | itemis AG


Plattformübergreifende
App-Entwicklung – ein Vergleich
eBay aims for $1.5 billion in mobile sales in 2010
                                internet retailer, Q1 2010




  mobile...
I want an iPhone App !
diversity of platforms
94 App Stores
two categories
How can we address
  this diversity?
You can write amazing web apps
that look exactly and behave
exactly like apps on the iPhone
                  Steve Jobs, ...
WEB APPS
demo
apple.com/webapps
openappmkt.com
what’s that
   native thing?
demo
Unreal Tech Demo




     demo
<div class=”light”></div>




<div id=”floor” class=”reflection”></div>
the User’s perspective
      on Apps
Experience
pre-installed    downloaded         online

            native                 website

                           W3C wid...
web apps
HTML5
cache manifest, local storage, forms, geo location

CSS3
animation, transitions, 3D transformation

Resolution
css m...
Web Frameworks
iWebKit, iUI, jQTouch

Sencha Touch

2010 Q4: JQuery mobile framework
Sencha Touch

MIT License                    GPL Dual License
declarative + JQuery           programmatically
focus on iPh...
development     easy

 effort         known technology + processes

 monetization   bad for user experience

experience   ...
hybrid apps
Request Interception




     demo
MIT License




         See also QuickConnect, Big5 (discontinued)
development     as with web

 effort         known technology + processes

 monetization   app stores

experience      as ...
interpreted apps
– HTML & CSS =
Apache 2 License
 JS programmatically
    native controls
iPhone, iPad, Android
  BlackBerry (soon)
demo
MonoTouch                Rhodes
starts at 399 USD         MIT License
   .net runtime      ruby C/S on the device

    iOS...
Screen Flow Interpreters
  The aim of XXX is to screen the programmer
  completely out from the mobile platform itself,
  ...
development     heavy API, but only once

 effort         barely any tooling

 monetization   app stores

experience      ...
generated apps
XMLVM — A CrossCompiler
Java (input)

public class HelloWorld
{
  static public void main(String[] args)
  {
    System.out.println("Hello World")...
XML (model)
<vm:xmlvm xmlns:vm="http://xmlvm.org"
  xmlns:jvm="http://xmlvm.org/jvm">
  <vm:class name="HelloWorld" extend...
XSLT (generator)
 <xsl:template match="jvm:irem">
   <xsl:text>
     _op2.i = _stack[--_sp].i; // Pop operand 1
     _op1....
Output
+ (void) main___java_lang_String_ARRAYTYPE :(NSMutableArray*)n1
{
    XMLVMElem _stack[2];
    XMLVMElem _locals[1]...
custom solution


        «Xpand»
own generator
for Mobile Apps
demo
development     huge one-time invest

 effort         easy for aimed cases, easy to extend

 monetization   app stores

ex...
cross platform ?
web   hybrid   interpreted generated

development

 effort

 monetization

experience

 hardware

 offline
another
perspective
native
 own language
  own culture
own ecosystem

  field skills
                promotion: watch avatar - the movie!
not-so-native
                                      economic objectives
                                      establishmen...
twitter @HBehrens
blog    http://HeikoBehrens.net

mail       Heiko.Behrens@itemis.de
xing       http://www.xing.com/profil...
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Upcoming SlideShare
Loading in …5
×

Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010

16,305 views

Published on

slides of a presentation about cross-platform mobile app development I gave at MobileTechCon 2010 in Mainz (Germany).

Links and additional information on the related blog post at http://HeikoBehrens.net/2010/10/11/cross-platform-app-development-for-iphone-android-co-—-a-comparison-i-presented-at-mobiletechcon-2010/

Published in: Technology

Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010

  1. 1. Heiko Behrens | itemis AG Plattformübergreifende App-Entwicklung – ein Vergleich
  2. 2. eBay aims for $1.5 billion in mobile sales in 2010 internet retailer, Q1 2010 mobile download revenue exceeded $29.5 billion by 2013 Gartner, Q2 2010 07/Q2 07/Q4 08/Q2 08/Q4 09/Q2 09/Q4 10/Q2 10/Q4
  3. 3. I want an iPhone App !
  4. 4. diversity of platforms
  5. 5. 94 App Stores
  6. 6. two categories
  7. 7. How can we address this diversity?
  8. 8. You can write amazing web apps that look exactly and behave exactly like apps on the iPhone Steve Jobs, WWDC 2007
  9. 9. WEB APPS
  10. 10. demo
  11. 11. apple.com/webapps openappmkt.com
  12. 12. what’s that native thing?
  13. 13. demo
  14. 14. Unreal Tech Demo demo
  15. 15. <div class=”light”></div> <div id=”floor” class=”reflection”></div>
  16. 16. the User’s perspective on Apps
  17. 17. Experience
  18. 18. pre-installed downloaded online native website W3C widget hybrid interpreted generated
  19. 19. web apps
  20. 20. HTML5 cache manifest, local storage, forms, geo location CSS3 animation, transitions, 3D transformation Resolution css media queries, reference, categories, float layout URLs mails, telephone, sms, maps, youtube, etc.
  21. 21. Web Frameworks iWebKit, iUI, jQTouch Sencha Touch 2010 Q4: JQuery mobile framework
  22. 22. Sencha Touch MIT License GPL Dual License declarative + JQuery programmatically focus on iPhone aims at cross platform simple complex See also iWebKit, iUI, jQTouch, JQuery Mobile (2010 Q3)
  23. 23. development easy effort known technology + processes monetization bad for user experience experience fancy UI possible, but platform specific hardware very limited offline generally possible
  24. 24. hybrid apps
  25. 25. Request Interception demo
  26. 26. MIT License See also QuickConnect, Big5 (discontinued)
  27. 27. development as with web effort known technology + processes monetization app stores experience as with web hardware mostly accessible offline as with web
  28. 28. interpreted apps
  29. 29. – HTML & CSS =
  30. 30. Apache 2 License JS programmatically native controls iPhone, iPad, Android BlackBerry (soon)
  31. 31. demo
  32. 32. MonoTouch Rhodes starts at 399 USD MIT License .net runtime ruby C/S on the device iOS only iPhone, Windows Mobile 6, BlackBerry, Symbian and Android
  33. 33. Screen Flow Interpreters The aim of XXX is to screen the programmer completely out from the mobile platform itself, and transfer the entire application logic to central application server level.
  34. 34. development heavy API, but only once effort barely any tooling monetization app stores experience native hardware mostly accessible offline native
  35. 35. generated apps
  36. 36. XMLVM — A CrossCompiler
  37. 37. Java (input) public class HelloWorld { static public void main(String[] args) { System.out.println("Hello World"); } }
  38. 38. XML (model) <vm:xmlvm xmlns:vm="http://xmlvm.org" xmlns:jvm="http://xmlvm.org/jvm"> <vm:class name="HelloWorld" extends="java.lang.Object"> <vm:method name="main" isPublic="true" isStatic="true" stack="2" locals="1"> <vm:signature> <vm:return type="void" /> <vm:parameter type="java.lang.String[]" /> </vm:signature> <vm:code> <jvm:var name="args" id="0" type="java.lang.String[]" /> <jvm:getstatic class-type="java.lang.System" type="java.io.PrintStream" field="out" /> <jvm:ldc type="java.lang.String" value="Hello World" /> <jvm:invokevirtual class-type="java.io.PrintStream" method="println"> <vm:signature> <vm:return type="void" /> <vm:parameter type="java.lang.String" /> </vm:signature> </jvm:invokevirtual> <jvm:return /> </vm:code> </vm:method> </vm:class> </vm:xmlvm>
  39. 39. XSLT (generator) <xsl:template match="jvm:irem"> <xsl:text> _op2.i = _stack[--_sp].i; // Pop operand 1 _op1.i = _stack[--_sp].i; // Pop operand 2 _stack[_sp++].i = _op1.i % _op2.i; // Push remainder </xsl:text> </xsl:template> typedef union { id o; int i; float f; double d; } XMLVMElem;
  40. 40. Output + (void) main___java_lang_String_ARRAYTYPE :(NSMutableArray*)n1 { XMLVMElem _stack[2]; XMLVMElem _locals[1]; int _sp = 0; XMLVMElem _op1, _op2, _op3; int _i; for (_i = 0; _i <1; _i++) _locals[_i].o = nil; NSAutoreleasePool* _pool = [[NSAutoreleasePool alloc] init]; _locals[0].o = n1; _op1.o = [java_lang_System _GET_STATIC_java_lang_System_out]; _stack[_sp++].o = _op1.o; _stack[_sp++].o = @"Hello World"; _sp -= 2; [((java_io_PrintStream*) _stack[_sp].o) println___java_lang_String:_stack[_sp + 1].o]; [_pool release]; return; }
  41. 41. custom solution «Xpand»
  42. 42. own generator for Mobile Apps
  43. 43. demo
  44. 44. development huge one-time invest effort easy for aimed cases, easy to extend monetization app stores experience native hardware native offline native
  45. 45. cross platform ?
  46. 46. web hybrid interpreted generated development effort monetization experience hardware offline
  47. 47. another perspective
  48. 48. native own language own culture own ecosystem field skills promotion: watch avatar - the movie!
  49. 49. not-so-native economic objectives establishment “natives are endangered” promotion: watch avatar - the movie
  50. 50. twitter @HBehrens blog http://HeikoBehrens.net mail Heiko.Behrens@itemis.de xing http://www.xing.com/profile/Heiko_Behrens linkedin http://www.linkedin.com/in/HeikoBehrens

×