Introducing J2ME Polish

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    4 Favorites

    Introducing J2ME Polish - Presentation Transcript

    1. Introducing J2ME Polish: Overcoming the Device Fragmentation Barrier
    2. Introduction Motivation Practice Concepts
    3. Enough Software ! Enough Software offers a highly popular open source suite for mobile software development – Incorporation: end of 2004 in Bremen, Germany – Open Source dual licensing model – Over 300,000 downloads of open source version of J2ME Polish developer tool – “Pro J2ME Polish” book published by Apress (New York) – Strong know-how base in Mobile Applications, J2ME and UI Development
    4. Business Units ! Mobile Development Tools – J2ME Polish: Java development framework – Charon: Textmessaging application framework ! Mobile Services – Support, Consulting & Training – Application Development – Porting of Applications – Designing Applications – J2ME Polish Extensions ! Mobile Solutions – OTA Server & Hosting
    5. J2ME Polish ! Enough Software provides mobile developers with software development tools that... – overcome mobile device fragmentation, – “polish” the look and feel of mobile applications ! J2ME Polish contains a flexible and powerful library for adapting and designing mobile applications ! Multiple Platforms – J2ME / JavaME – BlackBerry – DoJa – WIPI – .NET Compact Framework (forthcoming)
    6. Customers ! More than 100 commercial licensees from around the world including:
    7. Introduction Motivation Practice Concepts
    8. Motivation: Fragmentation ! Mobile device fragmentation limits mobile application adoption and thereby Carriers’ ARPU growth – Different hardware – Different API Support – Different interpretations of standards – Device bugs
    9. Motivation: Design ! The mobile Java standard only allows limited design of application, unless every detail is drawn by the application itself – Standard implementations do not allow to influence the CI and look and feel of the application – Adapting designs to different environments or customers difficult – Design changes require changing the source code of applications public void paint( Graphics g ) { Font font = Font.getDefaultFont(); g.setFont( font ); g.setColor( 0x000000 ); g.drawText( “Hello World”, x, y, Graphics.LEFT | Graphics.TOP ); g.setStroke( Graphics.SOLID ); g.setColor( 0xFF0000 ); g.drawLine( x, y + font.getHeight(), x + 200, y + font.getFontHeight() ); }
    10. Introduction Motivation Practice Concepts
    11. Structure of J2ME Polish ! Device Database ! Build Framework Build Framework Client API ! Client API Device Database ! Further Components: – Tools – IDE Integration
    12. Device Database ! Device definitions as the foundation Build Framework Client API ! Detailed information about J2ME capable Device Database devices - APIs, certificates, screen resolutions, known issues, ... ! Used by the Build Framework and the Client API ! XML based: easy extensible ! From J2ME Polish 2.1 onwards: – interactive Web 2.0 database – using SysInfo for collecting device information
    13. Build Framework ! Automates necessary steps for creating J2ME apps Build Framework Client API ! Ant based Device Database ! Can be integrated into any IDE For every target device: Preprocess ! Extensible Compile Package Finalize Emulate
    14. Client API ! GUI – compatible to MIDP 2.0 Build Framework Client API – Design outside of the Device Database application using CSS – Non standard screens and items – Uses Device Database and Build Framework for adapting and customizing ! IO – Serialization & Storage ! Utilities – ArrayList, HashMap, IntHashMap, Locale, RgbImage, ImageUtil, TextUtil, ... ! Text to Speech converter
    15. Introduction Motivation Practice Concepts
    16. Designing Applications ! Design is specified outside of the application’s source code ! Customize the application just by modifying CSS ! Example: title { font-color: green; }
    17. Standard Components ! ChoiceGroup – Specify the look and feel of each ChoiceGroup ! Gauge – Depending on the mode many different visualizations are possible for Gauges ! TextFields – Input modes: Native vs. Direct – Support for predictive text input
    18. GUI Effects ! Text Effects – bitmap (TTF), gradient, outline, rotate, shadow, ... ! Screen Transition Effects – cube, minimize, maximize, move, ... ! Further Animations – animated backgrounds, animation of elements
    19. Advanced GUI Elements ! Screens – TabbedForm, FramedForm, SplashCanvas, TabbedList, FilteredList ! Items – ListItem, TreeItem, SpriteItem, BrowserItem, ChartItem, PictureBrowser, FilteredChoiceGroup, ContainerViews like Carousels, Tables and animated arrangements. Unlimited flexibility by using ItemViews which are responsible for rendering and animation of items. ! Menu – Subcommands
    20. Advanced GUI Elements
    21. GUI: BrowserItem (1/2) ! The BrowserItem combines the advantages of server side contents and client side interactive applications ! Server side contents can be changed dynamically and administered centrally ! Client side application allow to interact with the user as well as device services such a bluetooth, the storage system or messaging ! The J2ME Polish BrowserItem allows you embed and interact with HTML or XML based contents in any application
    22. GUI: BrowserItem (2/2) ! Extend the BrowserItem by implementing your own protocol handlers (like navigate:// search=Bondstreet&city=London), tag handlers or micro format parsers ! Integrate complex components such as charts within the shown data
    23. Serialization Framework ! The serialization framework of J2ME Polish allows you to easily store and read data ! Just implement Serializable: import de.enough.polish.io.Serializable; public class Contact implements Serializable { String name; Vector friends; Image picture; } ! For full control you can implement Externalizable as well - just like on JavaSE and JavaEE. ! Use de.enough.polish.io.Serializer for reading and writing serializable classes to input/output streams, e.g. streams from HTTP connections
    24. RmsStorage ! Use RmsStorage for saving and loading data from the Recordstore Management System: import de.enough.polish.io.RmsStorage; public class AddressBook { Vector contacts; RmsStorage storage; public AddressBook { this.storage = new RmsStorage(); try { this.contacts = (Vector) this.storage.read( \"AddressBook\" ); } catch (IOException e) { // no contacts stored this.contacts = new Vector(); } } public void save throws IOException { this.storage.save( this.contacts, \"AddressBook\" ); } }
    25. Java 5 Syntax Support ! Java 5 SE introduced syntax improvements to ensure the type safety of applications during the compilation phase: – Generics: Vector<Integer> numbers; – Enum constants: enum Weekday { MONDAY, TUESDAY, WEDNESDAY, ... }; – Autoboxing: numbers.add( 12 ); ! J2ME Polish allows you to use these improvements for J2ME applications as well, just by adding a postcompiler tag to the build.xml script: <postcompiler name=\"java5\" />
    26. Floating Point Support for CLDC 1.0 ! The “floater” extension allows you to use normal floating points operations as well as java.lang.Math functions on CLDC 1.0 devices ! Activate the extension in the build.xml: <postcompiler name=\"floater\" />
    27. Migration ! Migration of existing J2ME projects is easy: – J2ME Polish is compatible to the MIDP 2.0 standard, therefore no changes are required on the source code level – Create or adapt a sample build.xml script – Use #style preprocessing directives for applying individual styles to screens or GUI elements – Create a polish.css textfile for designing the UI of the application – Run J2ME Polish
    28. Eclipse Integration ! The J2ME Polish plugin for Eclipse (Mepose) eases the development of mobile applications – select target device from drop down – debugging – emulating – preprocessing syntax highlighting – preprocessing code completion – the J2ME Polish build and emulator framework is used for building applications and launch of emulators – Mepose runs like J2ME Polish on any OS: Windows, OS X, Linux
    29. Eclipse Integration ! Target device is selected from drop down
    30. Eclipse Integration ! Syntax highlighting and marking of occurrences allow orientation in complex preprocessing code
    31. Eclipse Integration ! Debug a project just by launching the debugger
    32. Designer ! Available as standalone or embedded into the NetBeans IDE
    33. Roadmap ! J2ME Polish 2.0: Q4/2007 – Screen change effects, text effects, view types – new UI elements, e.g. ChartItem, BrowserItem, FilteredList – Serialization Framework – RMI – Floater – Java 5 Syntax – Predictive Text Input – Animation Framework – Eclipse Plugin
    34. Roadmap ! J2ME Polish 2.1: Q1/2008 – Interactive Device Database – NetBeans Plugin – WYSIWYG Design ! J2ME Polish 2.2: Q2/2008 – Convert MIDlets to native .NET Compact Framework applications – Support for MIDP 3.0
    35. Contact Enough Software Presented at BarCamp London 3 by: Robert Virkus Sögestr. 70 28195 Bremen Adam Cohen-Rose Lead Developer Germany Kizoom Ltd Zetland House Phone +49 - 421 - 8409 938 109-123 Clifton Street Fax +49 - 421 - 9988 132 London EC2A 4LD Mobile: +49 - 160 - 7788 203 http://www.kizoom.com Web http://www.enough.de http://adamcohenrose.blogspot.com Email info@enough.de

    + adamcradamcr, 2 years ago

    custom

    7817 views, 4 favs, 4 embeds more stats

    An introduction to J2ME Polish as presented at BarC more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 7817
      • 7770 on SlideShare
      • 47 from embeds
    • Comments 0
    • Favorites 4
    • Downloads 186
    Most viewed embeds
    • 40 views on http://adamcohenrose.blogspot.com
    • 5 views on http://greensspirit.blogspot.com
    • 1 views on http://209.85.135.104
    • 1 views on http://www.slideshare.net

    more

    All embeds
    • 40 views on http://adamcohenrose.blogspot.com
    • 5 views on http://greensspirit.blogspot.com
    • 1 views on http://209.85.135.104
    • 1 views on http://www.slideshare.net

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories