Android java fx-jme@jug-lugano

1,282 views

Published on

A quick, informal overview of Android compared to JavaFX for Mobile and JME.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,282
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide





































































  • Android java fx-jme@jug-lugano

    1. 1. ANDROID JAVAFX MOBILE (JME) Comparing mobile, Java-related technologies
    2. 2. ABOUT ME
    3. 3. ABOUT ME • Fabrizio.Giudici@tidalwave.it
    4. 4. ABOUT ME • Fabrizio.Giudici@tidalwave.it • Developing with JME since the beginning (1999)
    5. 5. ABOUT ME • Fabrizio.Giudici@tidalwave.it • Developing with JME since the beginning (1999) • Some customer project back in time, personal stuff later
    6. 6. ABOUT ME • Fabrizio.Giudici@tidalwave.it • Developing with JME since the beginning (1999) • Some customer project back in time, personal stuff later • Author of windRose (windrose.tidalwave.it)
    7. 7. CASE STUDY
    8. 8. CASE STUDY
    9. 9. CASE STUDY • blueBill Mobile (bluebill.tidalwave.it/mobile)
    10. 10. CASE STUDY • blueBill Mobile (bluebill.tidalwave.it/mobile) • “The field tool for birdwatchers”
    11. 11. CASE STUDY • blueBill Mobile (bluebill.tidalwave.it/mobile) • “The field tool for birdwatchers” • Records geotagged bird observations
    12. 12. CASE STUDY • blueBill Mobile (bluebill.tidalwave.it/mobile) • “The field tool for birdwatchers” • Records geotagged bird observations • Multimedia support coming soon
    13. 13. CASE STUDY • blueBill Mobile (bluebill.tidalwave.it/mobile) • “The field tool for birdwatchers” • Records geotagged bird observations • Multimedia support coming soon • Project started in 2009 with JavaFX Mobile
    14. 14. CASE STUDY • blueBill Mobile (bluebill.tidalwave.it/mobile) • “The field tool for birdwatchers” • Records geotagged bird observations • Multimedia support coming soon • Project started in 2009 with JavaFX Mobile • Started the Android version at mid-April 2009
    15. 15. ANDROID: JAVA OR NOT?
    16. 16. ANDROID: JAVA OR NOT? • For sure it’s not “Java-TM”
    17. 17. ANDROID: JAVA OR NOT? • For sure it’s not “Java-TM” • Based on Harmony (Apache)
    18. 18. ANDROID: JAVA OR NOT? • For sure it’s not “Java-TM” • Based on Harmony (Apache) • Java 5, same syntax, annotations, generics
    19. 19. ANDROID: JAVA OR NOT? • For sure it’s not “Java-TM” • Based on Harmony (Apache) • Java 5, same syntax, annotations, generics • Its own VM (Dalvik) - bytecode translated at compilation
    20. 20. ANDROID: JAVA OR NOT? • For sure it’s not “Java-TM” • Based on Harmony (Apache) • Java 5, same syntax, annotations, generics • Its own VM (Dalvik) - bytecode translated at compilation • Shares only part of the runtime libraries
    21. 21. ANDROID: JAVA OR NOT? • For sure it’s not “Java-TM” • Based on Harmony (Apache) • Java 5, same syntax, annotations, generics • Its own VM (Dalvik) - bytecode translated at compilation • Shares only part of the runtime libraries • Specific stuff for the UI (no AWT, Swing) and other things
    22. 22. ANDROID: JAVA OR NOT?
    23. 23. ANDROID: JAVA OR NOT? • From the developer’s perspective, lots of common ground
    24. 24. ANDROID: JAVA OR NOT? • From the developer’s perspective, lots of common ground • Standard software factory (javac, ant, maven, hudson, etc...)
    25. 25. ANDROID: JAVA OR NOT? • From the developer’s perspective, lots of common ground • Standard software factory (javac, ant, maven, hudson, etc...) • Can even use Scala, Groovy, JRuby, etc...
    26. 26. ANDROID: JAVA OR NOT? • From the developer’s perspective, lots of common ground • Standard software factory (javac, ant, maven, hudson, etc...) • Can even use Scala, Groovy, JRuby, etc... • http://www.assembla.com/wiki/show/scala-ide/Developing_for_Android
    27. 27. ANDROID: JAVA OR NOT? • From the developer’s perspective, lots of common ground • Standard software factory (javac, ant, maven, hudson, etc...) • Can even use Scala, Groovy, JRuby, etc... • http://www.assembla.com/wiki/show/scala-ide/Developing_for_Android • http://code.google.com/p/android-scripting/
    28. 28. ANDROID: JAVA OR NOT? • From the developer’s perspective, lots of common ground • Standard software factory (javac, ant, maven, hudson, etc...) • Can even use Scala, Groovy, JRuby, etc... • http://www.assembla.com/wiki/show/scala-ide/Developing_for_Android • http://code.google.com/p/android-scripting/ • http://groups.google.com/group/ruboto
    29. 29. THE MISSING STUFF
    30. 30. THE MISSING STUFF • Unfortunately, many model classes missing
    31. 31. THE MISSING STUFF • Unfortunately, many model classes missing • BufferedImage, java.beans.Beans, Swing listeners, etc
    32. 32. THE MISSING STUFF • Unfortunately, many model classes missing • BufferedImage, java.beans.Beans, Swing listeners, etc • Can be worked around with maven-shade-plugin or such
    33. 33. THE MISSING STUFF • Unfortunately, many model classes missing • BufferedImage, java.beans.Beans, Swing listeners, etc • Can be worked around with maven-shade-plugin or such • Stupid, stupid, stupid stubbing of emulator runtime
    34. 34. THE MISSING STUFF • Unfortunately, many model classes missing • BufferedImage, java.beans.Beans, Swing listeners, etc • Can be worked around with maven-shade-plugin or such • Stupid, stupid, stupid stubbing of emulator runtime •I can reuse existing code (even from the NetBeans Platform)
    35. 35. THE MISSING STUFF • Unfortunately, many model classes missing • BufferedImage, java.beans.Beans, Swing listeners, etc • Can be worked around with maven-shade-plugin or such • Stupid, stupid, stupid stubbing of emulator runtime •I can reuse existing code (even from the NetBeans Platform) • With some ad hoc intervention (maven-shade-plugin)
    36. 36. THE GOOD STUFF
    37. 37. THE GOOD STUFF • Database (sqlite); serialization seems to work
    38. 38. THE GOOD STUFF • Database (sqlite); serialization seems to work • Excellent emulator & friends
    39. 39. THE GOOD STUFF • Database (sqlite); serialization seems to work • Excellent emulator & friends • Very fast compile-deploy-debug cycle
    40. 40. THE GOOD STUFF • Database (sqlite); serialization seems to work • Excellent emulator & friends • Very fast compile-deploy-debug cycle • Even on the real thing
    41. 41. THE GOOD STUFF • Database (sqlite); serialization seems to work • Excellent emulator & friends • Very fast compile-deploy-debug cycle • Even on the real thing • Logging
    42. 42. THE GOOD STUFF • Database (sqlite); serialization seems to work • Excellent emulator & friends • Very fast compile-deploy-debug cycle • Even on the real thing • Logging • Automated UI testing
    43. 43. JAVAFX: JAVA OR NOT?
    44. 44. JAVAFX: JAVA OR NOT? • Announced in 2007 by Sun Microsystems
    45. 45. JAVAFX: JAVA OR NOT? • Announced in 2007 by Sun Microsystems • Oracle confirmed commitment
    46. 46. JAVAFX: JAVA OR NOT? • Announced in 2007 by Sun Microsystems • Oracle confirmed commitment • Same bytecode, different language
    47. 47. JAVAFX: JAVA OR NOT? • Announced in 2007 by Sun Microsystems • Oracle confirmed commitment • Same bytecode, different language • Mix of imperative / declarative for the UI; binding
    48. 48. JAVAFX: JAVA OR NOT? • Announced in 2007 by Sun Microsystems • Oracle confirmed commitment • Same bytecode, different language • Mix of imperative / declarative for the UI; binding • Its own compiler, ok ant and maven, no QA tools
    49. 49. JAVAFX: JAVA OR NOT? • Announced in 2007 by Sun Microsystems • Oracle confirmed commitment • Same bytecode, different language • Mix of imperative / declarative for the UI; binding • Its own compiler, ok ant and maven, no QA tools • Can be mixed with Java
    50. 50. JAVAFX MOBILE
    51. 51. JAVAFX MOBILE • JavaFX aims at being WORA, cross-client (desktop, smartphone, set-top box, etc...)
    52. 52. JAVAFX MOBILE • JavaFX aims at being WORA, cross-client (desktop, smartphone, set-top box, etc...) • JavaFX Mobile stalled since 2009
    53. 53. JAVAFX MOBILE • JavaFX aims at being WORA, cross-client (desktop, smartphone, set-top box, etc...) • JavaFX Mobile stalled since 2009 • with the exception of “feature phones”
    54. 54. JAVAFX MOBILE • JavaFX aims at being WORA, cross-client (desktop, smartphone, set-top box, etc...) • JavaFX Mobile stalled since 2009 • with the exception of “feature phones” • Runs only on a few Windows Mobile phones
    55. 55. JAVAFX MOBILE • JavaFX aims at being WORA, cross-client (desktop, smartphone, set-top box, etc...) • JavaFX Mobile stalled since 2009 • with the exception of “feature phones” • Runs only on a few Windows Mobile phones • “JavaFX player” - running on top of plain JME - is MIA
    56. 56. ARCHITECTURES • Android • JavaFX • Minimalist widgets • Rich widgets • Includes workflow model • No workflow model • Deep integration with o.s. • GCD approach • Multitasking • Multitasking, maybe • Inter-app collaboration • On your own, maybe
    57. 57. ACTIVITIES AND INTENTS
    58. 58. ACTIVITIES AND INTENTS • Standard Android message-passing integration facility
    59. 59. ACTIVITIES AND INTENTS • Standard Android message-passing integration facility • Activities are actors, Intents are messages
    60. 60. ACTIVITIES AND INTENTS • Standard Android message-passing integration facility • Activities are actors, Intents are messages • Point-to-point (classes) or sort-of publish & subscribe
    61. 61. ACTIVITIES AND INTENTS • Standard Android message-passing integration facility • Activities are actors, Intents are messages • Point-to-point (classes) or sort-of publish & subscribe • Excellent decoupling
    62. 62. ACTIVITIES AND INTENTS • Standard Android message-passing integration facility • Activities are actors, Intents are messages • Point-to-point (classes) or sort-of publish & subscribe • Excellent decoupling • Inter-application integration
    63. 63. ACTIVITIES AND INTENTS • Standard Android message-passing integration facility • Activities are actors, Intents are messages • Point-to-point (classes) or sort-of publish & subscribe • Excellent decoupling • Inter-application integration • Bound to the platform UI standards
    64. 64. DEPLOYMENT • The Android Market is the default deployment target • Not mandatory: you can distribute binaries on your own • Really behind Apple’s AppStore for developers • Basically not accessible from the desktop • Almost no analytics, uni-directional feedback, etc... • Automated trouble reports recently introduced
    65. 65. WHAT ABOUT JME?
    66. 66. WHAT ABOUT JME? • It’s still here, even if dramatically fragmented and slow paced
    67. 67. WHAT ABOUT JME? • It’s still here, even if dramatically fragmented and slow paced • Still the most ubiquitous Java-based mobile platform
    68. 68. WHAT ABOUT JME? • It’s still here, even if dramatically fragmented and slow paced • Still the most ubiquitous Java-based mobile platform • Will almost surely stay there (e.g. Nokia)
    69. 69. WHAT ABOUT JME? • It’s still here, even if dramatically fragmented and slow paced • Still the most ubiquitous Java-based mobile platform • Will almost surely stay there (e.g. Nokia) • USA vs Europe vs rest-of-the-world
    70. 70. WHAT ABOUT JME? • It’s still here, even if dramatically fragmented and slow paced • Still the most ubiquitous Java-based mobile platform • Will almost surely stay there (e.g. Nokia) • USA vs Europe vs rest-of-the-world • Challenge: cross-technology portability
    71. 71. WHAT ABOUT JME? • It’s still here, even if dramatically fragmented and slow paced • Still the most ubiquitous Java-based mobile platform • Will almost surely stay there (e.g. Nokia) • USA vs Europe vs rest-of-the-world • Challenge: cross-technology portability • Biggest issue: Java 1.3(!)
    72. 72. CONCLUSION
    73. 73. CONCLUSION • High chances of becoming the most ubiquitous Java-based mobile platform for the future
    74. 74. CONCLUSION • High chances of becoming the most ubiquitous Java-based mobile platform for the future • blueBill Mobile hit the road with Android
    75. 75. CONCLUSION • High chances of becoming the most ubiquitous Java-based mobile platform for the future • blueBill Mobile hit the road with Android • Android is highly productive
    76. 76. CONCLUSION • High chances of becoming the most ubiquitous Java-based mobile platform for the future • blueBill Mobile hit the road with Android • Android is highly productive • Some bad stuff (int vs enums, etc...)
    77. 77. CONCLUSION • High chances of becoming the most ubiquitous Java-based mobile platform for the future • blueBill Mobile hit the road with Android • Android is highly productive • Some bad stuff (int vs enums, etc...) • You can work around that

    ×