Docstoc

ijug-iphone-dev-brief

Document Sample
ijug-iphone-dev-brief Powered By Docstoc
					            Java iPhone
          Development Brief




Andrew Zahra
iJUG March 2009           Sharing Ideas
                      Background


  Java available on most mobile phone handsets today in the form of
   J2ME (Java 2 Micro Edition)

  iPhone released with the following limitation in its developer
   license agreement:
An Application may not itself install or launch other executable code by
any means, including without limitation through the use of a plug-in
architecture, calling other frameworks, other APIs or otherwise. No
interpreted code may be downloaded and used in an Application
except for code that is interpreted and run by Apple's Published APIs
and built-in interpreter(s).
                    Rationale


  Why no interpreted code? Speculation follows…
       Performance
       Maximise end user experience by forcing
        developers to use “native” tools
       Push developers to use Macs [Developing for OS
        X is very similar to iPhone]
                       Options


  Jailbreak your iPhone (limited target market for your
  software)

  Use a Java native compiler
                   Javaground


  Javaground are the first company to release a J2ME to
  native iPhone code compiler

  Allows any J2ME application to be targeted to multiple
  handsets including iPhone

  Licensing is in the region US$10k OR zero upfront and 15%
  revenue share
              Javaground Porting



  Common
Source Code
                         J2ME


  Pros
    Broad use in mobile industry
    Many dev tools available

  Cons
    Does not look native on iphone (may not matter depending on
     your app)
    J2ME is not as rich as full Java JDK. More work required per
     app.
    Platform may not provide access to underlying iPhone features
     to differentiate your app.
Web Apps
         “Native” iPhone Dev


  Uses Objective C and C/C++ languages

  Rich dev environment (but Mac only)

  Fastest way to get an app up and running and looking like it
  belongs on the iPhone