SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Eclipse + Mobile = Mobile Tools for Java




                David Marques
          david.marques@cesar.org.br


                                           1
Unit Testing
Internationalization
Preprocessing
Build Configuration
Multi Device Support
Package Obfuscation
Application Packaging
MIDlet Templates

   Mobile Tools for Java Overview

                                    2
Mobile Tools for Java Overview

                                 3
MTJ Overview
     Extend existing Eclipse platform to support mobile Java
      application development
     Integrates with most Software Development Kits (SDKs) available
     MTJ does not ship any SDK, it is the device manufacturer's
      responsibility to distribute their SDKs


                                                        Vendor A
                                              UEI
              SDK            MTJ                        JavaME SDK
             Extens.

                       JDT
                                          Vendor        Vendor B
                Eclipse Platform          Proprietary   JavaME SDK
                                          Protocol




                                                                        4
MIDlet Templates

  Mobile Tools for Java Overview

                                   5
MIDlet Templates
     Reduces the effort to create 
      applications from scratch
     Allows customizing templates 
      without writing source code
     Custom templates can be 
      added to the environment




                                          6
MIDlet Templates




                                     Basic Splash Screen 
     Basic Game Infrastructure           Application

                                                            7
Application Packaging
MIDlet Templates

  Mobile Tools for Java Overview

                                   8
Application Packaging
      Resolves project dependencies
      Packages third party libraries




                                            9
Package Obfuscation
Application Packaging
MIDlet Templates

  Mobile Tools for Java Overview

                                   10
Package Obfuscation
      MTJ integrates with 
       proguard to provide 
       obfuscation
      ProGuard is an open 
       source Java class file 
       optimizer, obfuscator
      Proguard must be 
       downloaded separately 
       from MTJ 


      Proguard WebSite (http://proguard.sourceforge.net/)

                                                            11
Demo Part 1
     Import installed SDKs
     Create a MIDlet Suite Project
     Create a MIDlet from a 
      template                            Part 1
     Package application for 
      deployment
     Create an obfuscated package 
      for deployment
     Run/Debug Application



                                                   12
Multi Device Support
Package Obfuscation
Application Packaging
MIDlet Templates

  Mobile Tools for Java Overview

                                   13
Multi device configuration

                                    Applications are developed for 
                                     a wide range of devices
                                    Device fragmentation problem 
                                     affects mobile developers
                                    MTJ allows developing 
                                     applications for multiple target 
                                     devices




                                                                     14
Multi device configuration

                                    Every configuration has one 
                                     associated device
                                    Every configuration has it's 
                                     own symbol set


                                    Workspace level symbol sets 
                                     (imported from device 
                                     database)



                                                                     15
Multi device configuration

                      It is possible to package either one or all 
                       configurations




                      Every configuation is packaged on it's 
                       own folder under the deployed folder




                                                                      16
Build Configuration
Multi Device Support
Package Obfuscation
Application Packaging
MIDlet Templates

  Mobile Tools for Java Overview

                                   17
Build Configuration
                             Every device configuration 
                              requires a different set of 
                              resources
                             Customizing packages for 
                              different devices manually is 
                              very error prone
                             The build editor allows 
                              selecting which resources to 
                              package on each device 
                              configuration




                                                               18
Preprocessing
Build Configuration
Multi Device Support
Package Obfuscation
Application Packaging
MIDlet Templates

  Mobile Tools for Java Overview

                                   19
Preprocessing
       Preprocessing is very usefull since mobile applications need to 
        target several devices
       MTJ uses Antenna in order to provide preprocessing support
       Antenna is another open source project. It can be dowloaded 
        from (http://antenna.sourceforge.net/)
       Antenna preprocessor defines 
            Preprocessor language

                         //#if ScreenWidth>100 && ScreenHeight>120
                               do something;
                         //#else
                               do something else;
                         //#endif

                                                                           20
Preprocessing
                       Built in code 
                        assitant for 
                        preprocessing 
                        statements
                       All available 
                        statements are 
                        listed with brief 
                        descriptions




                                             21
Preprocessing
                                                         Built in code 
                                                          assitant for 
                                                          preprocessing 
                                                          symbols
                                                      ●   It is possible to 
                                                          define custom 
                                                          symbols

   ●   Each symbol has
          Name, Value, if active on active configuration


                                                                               22
Demo Part 2
     Setup multi device 
      configuration
     Setup build configuration
     Enable preprocessing               Part 2
     Manage preprocessing symbol 
      sets
     Add preprocessing to our 
      example
     Build and package applications 
      for all configurations

                                                  23
Internationalization
Preprocessing
Build Configuration
Multi Device Support
Package Obfuscation
Application Packaging
MIDlet Templates

   Mobile Tools for Java Overview

                                    24
Localization

      Mobile applications are used 
       all over the world
      Localizing applications must 
       not bring an overhead to the 
       development process




                                           25
Localization
                      Localization is 
                       done through 
                       key/value pairs
                      Keys will have 
                       localized values for 
                       every locale 
                       desired
                      All keys defined 
                       are available to the 
                       application's code




                                           26
Localization
                  A properties file is generated for 
                   every locale configured
                  The L10nResources class is used 
                   to get the localized values
                  All localized keys are created within 
                   the L10nConstants class




                                                            27
Unit Testing
Internationalization
Preprocessing
Build Configuration
Multi Device Support
Package Obfuscation
Application Packaging
MIDlet Templates

   Mobile Tools for Java Overview

                                    28
Unit Testing
    Every application needs to be tested in order to achieve quality 
     standards
    The testing framework must be tightly integrated within the IDE




                                                                         29
Unit Testing
      Running/Debugging test 
       cases is as simple as running 
       a MIDlet
      The test results are exibited 
       on the device's screen
      It is possible to package the 
       tests in order to run on a real 
       device




                                              30
Demo Part 3
  ●   Setup localization
  ●   Create localized resources
  ●   Add localization into the 
      application code                 Part 3
  ●   Enable unit testing
  ●   Create Unit Tests/ Suites
  ●   Run Tests




                                                31
Unit Testing
Internationalization
Preprocessing
Build Configuration
Multi Device Support
Package Obfuscation
Application Packaging
MIDlet Templates

   Mobile Tools for Java Overview

   Eclipse Pulsar Working Group

                                    32
Eclipse Pulsar Working Group
     Pulsar is an industry working group to promote collaboration 
      between mobile industry players
     Pulsar early access package is available for download from eclipse 
      web­site. (http://www.eclipse.org/pulsar)
     First official release with Eclipse Galileo, the annual release of 
      Eclipse projects on June 25th. (http://www.eclipse.org/galileo)




                                                                            33
Eclipse Pulsar Package
   Tools integration platform for mobile 
    development
   Easy to install and update tools and 
    SDKs




                                             34
Eclipse Pulsar Package
                                         MTJ   Eclipse    other
                                               IDE




                                           Pulsar IDE  
                                           Package

                          & In   stall
                n   load 
            Dow

             Discover SDKs                                        Redirect to
                                                                  Pulsar SDK
                                                                  Package

                                           Pulsar Server




  User Desktop                             Eclipse.org            SDK Plugin Provider Server
                                                                                           35
Mobile Tools for Java Overview

Eclipse Pulsar Working Group

  Open Source Community


                                 36
How to participate
   As an open source project everyone is welcome to contribute
        Send new ideas
        Help with bug fixes
        Propose new features
        Join our test team


   DSDP MTJ Web site: http://www.eclipse.org/dsdp/mtj
   DSDP MTJ Wiki: http://wiki.eclipse.org/DSDP/MTJ
   Newsgroup: news://news.eclipse.org/eclipse.dsdp.mtj
   Developer List: http://dev.eclipse.org/mailman/listinfo/dsdp­mtj­dev 


                                                                           37
Conclusions
      MTJ provides several features in order to improve mobile Java 
       development
      It requires a very low learning curve since it follows Eclipse 
       standards and everyone uses Eclipse :)




                                                                         38
Questions




                39
Eclipse + Mobile = Mobile Tools for Java




                David Marques
          david.marques@cesar.org.br


                                       40

Contenu connexe

Tendances

Android application structure
Android application structureAndroid application structure
Android application structure
Alexey Ustenko
 
Os eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfOs eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdf
weerabahu
 

Tendances (20)

Android basics
Android basicsAndroid basics
Android basics
 
Android App Development Intro at ESC SV 2012
Android App Development Intro at ESC SV 2012Android App Development Intro at ESC SV 2012
Android App Development Intro at ESC SV 2012
 
Android application structure
Android application structureAndroid application structure
Android application structure
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programming
 
Android Studio Overview
Android Studio OverviewAndroid Studio Overview
Android Studio Overview
 
Android software stack
Android software stackAndroid software stack
Android software stack
 
Android ppt
Android pptAndroid ppt
Android ppt
 
ANDROID
ANDROIDANDROID
ANDROID
 
MTJ Taking Mobile Java Developers to the Next Level
MTJ Taking Mobile Java Developers to the Next LevelMTJ Taking Mobile Java Developers to the Next Level
MTJ Taking Mobile Java Developers to the Next Level
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Intro To Android App Development
Intro To Android App DevelopmentIntro To Android App Development
Intro To Android App Development
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Arduino - Android Workshop Presentation
Arduino - Android Workshop PresentationArduino - Android Workshop Presentation
Arduino - Android Workshop Presentation
 
Android development tutorial
Android development tutorialAndroid development tutorial
Android development tutorial
 
Os eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfOs eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdf
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & Components
 
Ci for Android
Ci for AndroidCi for Android
Ci for Android
 
Introduction to Android programming
Introduction to Android programmingIntroduction to Android programming
Introduction to Android programming
 
Android summer training report
Android summer training reportAndroid summer training report
Android summer training report
 

Similaire à Eclipse Mobile Tools for Java Project

Introduction to JVM IDE and JDK and other elements
Introduction to JVM IDE and JDK and other elementsIntroduction to JVM IDE and JDK and other elements
Introduction to JVM IDE and JDK and other elements
kenl69784
 
Javame sdk-datasheet-167819
Javame sdk-datasheet-167819Javame sdk-datasheet-167819
Javame sdk-datasheet-167819
Oscar Eduardo
 
Android technology
Android technologyAndroid technology
Android technology
Dhruv Modh
 
Sccm 2012
Sccm 2012Sccm 2012
Sccm 2012
ebuc
 

Similaire à Eclipse Mobile Tools for Java Project (20)

SynapseIndia mobile build apps management
SynapseIndia mobile build apps managementSynapseIndia mobile build apps management
SynapseIndia mobile build apps management
 
SynapseIndia mobile apps deployment framework architecture
SynapseIndia mobile apps deployment framework architectureSynapseIndia mobile apps deployment framework architecture
SynapseIndia mobile apps deployment framework architecture
 
Open Source Licenses and Tools
Open Source Licenses and ToolsOpen Source Licenses and Tools
Open Source Licenses and Tools
 
Multi-Configuration support in MTJ
Multi-Configuration support in MTJMulti-Configuration support in MTJ
Multi-Configuration support in MTJ
 
Mobile Java
Mobile JavaMobile Java
Mobile Java
 
DSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and NoteworthyDSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and Noteworthy
 
DSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and NoteworthyDSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and Noteworthy
 
Secrets of .NET Assemblies and Memory Management
Secrets of .NET Assemblies and Memory ManagementSecrets of .NET Assemblies and Memory Management
Secrets of .NET Assemblies and Memory Management
 
Estimating Packaged Software - The first part of a framework
Estimating Packaged Software - The first part of a frameworkEstimating Packaged Software - The first part of a framework
Estimating Packaged Software - The first part of a framework
 
SynapseIndia mobile apps architecture
SynapseIndia mobile apps architectureSynapseIndia mobile apps architecture
SynapseIndia mobile apps architecture
 
Introduction to JVM IDE and JDK and other elements
Introduction to JVM IDE and JDK and other elementsIntroduction to JVM IDE and JDK and other elements
Introduction to JVM IDE and JDK and other elements
 
Javame sdk-datasheet-167819
Javame sdk-datasheet-167819Javame sdk-datasheet-167819
Javame sdk-datasheet-167819
 
Bhavin_Resume
Bhavin_ResumeBhavin_Resume
Bhavin_Resume
 
Meego의 현재와 미래(2)
Meego의 현재와 미래(2)Meego의 현재와 미래(2)
Meego의 현재와 미래(2)
 
What is codename one
What is codename oneWhat is codename one
What is codename one
 
Java-Unit-I.ppt
Java-Unit-I.pptJava-Unit-I.ppt
Java-Unit-I.ppt
 
Installers
InstallersInstallers
Installers
 
Android technology
Android technologyAndroid technology
Android technology
 
Sccm 2012
Sccm 2012Sccm 2012
Sccm 2012
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs Railo
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Dernier (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Eclipse Mobile Tools for Java Project