SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
Introducing J2ME Polish:
 Overcoming the Device
  Fragmentation Barrier
Introduction   Motivation


 Practice      Concepts
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
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
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)
Customers


!   More than 100 commercial licensees from
    around the world including:
Introduction   Motivation


 Practice      Concepts
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
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() );
    }
Introduction   Motivation


 Practice      Concepts
Structure of J2ME Polish


!   Device Database
!   Build Framework          Build Framework           Client API


!   Client API
                                         Device Database




!   Further Components:
    –   Tools
    –   IDE Integration
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
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
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
Introduction   Motivation


 Practice      Concepts
Designing Applications


!   Design is specified outside of the application’s
    source code
!   Customize the application just by modifying CSS
!   Example: title { font-color: green; }
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
GUI Effects


!   Text Effects
    –   bitmap (TTF), gradient, outline, rotate, shadow, ...
!   Screen Transition Effects
    –   cube, minimize, maximize, move, ...
!   Further Animations
    –   animated backgrounds, animation of elements
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
Advanced GUI Elements
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
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
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
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( quot;AddressBookquot; );
          } catch (IOException e) { // no contacts stored
            this.contacts = new Vector();
          }
       }
       public void save throws IOException {
          this.storage.save( this.contacts, quot;AddressBookquot; );
       }
    }
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=quot;java5quot; />
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=quot;floaterquot; />
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
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
Eclipse Integration


!   Target device is selected from drop down
Eclipse Integration


!   Syntax highlighting and marking of occurrences
    allow orientation in complex preprocessing code
Eclipse Integration


!   Debug a project just by launching the debugger
Designer


!   Available as standalone or embedded into the
    NetBeans IDE
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
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
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

Más contenido relacionado

La actualidad más candente

All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1Markus Eisele
 
Java programming(unit 1)
Java programming(unit 1)Java programming(unit 1)
Java programming(unit 1)SURBHI SAROHA
 
Getting started with ibm worklight tips
Getting started with ibm worklight tipsGetting started with ibm worklight tips
Getting started with ibm worklight tipsbupbechanhgmail
 
Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012jobandesther
 
Droid con 2012 bangalore v2.0
Droid con 2012   bangalore v2.0Droid con 2012   bangalore v2.0
Droid con 2012 bangalore v2.0Premchander Rao
 
Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Sentinel Solutions Ltd
 
.NET Fundamentals and Business Application Development
.NET Fundamentals and Business Application Development.NET Fundamentals and Business Application Development
.NET Fundamentals and Business Application Development명신 김
 
Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?NIIT India
 
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...marjoramg
 
Summer training java
Summer training javaSummer training java
Summer training javaArshit Rai
 
.Net framework
.Net framework.Net framework
.Net frameworkViv EK
 
Building apps for multiple devices
Building apps for multiple devicesBuilding apps for multiple devices
Building apps for multiple devicesTerry Ryan
 
Eric grover strategies for sharing code with windows 8 and windows phone 8 ...
Eric grover   strategies for sharing code with windows 8 and windows phone 8 ...Eric grover   strategies for sharing code with windows 8 and windows phone 8 ...
Eric grover strategies for sharing code with windows 8 and windows phone 8 ...Eric Grover
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structureodedns
 

La actualidad más candente (20)

All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1
 
Java programming(unit 1)
Java programming(unit 1)Java programming(unit 1)
Java programming(unit 1)
 
Getting started with ibm worklight tips
Getting started with ibm worklight tipsGetting started with ibm worklight tips
Getting started with ibm worklight tips
 
Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012Code and Conquer with Globe Labs, October 27, 2012
Code and Conquer with Globe Labs, October 27, 2012
 
Droid con 2012 bangalore v2.0
Droid con 2012   bangalore v2.0Droid con 2012   bangalore v2.0
Droid con 2012 bangalore v2.0
 
Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]
 
.NET Fundamentals and Business Application Development
.NET Fundamentals and Business Application Development.NET Fundamentals and Business Application Development
.NET Fundamentals and Business Application Development
 
Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?
 
Rashmi_Resume
Rashmi_ResumeRashmi_Resume
Rashmi_Resume
 
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...
 
Vb.net class notes
Vb.net class notesVb.net class notes
Vb.net class notes
 
Summer training java
Summer training javaSummer training java
Summer training java
 
.Net framework
.Net framework.Net framework
.Net framework
 
Rhodes Overview
Rhodes OverviewRhodes Overview
Rhodes Overview
 
Chapter2 j2ee
Chapter2 j2eeChapter2 j2ee
Chapter2 j2ee
 
Building apps for multiple devices
Building apps for multiple devicesBuilding apps for multiple devices
Building apps for multiple devices
 
J2ee
J2eeJ2ee
J2ee
 
Eric grover strategies for sharing code with windows 8 and windows phone 8 ...
Eric grover   strategies for sharing code with windows 8 and windows phone 8 ...Eric grover   strategies for sharing code with windows 8 and windows phone 8 ...
Eric grover strategies for sharing code with windows 8 and windows phone 8 ...
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structure
 
Visual Studio IDE
Visual Studio IDEVisual Studio IDE
Visual Studio IDE
 

Destacado

Participative Management and Change-Oriented Leadership
Participative Management and Change-Oriented Leadership Participative Management and Change-Oriented Leadership
Participative Management and Change-Oriented Leadership Edmundo Zevallos
 
Participative Management
Participative ManagementParticipative Management
Participative Managementsajid ghafoor
 
Participative Management 23 slides
Participative Management 23 slidesParticipative Management 23 slides
Participative Management 23 slidesG. Christophe
 
Cross Cultural Ethics & International Development
Cross Cultural Ethics & International DevelopmentCross Cultural Ethics & International Development
Cross Cultural Ethics & International DevelopmentGRS UBC
 
worker participation in mgt.
worker participation in mgt.worker participation in mgt.
worker participation in mgt.vagadiyakishan
 
Participative Management
Participative  Management Participative  Management
Participative Management sajid ghafoor
 
Cross cultural issues in business ethics by yasin aseer
Cross cultural issues in business ethics by yasin aseerCross cultural issues in business ethics by yasin aseer
Cross cultural issues in business ethics by yasin aseerM Yaseen Aseer
 
PARTICIPATIVE MANAGEMENT
PARTICIPATIVE MANAGEMENTPARTICIPATIVE MANAGEMENT
PARTICIPATIVE MANAGEMENTNayana Nanu
 
participative management
participative managementparticipative management
participative managementjas sodhI
 
Participative management
Participative managementParticipative management
Participative managementshreyasakaria
 
Workers participation in management
Workers participation in managementWorkers participation in management
Workers participation in managementRajat Sharma
 
Participative management
Participative managementParticipative management
Participative managementsmileyriaz
 
Workers participation in management
Workers participation in management Workers participation in management
Workers participation in management Chandan Raj
 
Workers participation in management
Workers participation in management Workers participation in management
Workers participation in management parags06
 
Worker’s participation in management
Worker’s participation in managementWorker’s participation in management
Worker’s participation in managementDimple Parmar
 

Destacado (20)

Change Oriented Leadership Behaviors:
Change Oriented Leadership Behaviors:Change Oriented Leadership Behaviors:
Change Oriented Leadership Behaviors:
 
Participative Management
Participative ManagementParticipative Management
Participative Management
 
Participative Management and Change-Oriented Leadership
Participative Management and Change-Oriented Leadership Participative Management and Change-Oriented Leadership
Participative Management and Change-Oriented Leadership
 
Participative Management
Participative ManagementParticipative Management
Participative Management
 
Participative Management 23 slides
Participative Management 23 slidesParticipative Management 23 slides
Participative Management 23 slides
 
Cross Cultural Ethics & International Development
Cross Cultural Ethics & International DevelopmentCross Cultural Ethics & International Development
Cross Cultural Ethics & International Development
 
worker participation in mgt.
worker participation in mgt.worker participation in mgt.
worker participation in mgt.
 
Participative Management
Participative  Management Participative  Management
Participative Management
 
Cross cultural issues in business ethics by yasin aseer
Cross cultural issues in business ethics by yasin aseerCross cultural issues in business ethics by yasin aseer
Cross cultural issues in business ethics by yasin aseer
 
PARTICIPATIVE MANAGEMENT
PARTICIPATIVE MANAGEMENTPARTICIPATIVE MANAGEMENT
PARTICIPATIVE MANAGEMENT
 
participative management
participative managementparticipative management
participative management
 
participative management
participative managementparticipative management
participative management
 
Participative management
Participative managementParticipative management
Participative management
 
Workers participation in management
Workers participation in managementWorkers participation in management
Workers participation in management
 
Participative management
Participative managementParticipative management
Participative management
 
Workers participation in management
Workers participation in management Workers participation in management
Workers participation in management
 
Workers Participation In Management
Workers Participation In ManagementWorkers Participation In Management
Workers Participation In Management
 
Workers participation in management
Workers participation in management Workers participation in management
Workers participation in management
 
01 organisational change
01 organisational change01 organisational change
01 organisational change
 
Worker’s participation in management
Worker’s participation in managementWorker’s participation in management
Worker’s participation in management
 

Similar a Introducing J2ME Polish

Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioMizanur Sarker
 
Introduction phonegap
Introduction phonegapIntroduction phonegap
Introduction phonegapRakesh Jha
 
Advanced programing in phonegap
Advanced programing in phonegapAdvanced programing in phonegap
Advanced programing in phonegapRakesh Jha
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterRobertLe30
 
Smartface ile Crossplatform Uygulama Geliştirme
Smartface ile Crossplatform Uygulama GeliştirmeSmartface ile Crossplatform Uygulama Geliştirme
Smartface ile Crossplatform Uygulama GeliştirmeMobile İstanbul
 
Cross platform mobile app development tools review
Cross platform mobile app development tools reviewCross platform mobile app development tools review
Cross platform mobile app development tools reviewUday Kothari
 
Synapse india reviews on asp.net mobile application
Synapse india reviews on asp.net mobile applicationSynapse india reviews on asp.net mobile application
Synapse india reviews on asp.net mobile applicationsaritasingh19866
 
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...mfrancis
 
Building Multi-Channel Data-Aware Applications
Building Multi-Channel Data-Aware ApplicationsBuilding Multi-Channel Data-Aware Applications
Building Multi-Channel Data-Aware Applicationscjolif
 
webOS App by Example: Sorting Thoughts
webOS App by Example: Sorting ThoughtswebOS App by Example: Sorting Thoughts
webOS App by Example: Sorting ThoughtsHendrik Ebel
 
JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdf
JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdfJIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdf
JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdfSamiraKids
 
Developing a Modern Mobile App Strategy
Developing a Modern Mobile App StrategyDeveloping a Modern Mobile App Strategy
Developing a Modern Mobile App StrategyTodd Anglin
 

Similar a Introducing J2ME Polish (20)

Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 
phonegap_101
phonegap_101phonegap_101
phonegap_101
 
Introduction phonegap
Introduction phonegapIntroduction phonegap
Introduction phonegap
 
Advanced programing in phonegap
Advanced programing in phonegapAdvanced programing in phonegap
Advanced programing in phonegap
 
Build beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutterBuild beautiful native apps in record time with flutter
Build beautiful native apps in record time with flutter
 
Smartface ile Crossplatform Uygulama Geliştirme
Smartface ile Crossplatform Uygulama GeliştirmeSmartface ile Crossplatform Uygulama Geliştirme
Smartface ile Crossplatform Uygulama Geliştirme
 
Mobile Application Development class 001
Mobile Application Development class 001Mobile Application Development class 001
Mobile Application Development class 001
 
desktop_resume
desktop_resumedesktop_resume
desktop_resume
 
Mobile Web Apps
Mobile Web AppsMobile Web Apps
Mobile Web Apps
 
Cross platform mobile app development tools review
Cross platform mobile app development tools reviewCross platform mobile app development tools review
Cross platform mobile app development tools review
 
Synapse india reviews on asp.net mobile application
Synapse india reviews on asp.net mobile applicationSynapse india reviews on asp.net mobile application
Synapse india reviews on asp.net mobile application
 
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
 
IBM Worklight Whitepaper
IBM Worklight WhitepaperIBM Worklight Whitepaper
IBM Worklight Whitepaper
 
Building Multi-Channel Data-Aware Applications
Building Multi-Channel Data-Aware ApplicationsBuilding Multi-Channel Data-Aware Applications
Building Multi-Channel Data-Aware Applications
 
Ios
IosIos
Ios
 
webOS App by Example: Sorting Thoughts
webOS App by Example: Sorting ThoughtswebOS App by Example: Sorting Thoughts
webOS App by Example: Sorting Thoughts
 
JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdf
JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdfJIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdf
JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdf
 
Andrew Resume
Andrew ResumeAndrew Resume
Andrew Resume
 
Bhavin_Resume
Bhavin_ResumeBhavin_Resume
Bhavin_Resume
 
Developing a Modern Mobile App Strategy
Developing a Modern Mobile App StrategyDeveloping a Modern Mobile App Strategy
Developing a Modern Mobile App Strategy
 

Último

👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...rajveerescorts2022
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒anilsa9823
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Serviceritikaroy0888
 
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...lizamodels9
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.Aaiza Hassan
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsMichael W. Hawkins
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLSeo
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Roland Driesen
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...amitlee9823
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdfRenandantas16
 
Famous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st CenturyFamous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st Centuryrwgiffor
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Dipal Arora
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Roland Driesen
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxWorkforce Group
 
Pharma Works Profile of Karan Communications
Pharma Works Profile of Karan CommunicationsPharma Works Profile of Karan Communications
Pharma Works Profile of Karan Communicationskarancommunications
 
Call Girls in Gomti Nagar - 7388211116 - With room Service
Call Girls in Gomti Nagar - 7388211116  - With room ServiceCall Girls in Gomti Nagar - 7388211116  - With room Service
Call Girls in Gomti Nagar - 7388211116 - With room Servicediscovermytutordmt
 
Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023Neil Kimberley
 
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataRSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataExhibitors Data
 
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfDr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfAdmir Softic
 

Último (20)

👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Service
 
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael Hawkins
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
 
Famous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st CenturyFamous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st Century
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
 
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptx
 
Pharma Works Profile of Karan Communications
Pharma Works Profile of Karan CommunicationsPharma Works Profile of Karan Communications
Pharma Works Profile of Karan Communications
 
Call Girls in Gomti Nagar - 7388211116 - With room Service
Call Girls in Gomti Nagar - 7388211116  - With room ServiceCall Girls in Gomti Nagar - 7388211116  - With room Service
Call Girls in Gomti Nagar - 7388211116 - With room Service
 
Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023
 
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataRSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors Data
 
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfDr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
 

Introducing J2ME Polish

  • 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
  • 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( quot;AddressBookquot; ); } catch (IOException e) { // no contacts stored this.contacts = new Vector(); } } public void save throws IOException { this.storage.save( this.contacts, quot;AddressBookquot; ); } }
  • 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=quot;java5quot; />
  • 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=quot;floaterquot; />
  • 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