Android java fx-jme@jug-lugano
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Android java fx-jme@jug-lugano

  • 1,489 views
Uploaded on

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

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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,489
On Slideshare
1,479
From Embeds
10
Number of Embeds
3

Actions

Shares
Downloads
13
Comments
0
Likes
0

Embeds 10

http://www.slideshare.net 8
http://www.lmodules.com 1
http://www.linkedin.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide





































































Transcript

  • 1. ANDROID JAVAFX MOBILE (JME) Comparing mobile, Java-related technologies
  • 2. ABOUT ME
  • 3. ABOUT ME • Fabrizio.Giudici@tidalwave.it
  • 4. ABOUT ME • Fabrizio.Giudici@tidalwave.it • Developing with JME since the beginning (1999)
  • 5. ABOUT ME • Fabrizio.Giudici@tidalwave.it • Developing with JME since the beginning (1999) • Some customer project back in time, personal stuff later
  • 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. CASE STUDY
  • 8. CASE STUDY
  • 9. CASE STUDY • blueBill Mobile (bluebill.tidalwave.it/mobile)
  • 10. CASE STUDY • blueBill Mobile (bluebill.tidalwave.it/mobile) • “The field tool for birdwatchers”
  • 11. CASE STUDY • blueBill Mobile (bluebill.tidalwave.it/mobile) • “The field tool for birdwatchers” • Records geotagged bird observations
  • 12. CASE STUDY • blueBill Mobile (bluebill.tidalwave.it/mobile) • “The field tool for birdwatchers” • Records geotagged bird observations • Multimedia support coming soon
  • 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. 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. ANDROID: JAVA OR NOT?
  • 16. ANDROID: JAVA OR NOT? • For sure it’s not “Java-TM”
  • 17. ANDROID: JAVA OR NOT? • For sure it’s not “Java-TM” • Based on Harmony (Apache)
  • 18. ANDROID: JAVA OR NOT? • For sure it’s not “Java-TM” • Based on Harmony (Apache) • Java 5, same syntax, annotations, generics
  • 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. 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. 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. ANDROID: JAVA OR NOT?
  • 23. ANDROID: JAVA OR NOT? • From the developer’s perspective, lots of common ground
  • 24. ANDROID: JAVA OR NOT? • From the developer’s perspective, lots of common ground • Standard software factory (javac, ant, maven, hudson, etc...)
  • 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. 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. 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. 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. THE MISSING STUFF
  • 30. THE MISSING STUFF • Unfortunately, many model classes missing
  • 31. THE MISSING STUFF • Unfortunately, many model classes missing • BufferedImage, java.beans.Beans, Swing listeners, etc
  • 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. 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. 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. 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. THE GOOD STUFF
  • 37. THE GOOD STUFF • Database (sqlite); serialization seems to work
  • 38. THE GOOD STUFF • Database (sqlite); serialization seems to work • Excellent emulator & friends
  • 39. THE GOOD STUFF • Database (sqlite); serialization seems to work • Excellent emulator & friends • Very fast compile-deploy-debug cycle
  • 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. 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. 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. JAVAFX: JAVA OR NOT?
  • 44. JAVAFX: JAVA OR NOT? • Announced in 2007 by Sun Microsystems
  • 45. JAVAFX: JAVA OR NOT? • Announced in 2007 by Sun Microsystems • Oracle confirmed commitment
  • 46. JAVAFX: JAVA OR NOT? • Announced in 2007 by Sun Microsystems • Oracle confirmed commitment • Same bytecode, different language
  • 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. 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. 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. JAVAFX MOBILE
  • 51. JAVAFX MOBILE • JavaFX aims at being WORA, cross-client (desktop, smartphone, set-top box, etc...)
  • 52. JAVAFX MOBILE • JavaFX aims at being WORA, cross-client (desktop, smartphone, set-top box, etc...) • JavaFX Mobile stalled since 2009
  • 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. 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. 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. 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. ACTIVITIES AND INTENTS
  • 58. ACTIVITIES AND INTENTS • Standard Android message-passing integration facility
  • 59. ACTIVITIES AND INTENTS • Standard Android message-passing integration facility • Activities are actors, Intents are messages
  • 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. 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. 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. 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. 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. WHAT ABOUT JME?
  • 66. WHAT ABOUT JME? • It’s still here, even if dramatically fragmented and slow paced
  • 67. WHAT ABOUT JME? • It’s still here, even if dramatically fragmented and slow paced • Still the most ubiquitous Java-based mobile platform
  • 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. 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. 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. 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. CONCLUSION
  • 73. CONCLUSION • High chances of becoming the most ubiquitous Java-based mobile platform for the future
  • 74. CONCLUSION • High chances of becoming the most ubiquitous Java-based mobile platform for the future • blueBill Mobile hit the road with Android
  • 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. 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. 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