SlideShare a Scribd company logo
Unifying mobile development
Mobile platforms
Windows Mobile Very Closed Main language: Visual C++ Supported developing: Visual Basic .NET ASP.NET Supported devices: many phones Company behind: Microsoft
BlackBerry Very Closed Main language: Java (J2ME) + proprietary extensions Supported devices: BlackBerry Company behind: RIM
iPhone Very Closed Proprietary marketing model Based on BSD + iPhone Framework Main language: Objective C Unofficial gcc based SDK available Device: iPhone (1 model) Company behind: Apple
Symbian S60 Proprietary, but open for development Based on Symbian Main language: Symbian C++ Supported frameworks: Open C (Posix porting layer) Java (J2ME) Python Adobe Flash Lite / Web Runtime Supported devices: many phones Company behind: Nokia
Android Free & Open? Not known jet! Based on Linux + Android runtime GUI Toolkits: Android Language: Java only Written from scratch Supported devices: emulator + HTC (announced) Company behind: Google + Open Handset Alliance
Maemo/ITOS 98 % Free & Open Based on Linux, DBus and X11 GUI Toolkits: GTK/hildon, QT (soon) Main languages: C, Python, C++ Based on Debian (forked) .deb based packaging Supported device: n810 (1 model) Company behind: Nokia
OpenMoko 100 % Free & Open Based on Linux, DBus and X11 GUI Toolkits: GTK, QT, EFL Main languages: C, Python Based on OpenEmbedded .ipk based packaging Device: Neo freerunner (1 model) Company behind: FIC/OpenMoko
Biggest problems in mobile development
Problem 1: Too many restrictions Only small control over the system Often only limited APIs are available Features are locked, signing processes are forced The core components are not replaceable Free platforms change this:
Problem 2: Too many platforms Large number of different platforms Few standards for cross platform development J2ME HTML/Web Applications J2ME often relies on proprietary extensions Some platforms cover only one device solution: Cross platform development standards Or: Focus on widespreaded platforms
Problem 3: Different development approach Experienced developers want to reuse their knowledge Companies don't want to hire additional staff for mobile development Development Environments should be the same in mobile and desktop development Applications/frameworks should be reused Multi tier applications should use a homogeneous software stack if possible Solved by:
Problem 3: Different development approach Experienced developers want to reuse their knowledge Companies don't want to hire additional staff for mobile development Development Environments should be the same in mobile and desktop development Applications/frameworks should be reused Multi tier applications should use a homogeneous software stack if possible Solved by: For a small group of target developers, only!
What's wrong with J2ME? Targets much of the problems, but .. Has too much restrictions Differs to much from usual Java Completely different APIs No code reuse Even if it is standardized: Every manufacturer has different implementations Applications have to be device specific Not powerful enough for much application types
What's about Android? Targets much of the problems ... has only few restrictions uses real Java promises wide availability still differs from usual Java special APIs code reuse only below the GUI is not standardized is not designed for integration in other platforms does not integrate other approaches ... but ...
What's about Maemo & OpenMoko? They do a lot of things right ... eliminate restrictions use real desktop toolkits each platform has only one device no API standardization (between those platforms) focus only on a very special developer community ... but ...
What's about QT? QT has the chance to become the solution! Good, powerful Toolkit Wide availability Windows, Windows Mobile Linux, OpenMoko Good Java bindings: Jambi Acquired by Nokia Soon supported on Symbian and Maemo
What is jalimo? Project to bring free full Java to mobile and embedded platforms. Composition and maintainment of a complete solution stack for its target platforms. Support for the development lifecycle to target mobile devices. Current targets: maemo, OpenMoko No additional mobile platform! No additional JVM! What is jalimo not:
Why we are doing jalimo? Small devices have special Java requirements Integration in mobile windowing systems Most free linux mobile distributions are not aware of Java Java developers need special support when they target Linux mobile devices Java developers need a maintained platform to rely on – especially commercial ones
Why we are doing jalimo? Tarent has employed 56 people (~40 Java developer) Most of our projects use java on the server side One technology among our applications! Use the same staff for mobile and server side development! We want:
Why we are doing jalimo? FREEDOM and FUN!
Components we use Mostly J2SE 1.5 focused Different alternatives for different requirements The goal is to add more alternatives Focus: CacaoJVM, GNU Classpath, Eclipse SWT Also: jamvm, swing, java-gnome, midpath Also: Mysaifu JVM + eSWT on Windows Mobile Additional libraries: java-dbus, scio (more coming) Toolchain support: OpenEmbedded, maven-pkg-plugin
Parts GUI Runtime Build Plattform Cacao JVM JamVM GNU Classpath OpenJDK SWT AWT/Swing java-gnome MIDPath maven packaging plugin OpenEmbedded Eclipse maemo ...?... openmoko ......
So, what is possible? Run nearly all Java 1.5 applications on maemo and OpenMoko Choose between SWT, Swing or java-gnome GUI Run J2ME applications Integrate into the target system, using dbus Consume web services using scio Package your application as .deb or .ipk using maven Porting our stack to every Linux Embedded platform, very fast
OpenEmbedded Toolchain OpenEmbedded infrastructure self-hosting toolchain builds jalimo packages for arbitrary distributions and hardware. From a single source! OpenEmbedded build recipes „swt“, „dbus-java“, ... in OpenEmbedded upstream and Jalimo svn-overlay Repositories public repositories for maemo and OpenMoko Integration in OpenMoko, Angstroem, ...
maven packaging plugin Maven2 is currently the mainstream build tool for Java Maven allows dependency definition at artifact (.jar-file) level Packages Maven2 projects for specific distributions On the fly dependency translation maven dependencies => platform dependencies Supported Platforms Maemo Chinook (.deb) OpenMoko (.ipk) Debian (.deb)
What we are missing most? A VM which is as fast as cacao with the startup of jamvm Debugging support (JVMTI) Really fast Swing implementation for OpenMoko More free phones!
What we are missing most? A VM which is as fast as cacao with the startup of jamvm Debugging support (JVMTI) Really fast Swing implementation for OpenMoko More free phones!
JIT-Cache Robert Schuster implemented caching of native code for the CacaoJVM (will be released soon) Allows fast startup of applications Integration into the build process using Qemu: precompiled binaries
Small goals More library code and integration Integrate SUN's Swing implementation Attract more developers Package the complete Eclipse RCP/eRCP Support QT-Jambi More applications Big goals (whishes) Port Android APIs to other platforms SWT implementations for Android, iPhone Get additional VMs e.g. for Symbian S60
Resources jalimo.org Documentation of how to install binary packages for Maemo & OpenMoko Simple development & packaging tutorial mvn-pkg-plugin.evolvis.org: Project site and documentation (examples!) for packaging plugin
Thank you! CC-BY-SA 3.0 or GNU FDL 1.2 or, at your option, any later version.

More Related Content

What's hot (20)

PPT
Titanium Meetup Deck
sschwarzhoff
 
PDF
Cross-platform development frameworks
Carlo Bernaschina
 
PPTX
Getting started with coding for Jolla Sailfish OS. 29 Mar 2014, Tampere, Finland
Artem Marchenko
 
PPTX
PhoneGap @ LDNUG
Matt Lacey
 
PDF
(Ebook pdf) java programming language basics
Raffaella D'angelo
 
PDF
J introtojava1-pdf
Emmanuel Alimpolos
 
PPT
OSCON Titanium Tutorial
Kevin Whinnery
 
PPT
What's new in p2 (2009)?
Pascal Rapicault
 
PPTX
Codename one
Software Infrastructure
 
PDF
Videogram - Building a product with Sencha Touch
Alexander Wilhelm
 
PPTX
Why java is important in programming language?
NexSoftsys
 
ODP
Lotusphere 2011 Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
Ryan Baxter
 
PDF
PHP Frameworks That Will Woo-Trick Your Web Application Development in 2019
Elsner Technologies Pvt Ltd
 
PPTX
Java Intro
Nazmul Hasan Rupok
 
PDF
iOS Automation Frameworks evaluation
Serghei Moret
 
PPTX
Develop android application with mono for android
Nicko Satria Consulting
 
PPTX
Java the reason behind its never ending demand
Deepika Chaudhary
 
PPTX
Hybrid Mobile Applications
Ruwan Ranganath
 
PPTX
Training on Core java | PPT Presentation | Shravan Sanidhya
Shravan Sanidhya
 
PDF
Netbeans gui tutorial
stephan EL'wiin Shaarawy
 
Titanium Meetup Deck
sschwarzhoff
 
Cross-platform development frameworks
Carlo Bernaschina
 
Getting started with coding for Jolla Sailfish OS. 29 Mar 2014, Tampere, Finland
Artem Marchenko
 
PhoneGap @ LDNUG
Matt Lacey
 
(Ebook pdf) java programming language basics
Raffaella D'angelo
 
J introtojava1-pdf
Emmanuel Alimpolos
 
OSCON Titanium Tutorial
Kevin Whinnery
 
What's new in p2 (2009)?
Pascal Rapicault
 
Videogram - Building a product with Sencha Touch
Alexander Wilhelm
 
Why java is important in programming language?
NexSoftsys
 
Lotusphere 2011 Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
Ryan Baxter
 
PHP Frameworks That Will Woo-Trick Your Web Application Development in 2019
Elsner Technologies Pvt Ltd
 
Java Intro
Nazmul Hasan Rupok
 
iOS Automation Frameworks evaluation
Serghei Moret
 
Develop android application with mono for android
Nicko Satria Consulting
 
Java the reason behind its never ending demand
Deepika Chaudhary
 
Hybrid Mobile Applications
Ruwan Ranganath
 
Training on Core java | PPT Presentation | Shravan Sanidhya
Shravan Sanidhya
 
Netbeans gui tutorial
stephan EL'wiin Shaarawy
 

Similar to Jalimo Slides Linuxtag2008 (20)

ODP
Jalimo Slides Linuxtag2007 (English)
smancke
 
PDF
Mobile Developers Guide To The Galaxy
Avenga Germany GmbH
 
PDF
Mobile Developer's Guide To The Galaxy Edition 2
Avenga Germany GmbH
 
PDF
Mobile Developer's Guide To The Galaxy Vol.7
Marco Tabor
 
PDF
How Android is different from other systems – An exploration of the design de...
IndicThreads
 
PPTX
Android application development
Fahad A. Shaikh
 
PDF
Mobile Developers Guide To The Galaxy Vol.6
Marco Tabor
 
PDF
Mobile Developer's Guide To The Galaxy No. 9
Marco Tabor
 
PPTX
Android before getting started
Ahsanul Karim
 
PPT
Modern mobile development overview
Dima Maleev
 
PPTX
MWLUG - Universal Java
Philippe Riand
 
PDF
Mobile Developer's Guide To The Galaxy, 5th edition
Marco Tabor
 
PDF
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
Vando Batista
 
KEY
Android java fx-jme@jug-lugano
Fabrizio Giudici
 
PDF
Introduction to android
krishnastudent88
 
PDF
Google Android Naver 1212
Yoojoo Jang
 
ODP
Java ME Open Source
guest63b060
 
PPTX
Why Java
Kiki Ahmadi
 
PPT
Mobile Software Development
Sachin Palewar
 
PDF
The State of Java under Oracle at JCertif 2011
Arun Gupta
 
Jalimo Slides Linuxtag2007 (English)
smancke
 
Mobile Developers Guide To The Galaxy
Avenga Germany GmbH
 
Mobile Developer's Guide To The Galaxy Edition 2
Avenga Germany GmbH
 
Mobile Developer's Guide To The Galaxy Vol.7
Marco Tabor
 
How Android is different from other systems – An exploration of the design de...
IndicThreads
 
Android application development
Fahad A. Shaikh
 
Mobile Developers Guide To The Galaxy Vol.6
Marco Tabor
 
Mobile Developer's Guide To The Galaxy No. 9
Marco Tabor
 
Android before getting started
Ahsanul Karim
 
Modern mobile development overview
Dima Maleev
 
MWLUG - Universal Java
Philippe Riand
 
Mobile Developer's Guide To The Galaxy, 5th edition
Marco Tabor
 
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
Vando Batista
 
Android java fx-jme@jug-lugano
Fabrizio Giudici
 
Introduction to android
krishnastudent88
 
Google Android Naver 1212
Yoojoo Jang
 
Java ME Open Source
guest63b060
 
Why Java
Kiki Ahmadi
 
Mobile Software Development
Sachin Palewar
 
The State of Java under Oracle at JCertif 2011
Arun Gupta
 
Ad

Recently uploaded (20)

PPTX
2025 July - ABM for B2B in Hubspot - Demand Gen HUG.pptx
mjenkins13
 
PDF
Van Aroma IFEAT - Clove Oils - Socio Economic Report .pdf
VanAroma
 
PDF
Azumah Resources reaffirms commitment to Ghana amid dispute with Engineers & ...
Kweku Zurek
 
PDF
SUMMER SAFETY FLYER SPECIAL Q3 - 16 Pages
One Source Industrial Supplies
 
PPTX
Hackathon - Technology - Idea Submission Template -HackerEarth.pptx
nanster236
 
PDF
DIM_COURSE_3_BLOCK_3 (1) compentation.pdf
mohamedismail977252
 
PPTX
6 Critical Factors to Evaluate Before Starting a Retail Business
RUPAL AGARWAL
 
PDF
LDM Recording for Yogi Goddess Projects Summer 2025
LDMMia GrandMaster
 
PDF
Dr. Enrique Segura Ense Group - A Philanthropist And Entrepreneur
Dr. Enrique Segura Ense Group
 
PDF
Connecting Startups to Strategic Global VC Opportunities.pdf
Google
 
PPTX
LESSON2.Uniquesellingpropositionandvalueproposition-180725234133.pptx
dioselasolidor1
 
PDF
MSOL's corporate profile materials_______
Management Soluions co.,ltd.
 
PPTX
Understanding ISO 42001 Standard: AI Governance & Compliance Insights from Ad...
Adeptiv AI
 
PDF
LEWIONICS SCO Company Profile UAE JULY 2025
Natalie Lewes
 
PDF
Buy Boys Long Sleeve T-shirts at Port 213
Port 213
 
DOCX
How to Choose the Best Dildo for Men A Complete Buying Guide.docx
Glas Toy
 
PDF
Thane Stenner - An Industry Expert
Thane Stenner
 
PPTX
Drive Operational Excellence with Proven Continuous Improvement Strategies
Group50 Consulting
 
PDF
Redefining Punjab’s Growth Story_ Mohit Bansal and the Human-Centric Vision o...
Mohit Bansal GMI
 
PDF
David Badaro Explains 5 Steps to Solving Complex Business Issues
David Badaro
 
2025 July - ABM for B2B in Hubspot - Demand Gen HUG.pptx
mjenkins13
 
Van Aroma IFEAT - Clove Oils - Socio Economic Report .pdf
VanAroma
 
Azumah Resources reaffirms commitment to Ghana amid dispute with Engineers & ...
Kweku Zurek
 
SUMMER SAFETY FLYER SPECIAL Q3 - 16 Pages
One Source Industrial Supplies
 
Hackathon - Technology - Idea Submission Template -HackerEarth.pptx
nanster236
 
DIM_COURSE_3_BLOCK_3 (1) compentation.pdf
mohamedismail977252
 
6 Critical Factors to Evaluate Before Starting a Retail Business
RUPAL AGARWAL
 
LDM Recording for Yogi Goddess Projects Summer 2025
LDMMia GrandMaster
 
Dr. Enrique Segura Ense Group - A Philanthropist And Entrepreneur
Dr. Enrique Segura Ense Group
 
Connecting Startups to Strategic Global VC Opportunities.pdf
Google
 
LESSON2.Uniquesellingpropositionandvalueproposition-180725234133.pptx
dioselasolidor1
 
MSOL's corporate profile materials_______
Management Soluions co.,ltd.
 
Understanding ISO 42001 Standard: AI Governance & Compliance Insights from Ad...
Adeptiv AI
 
LEWIONICS SCO Company Profile UAE JULY 2025
Natalie Lewes
 
Buy Boys Long Sleeve T-shirts at Port 213
Port 213
 
How to Choose the Best Dildo for Men A Complete Buying Guide.docx
Glas Toy
 
Thane Stenner - An Industry Expert
Thane Stenner
 
Drive Operational Excellence with Proven Continuous Improvement Strategies
Group50 Consulting
 
Redefining Punjab’s Growth Story_ Mohit Bansal and the Human-Centric Vision o...
Mohit Bansal GMI
 
David Badaro Explains 5 Steps to Solving Complex Business Issues
David Badaro
 
Ad

Jalimo Slides Linuxtag2008

  • 3. Windows Mobile Very Closed Main language: Visual C++ Supported developing: Visual Basic .NET ASP.NET Supported devices: many phones Company behind: Microsoft
  • 4. BlackBerry Very Closed Main language: Java (J2ME) + proprietary extensions Supported devices: BlackBerry Company behind: RIM
  • 5. iPhone Very Closed Proprietary marketing model Based on BSD + iPhone Framework Main language: Objective C Unofficial gcc based SDK available Device: iPhone (1 model) Company behind: Apple
  • 6. Symbian S60 Proprietary, but open for development Based on Symbian Main language: Symbian C++ Supported frameworks: Open C (Posix porting layer) Java (J2ME) Python Adobe Flash Lite / Web Runtime Supported devices: many phones Company behind: Nokia
  • 7. Android Free & Open? Not known jet! Based on Linux + Android runtime GUI Toolkits: Android Language: Java only Written from scratch Supported devices: emulator + HTC (announced) Company behind: Google + Open Handset Alliance
  • 8. Maemo/ITOS 98 % Free & Open Based on Linux, DBus and X11 GUI Toolkits: GTK/hildon, QT (soon) Main languages: C, Python, C++ Based on Debian (forked) .deb based packaging Supported device: n810 (1 model) Company behind: Nokia
  • 9. OpenMoko 100 % Free & Open Based on Linux, DBus and X11 GUI Toolkits: GTK, QT, EFL Main languages: C, Python Based on OpenEmbedded .ipk based packaging Device: Neo freerunner (1 model) Company behind: FIC/OpenMoko
  • 10. Biggest problems in mobile development
  • 11. Problem 1: Too many restrictions Only small control over the system Often only limited APIs are available Features are locked, signing processes are forced The core components are not replaceable Free platforms change this:
  • 12. Problem 2: Too many platforms Large number of different platforms Few standards for cross platform development J2ME HTML/Web Applications J2ME often relies on proprietary extensions Some platforms cover only one device solution: Cross platform development standards Or: Focus on widespreaded platforms
  • 13. Problem 3: Different development approach Experienced developers want to reuse their knowledge Companies don't want to hire additional staff for mobile development Development Environments should be the same in mobile and desktop development Applications/frameworks should be reused Multi tier applications should use a homogeneous software stack if possible Solved by:
  • 14. Problem 3: Different development approach Experienced developers want to reuse their knowledge Companies don't want to hire additional staff for mobile development Development Environments should be the same in mobile and desktop development Applications/frameworks should be reused Multi tier applications should use a homogeneous software stack if possible Solved by: For a small group of target developers, only!
  • 15. What's wrong with J2ME? Targets much of the problems, but .. Has too much restrictions Differs to much from usual Java Completely different APIs No code reuse Even if it is standardized: Every manufacturer has different implementations Applications have to be device specific Not powerful enough for much application types
  • 16. What's about Android? Targets much of the problems ... has only few restrictions uses real Java promises wide availability still differs from usual Java special APIs code reuse only below the GUI is not standardized is not designed for integration in other platforms does not integrate other approaches ... but ...
  • 17. What's about Maemo & OpenMoko? They do a lot of things right ... eliminate restrictions use real desktop toolkits each platform has only one device no API standardization (between those platforms) focus only on a very special developer community ... but ...
  • 18. What's about QT? QT has the chance to become the solution! Good, powerful Toolkit Wide availability Windows, Windows Mobile Linux, OpenMoko Good Java bindings: Jambi Acquired by Nokia Soon supported on Symbian and Maemo
  • 19. What is jalimo? Project to bring free full Java to mobile and embedded platforms. Composition and maintainment of a complete solution stack for its target platforms. Support for the development lifecycle to target mobile devices. Current targets: maemo, OpenMoko No additional mobile platform! No additional JVM! What is jalimo not:
  • 20. Why we are doing jalimo? Small devices have special Java requirements Integration in mobile windowing systems Most free linux mobile distributions are not aware of Java Java developers need special support when they target Linux mobile devices Java developers need a maintained platform to rely on – especially commercial ones
  • 21. Why we are doing jalimo? Tarent has employed 56 people (~40 Java developer) Most of our projects use java on the server side One technology among our applications! Use the same staff for mobile and server side development! We want:
  • 22. Why we are doing jalimo? FREEDOM and FUN!
  • 23. Components we use Mostly J2SE 1.5 focused Different alternatives for different requirements The goal is to add more alternatives Focus: CacaoJVM, GNU Classpath, Eclipse SWT Also: jamvm, swing, java-gnome, midpath Also: Mysaifu JVM + eSWT on Windows Mobile Additional libraries: java-dbus, scio (more coming) Toolchain support: OpenEmbedded, maven-pkg-plugin
  • 24. Parts GUI Runtime Build Plattform Cacao JVM JamVM GNU Classpath OpenJDK SWT AWT/Swing java-gnome MIDPath maven packaging plugin OpenEmbedded Eclipse maemo ...?... openmoko ......
  • 25. So, what is possible? Run nearly all Java 1.5 applications on maemo and OpenMoko Choose between SWT, Swing or java-gnome GUI Run J2ME applications Integrate into the target system, using dbus Consume web services using scio Package your application as .deb or .ipk using maven Porting our stack to every Linux Embedded platform, very fast
  • 26. OpenEmbedded Toolchain OpenEmbedded infrastructure self-hosting toolchain builds jalimo packages for arbitrary distributions and hardware. From a single source! OpenEmbedded build recipes „swt“, „dbus-java“, ... in OpenEmbedded upstream and Jalimo svn-overlay Repositories public repositories for maemo and OpenMoko Integration in OpenMoko, Angstroem, ...
  • 27. maven packaging plugin Maven2 is currently the mainstream build tool for Java Maven allows dependency definition at artifact (.jar-file) level Packages Maven2 projects for specific distributions On the fly dependency translation maven dependencies => platform dependencies Supported Platforms Maemo Chinook (.deb) OpenMoko (.ipk) Debian (.deb)
  • 28. What we are missing most? A VM which is as fast as cacao with the startup of jamvm Debugging support (JVMTI) Really fast Swing implementation for OpenMoko More free phones!
  • 29. What we are missing most? A VM which is as fast as cacao with the startup of jamvm Debugging support (JVMTI) Really fast Swing implementation for OpenMoko More free phones!
  • 30. JIT-Cache Robert Schuster implemented caching of native code for the CacaoJVM (will be released soon) Allows fast startup of applications Integration into the build process using Qemu: precompiled binaries
  • 31. Small goals More library code and integration Integrate SUN's Swing implementation Attract more developers Package the complete Eclipse RCP/eRCP Support QT-Jambi More applications Big goals (whishes) Port Android APIs to other platforms SWT implementations for Android, iPhone Get additional VMs e.g. for Symbian S60
  • 32. Resources jalimo.org Documentation of how to install binary packages for Maemo & OpenMoko Simple development & packaging tutorial mvn-pkg-plugin.evolvis.org: Project site and documentation (examples!) for packaging plugin
  • 33. Thank you! CC-BY-SA 3.0 or GNU FDL 1.2 or, at your option, any later version.