SlideShare a Scribd company logo
Java ME
User Interface Development




User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Agenda


• Netbeans support for High level UI
  – Visual Designer
  – Fragmentation
  – Localization Support
• Graphics APIs CLDC based
  – LCDUI
  – Mobile 3D Graphics
  – SVG Support
• References

    User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
User Interface APIs - Today




    User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Netbeans Mobile Visual Designer
High Level UI

   • Flow Designer
      – Map out navigation
      – Visually represents the different paths that can be
        taken between your application’s different screens
      – You can add or remove screens, as well as the
        transitions between them
   • Screen Designer
      – Simulates how the screen will appear on a real device
   • Corresponding code automatically generated
      – Hint: Plan out your entire application flow before diving
        into the code manually




     User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Layout with Mobile Visual Designer

  • The Component Palette
     – Screens
     – Commands
     – Form Items
     – Elements
     – Resources
     – Custom Components
  • Special Components
     – Splash Screen
     – Table
     – Wait Screen
  • Inspector and Properties Windows


     User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Netbeans Mobile Visual Designer




    User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Demo


  • Visual Designer Demonstration:
     – creating Mobile Splash Screens
     – using the TableItem




   User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Optimize The Application For Different Devices -
Configuration Manager



 • Writing a single application that will run on disparate
   platforms can be challenging:
    – screen size
    – free memory
    – software issues
    – available API’s
 • One configuration for each distribution JAR file you plan
   on building for your project
 • Existing configuration template
 • Customizable




      User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Example of APIs support on Nokia
Devices




    User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Multiple Device Configurations




     User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Optimize The Application For Different Devices -
Resource Locations


 • Handling Project Resources
    – Use Different Resource Locations and match the resources
      to the configurations in Libraries & Resource panel
            /res/small/splashScreen.png
            /res/medium/splashScreen.png
            /res/large/splashScreen.png
        Image splashScreen = Image.createImage("splashScreen.png");

    – Using Configuration-Specific Code Blocks and Abilities




      User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Defining and Using Preprocessor
Directives


  • Using Preprocessor Directives
  • Directive Syntax and Functions
     – Identifiers
     – Variables
     – Operators
     – Expressions
  • Compilation Based on Device Platform Versioning




    User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Optimize The Application For Different Devices -
Preprocessor



 • Using the Preprocessor
    – CPP-like syntax
    – Example:
                   //#if mmedia
                       //#if nokia
                           //#if s60_ver=="1.0"
                           import com.nokia.mmapi.v1
                           //#elif s60_ver=="2.0"
                           import com.nokia.mmapi.v2
                           //#else
                           import com.nokia.mmapi.def
                           //#endif
                       //#else
                           import javax.microedition.mmapi
                       //#endif
                   //#endif



      User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Optimize The Application For Different Devices -
Preprocessor




      User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Abilities




    User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Optimize The Application For Different Users -
Localization



  • Using the Localization Support Class
     LocalizationSupport.getMessage("PROPERTY_NAME")

  • The message.properties file
     PROPERTY_NAME=My Translatable Text String

  • This technique uses the microedition.locale property of
    the phone to determine which version of the
    message.properties file should be used
  • You can force a particular region to be used
     LocalizationSupport.initLocalizationSupport("en_US")




      User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Overview of Graphics APIs


• LCDUI for MIDP
• JSR 184 - Mobile 3D Graphics API for J2ME
• JSR 226 - Scalable 2D Vector Graphics API for
  J2ME




    User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
LCDUI for MIDP - Canvas


•   Immediate mode API
•   All drawing done within a paint() callback
•   Can also draw to an off screen mutable image
•   Suited for event based interaction
•   High performance, low system overhead




      User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
LCDUI for MIDP - Game Canvas


•   Immediate mode synchronous drawing
•   Ideal for “platformer” games
•   Sprite and tiled background
•   Well suited for games
•   Only on MIDP 2.0




     User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
JSR 184 - Mobile 3D
Graphics API for J2ME


• 3D retained mode and immediate mode API
• Focus is retained mode (display list, scene
  graph)
• Defines standard file format—m3g
• Tools available to export graphics models in
  m3g format
• Easier to develop using 3D authoring tools
• Some animation support
• HW acceleration likely to be through OpenGL

     User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
JSR 184 – Mobile 3-D Graphics API

• Description:
  – Provide an efficient 3D Graphics API suitable for
    the J2ME platform, in particular CLDC/MIDP
• Key Features:
  – Scene graph API (high-level)
  – Immediate API (low-level, subset of OpenGL)
  – Importer functions for textures, meshes,
    animations, and scene hierarchies
  – Tight integration with MIDP



     User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
JSR 184 – Mobile 3-D Graphics API

• Dependencies:
   – CLDC 1.1 (requires floating point support)
• Resources:
   – http://developer.sonyericsson.com/site/global/newsande
     vents/campaigns/java_3d/p_java3d.jsp




     User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Scalable Vector Graphics


 ● W3C recommendation on vector graphics
 ● Scalable


 ● Animated


 ● Interactive


 ● Lossless


 ● Compact




     User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
JSR 226


 • SVG provides functionality handsets need
 • JSR 226 brings scalability to Java ME apps
 • JSR 226 allows creation of programmable,
   dynamic SVG content
  – User interaction
  – Real time network data (traffic, weather)
  – Location-based information
 • JSR 226 unleashes the power of Java and SVG


    User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
JSR 226
Background and motivation


• Increasing demand for mobile multimedia
  (vector graphics) applications
• Mobile devices are diverse
   • Different screen sizes
   • Want to avoid re-authoring content
• Use cases
   • Map visualization
   • Rich animations
   • Simple UI applications
   • Enterprise applications


     User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Simple SVG Application - 1

 import javax.microedition.lcdui.Canvas;
 import javax.microedition.lcdui.Graphics;
 import javax.microedition.m2g.*;

 class MapApplication extends Canvas {
         private ScalableImage myMap;
         private ScalableGraphics gc;

     public MapApplication(InputStream stream) {
                 myMap = ScalableImage.createImage(stream, null);
                 gc = ScalableGraphics.createInstance();
          }

          public void paint(Graphics g) {
                  gc.bindTarget(g);                                 //Bind Target
                  gc.render(0, 0, myMap);                           //Render SVG document
                  gc.releaseTarget();                               //Release target
          }
 }



      User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Simple SVG Application - 2

  // Create empty SVG Image, get root <svg> Element
  SVGImage myImage = SVGImage.createEmptyImage();
  Document myDoc = myImage.getDocument();
  SVGSVGElement root = (SVGSVGElement)
      myDoc.getDocumentElement();

  // Create new SVGElement
  SVGElement myRect = myDoc.createElementNS(SVGNS, "rect");

  // Set attributes and properties
  myRect.setId("button");
  myRect.setFloatTrait("x", 30.0f);
  myRect.setFloatTrait("y", 50.0f); // Also width, height
  SVGRGBColor myColor = root.createSVGRGBColor(100, 0, 0);
  myRect.setRGBColorTrait("fill", myColor);

  // Append to document
  root.appendChild(myRect);



    User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
References

 • Netbeans: http://www.netbeans.org

 • Sony-Ericsson 3D:
   http://developer.sonyericsson.com/site/global/newsandevents/campai
   gns/java_3d/p_java3d.jsp

 • JSR 184: http://jcp.org/en/jsr/detail?id=184

 • JSR 226: http://jcp.org/en/jsr/detail?id=226




    User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Java ME
User Interface Development




User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Speaker


  Edoardo Schepis
  Java ME Tech Lead at Funambol
  JMDF Founder

  email: edoardo.schepis@funambol.com
  weblog: http://www.edschepis.net
  Java Mobile Developers Forum: http://www.jmdf.org




     User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
Ad

More Related Content

What's hot (20)

Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard Thulin
Rikard Thulin
 
Magnolia CMS on Jelastic
Magnolia CMS on JelasticMagnolia CMS on Jelastic
Magnolia CMS on Jelastic
Edgar Vonk
 
WebWorks Development for BlackBerry PlayBook and Smartphones
WebWorks Development for BlackBerry PlayBook and SmartphonesWebWorks Development for BlackBerry PlayBook and Smartphones
WebWorks Development for BlackBerry PlayBook and Smartphones
Kyle McInnes
 
GWT HJUG Presentation
GWT HJUG PresentationGWT HJUG Presentation
GWT HJUG Presentation
Derrick Bowen
 
Architecture of a Modern Web App - SpringOne India
Architecture of a Modern Web App - SpringOne IndiaArchitecture of a Modern Web App - SpringOne India
Architecture of a Modern Web App - SpringOne India
Jeremy Grelle
 
Magnolia CMS 5.0 - Overview
Magnolia CMS 5.0 - OverviewMagnolia CMS 5.0 - Overview
Magnolia CMS 5.0 - Overview
Philipp Bärfuss
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologies
n_adam_stanley
 
Sencha touchonbb10 bootcamp
Sencha touchonbb10 bootcampSencha touchonbb10 bootcamp
Sencha touchonbb10 bootcamp
n_adam_stanley
 
Magnolia CMS 5.0 - Architecture
Magnolia CMS 5.0 - ArchitectureMagnolia CMS 5.0 - Architecture
Magnolia CMS 5.0 - Architecture
Philipp Bärfuss
 
B.Karthik
B.KarthikB.Karthik
B.Karthik
KARTHIK B
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!
Jonas Bandi
 
Modern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.jsModern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.js
Jonas Bandi
 
Migrating a Large AEM Project to Touch UI
Migrating a Large AEM Project to Touch UIMigrating a Large AEM Project to Touch UI
Migrating a Large AEM Project to Touch UI
Gregor Zurowski
 
AD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus DominoAD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus Domino
Stephan H. Wissel
 
AJAX vs. Flex, 2007
AJAX vs. Flex, 2007AJAX vs. Flex, 2007
AJAX vs. Flex, 2007
Evgenios Skitsanos
 
Large-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScriptLarge-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScript
Navid Ahmadi
 
Nashua Cloud .NET User Group - Basic WP8 App Dev With XAML and C#, April 2013
Nashua Cloud .NET User Group - Basic WP8 App Dev With XAML and C#, April 2013Nashua Cloud .NET User Group - Basic WP8 App Dev With XAML and C#, April 2013
Nashua Cloud .NET User Group - Basic WP8 App Dev With XAML and C#, April 2013
John Garland
 
Mozilla Project and Open Web
Mozilla Project and Open WebMozilla Project and Open Web
Mozilla Project and Open Web
Channy Yun
 
Amp by Google: The Present And Future Of Quick Content Delivery
Amp by Google: The Present And Future Of Quick Content DeliveryAmp by Google: The Present And Future Of Quick Content Delivery
Amp by Google: The Present And Future Of Quick Content Delivery
Raunak Hajela
 
新版阿尔法城背后的前端MVC实践
新版阿尔法城背后的前端MVC实践新版阿尔法城背后的前端MVC实践
新版阿尔法城背后的前端MVC实践
Dexter Yang
 
Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard Thulin
Rikard Thulin
 
Magnolia CMS on Jelastic
Magnolia CMS on JelasticMagnolia CMS on Jelastic
Magnolia CMS on Jelastic
Edgar Vonk
 
WebWorks Development for BlackBerry PlayBook and Smartphones
WebWorks Development for BlackBerry PlayBook and SmartphonesWebWorks Development for BlackBerry PlayBook and Smartphones
WebWorks Development for BlackBerry PlayBook and Smartphones
Kyle McInnes
 
GWT HJUG Presentation
GWT HJUG PresentationGWT HJUG Presentation
GWT HJUG Presentation
Derrick Bowen
 
Architecture of a Modern Web App - SpringOne India
Architecture of a Modern Web App - SpringOne IndiaArchitecture of a Modern Web App - SpringOne India
Architecture of a Modern Web App - SpringOne India
Jeremy Grelle
 
Magnolia CMS 5.0 - Overview
Magnolia CMS 5.0 - OverviewMagnolia CMS 5.0 - Overview
Magnolia CMS 5.0 - Overview
Philipp Bärfuss
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologies
n_adam_stanley
 
Sencha touchonbb10 bootcamp
Sencha touchonbb10 bootcampSencha touchonbb10 bootcamp
Sencha touchonbb10 bootcamp
n_adam_stanley
 
Magnolia CMS 5.0 - Architecture
Magnolia CMS 5.0 - ArchitectureMagnolia CMS 5.0 - Architecture
Magnolia CMS 5.0 - Architecture
Philipp Bärfuss
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!
Jonas Bandi
 
Modern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.jsModern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.js
Jonas Bandi
 
Migrating a Large AEM Project to Touch UI
Migrating a Large AEM Project to Touch UIMigrating a Large AEM Project to Touch UI
Migrating a Large AEM Project to Touch UI
Gregor Zurowski
 
AD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus DominoAD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus Domino
Stephan H. Wissel
 
Large-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScriptLarge-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScript
Navid Ahmadi
 
Nashua Cloud .NET User Group - Basic WP8 App Dev With XAML and C#, April 2013
Nashua Cloud .NET User Group - Basic WP8 App Dev With XAML and C#, April 2013Nashua Cloud .NET User Group - Basic WP8 App Dev With XAML and C#, April 2013
Nashua Cloud .NET User Group - Basic WP8 App Dev With XAML and C#, April 2013
John Garland
 
Mozilla Project and Open Web
Mozilla Project and Open WebMozilla Project and Open Web
Mozilla Project and Open Web
Channy Yun
 
Amp by Google: The Present And Future Of Quick Content Delivery
Amp by Google: The Present And Future Of Quick Content DeliveryAmp by Google: The Present And Future Of Quick Content Delivery
Amp by Google: The Present And Future Of Quick Content Delivery
Raunak Hajela
 
新版阿尔法城背后的前端MVC实践
新版阿尔法城背后的前端MVC实践新版阿尔法城背后的前端MVC实践
新版阿尔法城背后的前端MVC实践
Dexter Yang
 

Viewers also liked (15)

готовий проект 7
готовий проект 7готовий проект 7
готовий проект 7
Adel1na
 
презентация Microsoft office power point
презентация Microsoft office power pointпрезентация Microsoft office power point
презентация Microsoft office power point
Максим Чёрный
 
Lean Business and Grow
Lean Business and GrowLean Business and Grow
Lean Business and Grow
Wisnu Dewobroto
 
Scrumbuts - Italian Agile Day 2010
Scrumbuts - Italian Agile Day 2010Scrumbuts - Italian Agile Day 2010
Scrumbuts - Italian Agile Day 2010
Edoardo Schepis
 
Tutorial como hacer mapas conceptuales en bubbl.us
Tutorial como hacer mapas conceptuales en bubbl.usTutorial como hacer mapas conceptuales en bubbl.us
Tutorial como hacer mapas conceptuales en bubbl.us
TICS & Partners
 
JMDF Introduction - JMDF 2005
JMDF Introduction - JMDF 2005JMDF Introduction - JMDF 2005
JMDF Introduction - JMDF 2005
Edoardo Schepis
 
Plangere rl
Plangere rlPlangere rl
Plangere rl
cbwcbw
 
Evidencias fotográficas mapa de regiones naturales y áreas protegidas
Evidencias fotográficas mapa de regiones naturales y áreas protegidasEvidencias fotográficas mapa de regiones naturales y áreas protegidas
Evidencias fotográficas mapa de regiones naturales y áreas protegidas
Natalie Lizarraga
 
JavaME Deploy and Test - JMDF 2005
JavaME Deploy and Test - JMDF 2005JavaME Deploy and Test - JMDF 2005
JavaME Deploy and Test - JMDF 2005
Edoardo Schepis
 
El Cmaptool Herramienta de aprendizaje virtual
El Cmaptool Herramienta de aprendizaje virtualEl Cmaptool Herramienta de aprendizaje virtual
El Cmaptool Herramienta de aprendizaje virtual
guest87ccd5
 
Autores dominicanos
Autores dominicanosAutores dominicanos
Autores dominicanos
nayely santana
 
Focus Group Open Source 09.05.2011 Filippo Sorbello
Focus Group Open Source 09.05.2011 Filippo Sorbello Focus Group Open Source 09.05.2011 Filippo Sorbello
Focus Group Open Source 09.05.2011 Filippo Sorbello
Roberto Galoppini
 
Impact of employee absences in employer cost
Impact of employee absences in employer costImpact of employee absences in employer cost
Impact of employee absences in employer cost
Genalyn Patlunag
 
estructuras de almacenamiento y diferentes medios de almacenamiento de datos.
estructuras de almacenamiento y diferentes medios de almacenamiento de datos.estructuras de almacenamiento y diferentes medios de almacenamiento de datos.
estructuras de almacenamiento y diferentes medios de almacenamiento de datos.
Esther Cesar
 
готовий проект 7
готовий проект 7готовий проект 7
готовий проект 7
Adel1na
 
презентация Microsoft office power point
презентация Microsoft office power pointпрезентация Microsoft office power point
презентация Microsoft office power point
Максим Чёрный
 
Scrumbuts - Italian Agile Day 2010
Scrumbuts - Italian Agile Day 2010Scrumbuts - Italian Agile Day 2010
Scrumbuts - Italian Agile Day 2010
Edoardo Schepis
 
Tutorial como hacer mapas conceptuales en bubbl.us
Tutorial como hacer mapas conceptuales en bubbl.usTutorial como hacer mapas conceptuales en bubbl.us
Tutorial como hacer mapas conceptuales en bubbl.us
TICS & Partners
 
JMDF Introduction - JMDF 2005
JMDF Introduction - JMDF 2005JMDF Introduction - JMDF 2005
JMDF Introduction - JMDF 2005
Edoardo Schepis
 
Plangere rl
Plangere rlPlangere rl
Plangere rl
cbwcbw
 
Evidencias fotográficas mapa de regiones naturales y áreas protegidas
Evidencias fotográficas mapa de regiones naturales y áreas protegidasEvidencias fotográficas mapa de regiones naturales y áreas protegidas
Evidencias fotográficas mapa de regiones naturales y áreas protegidas
Natalie Lizarraga
 
JavaME Deploy and Test - JMDF 2005
JavaME Deploy and Test - JMDF 2005JavaME Deploy and Test - JMDF 2005
JavaME Deploy and Test - JMDF 2005
Edoardo Schepis
 
El Cmaptool Herramienta de aprendizaje virtual
El Cmaptool Herramienta de aprendizaje virtualEl Cmaptool Herramienta de aprendizaje virtual
El Cmaptool Herramienta de aprendizaje virtual
guest87ccd5
 
Focus Group Open Source 09.05.2011 Filippo Sorbello
Focus Group Open Source 09.05.2011 Filippo Sorbello Focus Group Open Source 09.05.2011 Filippo Sorbello
Focus Group Open Source 09.05.2011 Filippo Sorbello
Roberto Galoppini
 
Impact of employee absences in employer cost
Impact of employee absences in employer costImpact of employee absences in employer cost
Impact of employee absences in employer cost
Genalyn Patlunag
 
estructuras de almacenamiento y diferentes medios de almacenamiento de datos.
estructuras de almacenamiento y diferentes medios de almacenamiento de datos.estructuras de almacenamiento y diferentes medios de almacenamiento de datos.
estructuras de almacenamiento y diferentes medios de almacenamiento de datos.
Esther Cesar
 
Ad

Similar to JavaME UI - JMDF 2007 (20)

dan_labrecque_web_resume
dan_labrecque_web_resumedan_labrecque_web_resume
dan_labrecque_web_resume
Dan Labrecque
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web Application
Yakov Fain
 
JavaME Development Workflow - JMDF 2007
JavaME Development Workflow - JMDF 2007JavaME Development Workflow - JMDF 2007
JavaME Development Workflow - JMDF 2007
Edoardo Schepis
 
MyMobileWeb Certification Part I
MyMobileWeb Certification Part IMyMobileWeb Certification Part I
MyMobileWeb Certification Part I
crdlc
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010
Patrick Lauke
 
Cloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal AppsCloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal Apps
Shahed Chowdhuri
 
Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)
Moch Nasrullah Rahmani
 
2011 08-24 mobile web app
2011 08-24  mobile web app2011 08-24  mobile web app
2011 08-24 mobile web app
Sholto Maud
 
Silverlight
SilverlightSilverlight
Silverlight
pradeepfdo
 
Silver Light for every one by Subodh
Silver Light for every one by SubodhSilver Light for every one by Subodh
Silver Light for every one by Subodh
Subodh Pushpak
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
Ivano Malavolta
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...
LetsConnect
 
Building Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on AzureBuilding Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on Azure
Brian Lyttle
 
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Jeremy Likness
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
Toma Velev
 
Software Engineering 2014
Software Engineering 2014Software Engineering 2014
Software Engineering 2014
Shuichi Kurabayashi
 
Android Introduction
Android IntroductionAndroid Introduction
Android Introduction
aswapnal
 
Overview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptxOverview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptx
debasish duarah
 
Dojo (QCon 2007 Slides)
Dojo (QCon 2007 Slides)Dojo (QCon 2007 Slides)
Dojo (QCon 2007 Slides)
Eugene Lazutkin
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
Carlo Bernaschina
 
dan_labrecque_web_resume
dan_labrecque_web_resumedan_labrecque_web_resume
dan_labrecque_web_resume
Dan Labrecque
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web Application
Yakov Fain
 
JavaME Development Workflow - JMDF 2007
JavaME Development Workflow - JMDF 2007JavaME Development Workflow - JMDF 2007
JavaME Development Workflow - JMDF 2007
Edoardo Schepis
 
MyMobileWeb Certification Part I
MyMobileWeb Certification Part IMyMobileWeb Certification Part I
MyMobileWeb Certification Part I
crdlc
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010
Patrick Lauke
 
Cloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal AppsCloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal Apps
Shahed Chowdhuri
 
2011 08-24 mobile web app
2011 08-24  mobile web app2011 08-24  mobile web app
2011 08-24 mobile web app
Sholto Maud
 
Silver Light for every one by Subodh
Silver Light for every one by SubodhSilver Light for every one by Subodh
Silver Light for every one by Subodh
Subodh Pushpak
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
Ivano Malavolta
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...
LetsConnect
 
Building Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on AzureBuilding Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on Azure
Brian Lyttle
 
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Jeremy Likness
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
Toma Velev
 
Android Introduction
Android IntroductionAndroid Introduction
Android Introduction
aswapnal
 
Overview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptxOverview of Adroid Architecture.pptx
Overview of Adroid Architecture.pptx
debasish duarah
 
Ad

More from Edoardo Schepis (7)

Openshift Enterprise
Openshift EnterpriseOpenshift Enterprise
Openshift Enterprise
Edoardo Schepis
 
Joomla in the cloud with Openshift
Joomla in the cloud with OpenshiftJoomla in the cloud with Openshift
Joomla in the cloud with Openshift
Edoardo Schepis
 
Intro jbug milano
Intro jbug milanoIntro jbug milano
Intro jbug milano
Edoardo Schepis
 
Funambol: introducing SCRUM in software product development - AgileDay Italia
Funambol: introducing SCRUM in software product development - AgileDay ItaliaFunambol: introducing SCRUM in software product development - AgileDay Italia
Funambol: introducing SCRUM in software product development - AgileDay Italia
Edoardo Schepis
 
Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008
Edoardo Schepis
 
JavaME Overview - JMDF 2007
JavaME Overview - JMDF 2007JavaME Overview - JMDF 2007
JavaME Overview - JMDF 2007
Edoardo Schepis
 
Alla ricerca della User Story perduta
Alla ricerca della User Story perdutaAlla ricerca della User Story perduta
Alla ricerca della User Story perduta
Edoardo Schepis
 
Joomla in the cloud with Openshift
Joomla in the cloud with OpenshiftJoomla in the cloud with Openshift
Joomla in the cloud with Openshift
Edoardo Schepis
 
Funambol: introducing SCRUM in software product development - AgileDay Italia
Funambol: introducing SCRUM in software product development - AgileDay ItaliaFunambol: introducing SCRUM in software product development - AgileDay Italia
Funambol: introducing SCRUM in software product development - AgileDay Italia
Edoardo Schepis
 
Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008Funambol  JavaME Messaging Client: Lessons Learned - JavaONE 2008
Funambol JavaME Messaging Client: Lessons Learned - JavaONE 2008
Edoardo Schepis
 
JavaME Overview - JMDF 2007
JavaME Overview - JMDF 2007JavaME Overview - JMDF 2007
JavaME Overview - JMDF 2007
Edoardo Schepis
 
Alla ricerca della User Story perduta
Alla ricerca della User Story perdutaAlla ricerca della User Story perduta
Alla ricerca della User Story perduta
Edoardo Schepis
 

Recently uploaded (20)

DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 

JavaME UI - JMDF 2007

  • 1. Java ME User Interface Development User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 2. Agenda • Netbeans support for High level UI – Visual Designer – Fragmentation – Localization Support • Graphics APIs CLDC based – LCDUI – Mobile 3D Graphics – SVG Support • References User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 3. User Interface APIs - Today User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 4. Netbeans Mobile Visual Designer High Level UI • Flow Designer – Map out navigation – Visually represents the different paths that can be taken between your application’s different screens – You can add or remove screens, as well as the transitions between them • Screen Designer – Simulates how the screen will appear on a real device • Corresponding code automatically generated – Hint: Plan out your entire application flow before diving into the code manually User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 5. Layout with Mobile Visual Designer • The Component Palette – Screens – Commands – Form Items – Elements – Resources – Custom Components • Special Components – Splash Screen – Table – Wait Screen • Inspector and Properties Windows User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 6. Netbeans Mobile Visual Designer User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 7. Demo • Visual Designer Demonstration: – creating Mobile Splash Screens – using the TableItem User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 8. Optimize The Application For Different Devices - Configuration Manager • Writing a single application that will run on disparate platforms can be challenging: – screen size – free memory – software issues – available API’s • One configuration for each distribution JAR file you plan on building for your project • Existing configuration template • Customizable User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 9. Example of APIs support on Nokia Devices User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 10. Multiple Device Configurations User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 11. Optimize The Application For Different Devices - Resource Locations • Handling Project Resources – Use Different Resource Locations and match the resources to the configurations in Libraries & Resource panel /res/small/splashScreen.png /res/medium/splashScreen.png /res/large/splashScreen.png Image splashScreen = Image.createImage("splashScreen.png"); – Using Configuration-Specific Code Blocks and Abilities User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 12. Defining and Using Preprocessor Directives • Using Preprocessor Directives • Directive Syntax and Functions – Identifiers – Variables – Operators – Expressions • Compilation Based on Device Platform Versioning User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 13. Optimize The Application For Different Devices - Preprocessor • Using the Preprocessor – CPP-like syntax – Example: //#if mmedia //#if nokia //#if s60_ver=="1.0" import com.nokia.mmapi.v1 //#elif s60_ver=="2.0" import com.nokia.mmapi.v2 //#else import com.nokia.mmapi.def //#endif //#else import javax.microedition.mmapi //#endif //#endif User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 14. Optimize The Application For Different Devices - Preprocessor User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 15. Abilities User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 16. Optimize The Application For Different Users - Localization • Using the Localization Support Class LocalizationSupport.getMessage("PROPERTY_NAME") • The message.properties file PROPERTY_NAME=My Translatable Text String • This technique uses the microedition.locale property of the phone to determine which version of the message.properties file should be used • You can force a particular region to be used LocalizationSupport.initLocalizationSupport("en_US") User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 17. Overview of Graphics APIs • LCDUI for MIDP • JSR 184 - Mobile 3D Graphics API for J2ME • JSR 226 - Scalable 2D Vector Graphics API for J2ME User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 18. LCDUI for MIDP - Canvas • Immediate mode API • All drawing done within a paint() callback • Can also draw to an off screen mutable image • Suited for event based interaction • High performance, low system overhead User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 19. LCDUI for MIDP - Game Canvas • Immediate mode synchronous drawing • Ideal for “platformer” games • Sprite and tiled background • Well suited for games • Only on MIDP 2.0 User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 20. JSR 184 - Mobile 3D Graphics API for J2ME • 3D retained mode and immediate mode API • Focus is retained mode (display list, scene graph) • Defines standard file format—m3g • Tools available to export graphics models in m3g format • Easier to develop using 3D authoring tools • Some animation support • HW acceleration likely to be through OpenGL User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 21. JSR 184 – Mobile 3-D Graphics API • Description: – Provide an efficient 3D Graphics API suitable for the J2ME platform, in particular CLDC/MIDP • Key Features: – Scene graph API (high-level) – Immediate API (low-level, subset of OpenGL) – Importer functions for textures, meshes, animations, and scene hierarchies – Tight integration with MIDP User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 22. JSR 184 – Mobile 3-D Graphics API • Dependencies: – CLDC 1.1 (requires floating point support) • Resources: – http://developer.sonyericsson.com/site/global/newsande vents/campaigns/java_3d/p_java3d.jsp User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 23. Scalable Vector Graphics ● W3C recommendation on vector graphics ● Scalable ● Animated ● Interactive ● Lossless ● Compact User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 24. JSR 226 • SVG provides functionality handsets need • JSR 226 brings scalability to Java ME apps • JSR 226 allows creation of programmable, dynamic SVG content – User interaction – Real time network data (traffic, weather) – Location-based information • JSR 226 unleashes the power of Java and SVG User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 25. JSR 226 Background and motivation • Increasing demand for mobile multimedia (vector graphics) applications • Mobile devices are diverse • Different screen sizes • Want to avoid re-authoring content • Use cases • Map visualization • Rich animations • Simple UI applications • Enterprise applications User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 26. Simple SVG Application - 1 import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; import javax.microedition.m2g.*; class MapApplication extends Canvas { private ScalableImage myMap; private ScalableGraphics gc; public MapApplication(InputStream stream) { myMap = ScalableImage.createImage(stream, null); gc = ScalableGraphics.createInstance(); } public void paint(Graphics g) { gc.bindTarget(g); //Bind Target gc.render(0, 0, myMap); //Render SVG document gc.releaseTarget(); //Release target } } User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 27. Simple SVG Application - 2 // Create empty SVG Image, get root <svg> Element SVGImage myImage = SVGImage.createEmptyImage(); Document myDoc = myImage.getDocument(); SVGSVGElement root = (SVGSVGElement) myDoc.getDocumentElement(); // Create new SVGElement SVGElement myRect = myDoc.createElementNS(SVGNS, "rect"); // Set attributes and properties myRect.setId("button"); myRect.setFloatTrait("x", 30.0f); myRect.setFloatTrait("y", 50.0f); // Also width, height SVGRGBColor myColor = root.createSVGRGBColor(100, 0, 0); myRect.setRGBColorTrait("fill", myColor); // Append to document root.appendChild(myRect); User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 28. References • Netbeans: http://www.netbeans.org • Sony-Ericsson 3D: http://developer.sonyericsson.com/site/global/newsandevents/campai gns/java_3d/p_java3d.jsp • JSR 184: http://jcp.org/en/jsr/detail?id=184 • JSR 226: http://jcp.org/en/jsr/detail?id=226 User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 29. Java ME User Interface Development User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
  • 30. Speaker Edoardo Schepis Java ME Tech Lead at Funambol JMDF Founder email: [email protected] weblog: http://www.edschepis.net Java Mobile Developers Forum: http://www.jmdf.org User Interface Development - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org