[RSS]

Mobility Pack New and Noteworthy

Release Candidate 1 (released 11/14)

Proguard downgraded to 3.7

We had to revert the proguard back to version 3.7. There were a issues reported by Mobility users with the version in Beta2


Beta 2 (released 10/22)

Proguard updated to version 4.0.1

The proguard used for obfuscation was upgraded to version 4.0.1 - link
  • This was reverted in RC1*


Beta 1 (released 09/17)

Designer 1 has been removed

The old version of Visual Mobile Designer has been removed from Mobility Pack. Now Mobility Pack has a new version of Designer only. Still there is possibility to open the source code of old design file.

Converter for old design files

Both Designer are using different file format. Therefore there is an action for converting an old design file to the new file format. The conversion does not cover all functionality. We would like to tests it as much as possible therefore we would like to ask you for a help with testing the conversion.

You can invoke conversion, using "Convert to new version" popup menu action on an old design file node.

Old Design File

Converter dialog let you specify a name for a converted file and guides you through the conversion.

Converter Dialog

Now you can see the converted file in the same package. Please, read conversion report carefully to finish the conversion successful. Some steps may require manual changes in the source code.

Please, let us know about any conversion problem that you experience.

Designer generates JavaDoc and editor-folds

Designer is generating a code with JavaDoc for each method. Also all generated sections are folded by default.

Generated Editor Folds

Designer Analyzer view changed

Commands and Resources analyzers has been merged together.

Analyzer View

Import of WTK and CDC Toolkit/Old CDC 5.5 projects has changed

Due to multiuser support, the new way of importing projects was implemented. Instead of using external source roots, projects are now copied including sources. This way any modifications made by a user don't affect any other user


Milestone 10 (06/15-06/28 2007)

Abilities Navigator actions

New behaviour and actions added to Abilities Navigaotr Panel

1) Multiple configurations can be selected. In such case navigator will show intersection of abilities assigned to selected configurations. Abilities with different values will be shown with "Multiple different values" as a value. Selected configurations must be part of the same project

2) Right click on abilities navigator shows a popup with following actions

a) Add - adds an ability to all of the selected configurations

b) Remove - remove set of selected abilities from all of the selected configurations

c) Copy - copy set of selected abilities to internal buffer

d) Paste - paste abilities from buffer to a set of selected configurations

New abilities panel actions

Project Configurations nodes actions

New actions added to configuration nodes with obvious meanings

running on single selected configuration

1) Run configuration

2) Debug configuration

running on multiple selected configurations even across different projects

3) Build selected configurations

4) Clean&Build selected configurations

5) Clean selected configurations

6) Deploy selected configurations

New project configurations actions

NSIcom support

Mobility Pack now supports NSIcom CreME CDC platform. You can download emulator from NSIcom web page - Developer Support package. Use Java Platforms Tool to add CreMe to the list of available CDC platforms

MIDP-1.0 compliancy analyzer in Visual Mobile Designer

The Visual Mobile Designer has a new analyzer. It inspect a design and reports all component, properties and values which are not available in MIDP-1.0.

Deployment on Nokia devices

Requirements

  • Compatible Nokia phone (I've tested the functionality on 6230)

Installation

Install Nokia PC Suite and have your phone connected. Follow the instructions to setup the connection - use cable, infrared or bluetooth.

Using the deployment

Start NetBeans and create a new or open an existing project.

Create predefined deployment profile using Tools | Mobile Deployment.

scr1.jpg

Open project properties. Choose deployment profile. You can also override the deployment settings.

scr2.jpg

Close project properties. Right click on the project and choose Deploy.

scr4.jpg

The application gets deployed

scr3.jpg

On the phone, open the application browser and run the application

scr5.jpgscr6.jpg

Windows Mobile deployment

Windows Mobile Deployment

available since 6.0M10

Installation

Test version available also for NetBeans 5.5.1

Windows Mobile Device

You need Windows Mobile 5 device with Sun CLDC/MIDP VM installed. The device has to be connected to the computer using cable or wireless and ActiveSync has to be running.

How to use it

You have to create a mobile project first. I recommend to make it working in the Wireless Toolkit before deploying on the device. Then open project properties go to the Deploying tab and choose Windows Mobile Deployment as a deployment method:

scr1.png

You can leave default value for Application Location - it is a folder on the device where jar and jad files will be copied into, or you can specify another one.

Once you have set up the deployment method, right click on the project and choose deploy:

scr2.png

The application gets uploaded and installed on the device. Follow any instruction that appear on the device screen:

scr3.png

Run the application using Start | Programs | Sun Java | <application>

scr4.png

SVG Composer

Major upgrade of SVG Viewer supporting basic editing of SVG content. The SVG Composer is not intended to be a replacement for SVG authoring tools, it is rather targeted on a developer who needs to adjust and modify existing SVG graphics and make it work with his/hers code.

Extended viewer features

  1. Zoom control(zoom in/zoom out/fit on screen/exact zoom ratio)
  2. Extended navigator - it is possible to display only the tree nodes that meet some criterion. The parent nodes of those nodes are displayed as well to keep hierarchy unchanged, but they shown in gray color. Currently the two following filters are available:
    1. Show only the elements with defined id
    2. Show only animation elements
  3. Animation support - it is possible to start specific animation; useful for animation with indefinite begin time, typically triggered from script
  4. ViewBox support - it is possible to see area outside the SVG viewbox. There are two display modes related to this.
    1. Show view box only - only the area defined as 'viewBox' trait on the svg element is displayed - the rest is clipped out
    2. Show whole image - the whole image is displayed and the viewBox boundary is displayed as thing dark gray rectangle

Editing features

  1. Content locking - to prevent unwanted changes user can lock the content. Initially the content is locked and user can unlock it using the toolbar button. The unlocked state is indicated by pressed toggle button and pencil icon displayed in bottom left corner of the canvas. Note: No animations are available when content is unlocked.
  2. XML text editor, which can be used for direct editing of SVG source. Changes done in the editor are reflected in the visual view when it is available. The visual view and the editor are not meant to be displayed at one time.
  3. Quick link from navigator to editor - double click on on a tree node in navigator takes user into editor with caret placed at the beginning of the element that node represents
  4. Quick link from visual view to editor - double click on an element takes user into editor with caret placed at the beginning of the XML tag.
  5. SVG Shapes Palette - a simple palette window associated with the text editor can be used to drag various svg elements into the text editor
  6. Basic shape manipulation in visual view:
    1. Select - the polyline outline is drawn around the selected element
    2. Move/translate - the selected element can be moved/translated to some other position. When mouse is hovering over the selected element, the mouse cursor changes and element can be moved to some other location by dragging.
    3. Rotate - the selected element can be rotated. When mouse cursor is near the "rotate handle" (represented by a small red circle initially at the top-right corner of an element outline) of a selected element, the mouse cursor changes and element can be rotated around its pivot by dragging.
    4. Scale - the selected element can be resized/scaled. When mouse cursor is near the "resize/scale handle" (represented by a small red box - all the outline corners other than rotate handle) of a selected element, the mouse cursor changes and element can be resized/scaled by dragging.
  7. Insert graphics - user can insert SVG image located on the filesystem into existing content. The conflicting identifiers are reassigned so that one image can be inserted several times. The inserted image is wrapped in <g> envelope and user can manipulate (e.g. move, rotate, scale, delete) with image as if it was a single SVG element.
  8. Delete - remove selected element or inserted graphics
  9. Layer control - it is possible the change drawing order of individual elements. The following actions are available
    1. Move to top
    2. Move to bottom
    3. Move backward
    4. Move forward
Note: The element nesting level is not affected by any of the above operations, so it is possible to change drawing order only of the element siblings. For example the "Move to top" may not be always sufficient to move selected element on the top of ALL elements in the SVG image.

Export features

  1. Ability to save images to JPEG and PNG
  2. Ability to set compression level when saving to JPEG
  3. Ability to specify progressive mode when saving

SVG Components

  1. New class SVGPlayer has been introduced
    1. SVGPlayer contains many utility methods for manipulating underlying DOM tree (e.g. startAnimation, rotate, move, scale, ...)
    2. all DOM manipulation methods have also thread safe variant (i.e. the manipulation is always done in the document udpate thread)
  2. SVGAnimatorWrapper has been deprecated - please use SVGPlayer instead of SVGAnimatorWrapper


Milestone 9 (04/18-04/30 2007)

Mobility Pack Is Part of Standard NetBeans Build

With the new NBI installer the Mobility Pack become pat of the Standard and Full distribution of NetBeans. You don't have to download it separately.

Improved Project Configuration Management

In M9 the is an improved user interface and new SPI for plugging custom Device Databases.

Template selection for each new project configuration is now a tree structure. The tree is composed from multiple providers (ConfigurationTemplateFactories).

Any 3rd-party module can now plug in a factory providing information source of new project configurations. That factory might be for example a wrapper of some device database.

Attached project msjdd.zip(info) contains a sample module showing how easy is to implement a custom device database provider now.

Image5.png

Project Configuration Manager Improvements

Image2.png

Add Project Configuration Dialog now supports multiple providers in a tree.

Image1.png

Add More... action has been added to quickly add multiple project configurations at once.

Image3.png

Duplicatation of project configuration has been improved. Different dialog asking for new prefix and suffix appears when multiple project configurations are selected. New project configuration names are then derived from the selected plus prefix and suffix.

Image4.png

Improved Build of Multiple Project Configurations

"Build Selected" instead of "Build All" is now used.

Image6.png

Configuration selection dialog then appears. User selection is persistent in project private properties.

Image7.png

Build process does not stop when one of the project configurations build fails. It continues and fails at the end with summary message of passed and failed configurations.

Image8.png

Improved Screen Designer

It renders almost all components and supports in-place editing, tasks menu. The UI has been improved. Here is the screenshot:

ScreenDesigner1.png


Milestone 8 (03/19-03/26 2007)

Game Builder

Visual editing support for MIDP 2.0 Game API including creation and editing of Sprites, TiledLayers and their arrangement into scenes. The main goal of the Game Builder module is to reduce the effort involved in creating common game components.

The following screen-shot shows the New Tiled Layer dialog which allows user to create a new tiled layer using the appropriate image resource with the correct tile size.

dialog_new_tiled_layer.png

Once a new tiled layer is created it can be edited using the available visual editor. This allows the user to modify the contents of the tiled layer and receive instant visual feedback. The tiled layer editor also includes support for animated tiles.

editor_tiled_layer.png

Another layer type supported by the Game Builder is Sprite. In the gaming context, sprites usually serve as animated characters or objects. The screen-shot below shows the dialog used to create a new sprite.

dialog_new_sprite.png

Game Builder treats sprites as a collection of animated sequences where each sprite can be contain a number of sequences. The sprite editor allows editing and previewing of multiple animated sequences simultaneously.Below is a screen-shot showing sprite editor in action.

editor_sequence.png

The scene editor is provided to organize all layers (sprites and tiled layers) together into scenes.

editor_scene.png

New custom components

Four new custom components in the Palette of new Visual Designer:

  • File Browser
  • SMS Composer
  • Login Screen
  • PIM Browser

Palette with new custom components

Palette

File Browser - File Browser custom component lets the user list files and directories. It's uses FileConnection? Optional Package (JSR 75). The FileConnection? Optional Package APIs give J2ME devices access to file systems residing on mobile devices, primarily access to removable storage media such as external memory cards.

File Browser

Login Screen - The login screen custom components performs some interaction behind the scenes for validation purposes.

Login Screen

SMS Composer - provides an easy and convenient way to send SMS message from Java ME application.

SMS Composer

PIM Browser - Uses PIM API which gives access to the Personal Information Management (PIM) database including to-do lists, calendars and contact data. Requires JSR 75.

Example MIDP application with new custom components

MIDP example


Milestone 7 (02/12-02/20 2006)

CDC Pack Features Integration

All Mobility Project Features Available for CDC Developemnt

Integration of CDC features into Mobility and even direct merge of the project systems allows to share all the Mobility features for CDC development. Some of the important features that are now available even for CDC development are:
  • Preprocessor support for device fragmentation - Develop code for any number of devices with a single code base. You can also import projects from Antenna and J2ME Polish without losing your preprocessor coding.
  • Configuration Support: User-defined Abilities allow flexibility when creating configuration specific code blocks. Also, you can use project templates to create a configuration once and use it in multiple projects
  • Deployment Options: Upload your MIDlets via WebDAV, FTP and SCP from within the IDE
  • Project support, built on Apache Ant: Organize your MIDP source code and project metadata for easier coding and management. Projects also enable you to build your project outside the IDE
  • Integrated obfuscation and optimization support: Add security, improves performance and optimizes the size of your application

Note: Preprocessor is fully working for all Java sources within Mobility Project however for Matisse sources there is no editor support yet. There is temporary missing preprocessor coloring, code completion, error annotation and preprocessor contextual actions in Matisse source editor.

Sample of preprocessor usage in CDC development is on the screenshot.

Image12.png

CDC Platform Support

CDC Platform Support from CDC Pack was completely migrated to Mobility Pack. You can install and manage the same set of CDC platforms as in CDC Pack 5.5.

Image1.png

CDC Build - Run - Debug Integrated in Mobility Project

Mobility Project now supports seemless build, execution and debugging of all supported CDC platforms.

Image13.jpg

CDC Customization Integrated in Mobility Project

Mobility Project Customizer has been extended about many new panels. Most of the panels are now triggered by selected platform - so you see them only when you select appropriate platform. All the customizer pannels fully support project configurations.

Two of the new panels including "Advanced" sub-dialog are on the following screenshots.

Image3.png

Image10.png

Improvements in Mobility Project to Support Platform Independent Development

Mobility Project has been improved to better support various platforms other then CLDC/MIDP. Some of the latest improvements are listed below.

Extension of Ant Build System

Ant Build System now supports multiple sequencies of build targets. One sequence is invoked for project execution and debugging (init ... compile ... jar ... run or debug). The other sequence is invoked for project build (init ... compile ... jar ... build). This change helps to distinguish between the build steps required for execution and debugging and the build steps necessary for the final application distribution build.

Image2.png

Triggered Project Customizer Panels

Project customizer panels can now be displayed by state of any trigger project property (f.ex.: platform.trigger, platform.type, etc...). This feature helps to improve usability and eliminate all inappropriate customizer panels according to given project context.

Following screenshots show how two different customizer panels are switched by context of selected platform.

Image8.pngImage9.png

Extension of Deployment API

Original deployment API was designed to deploy Jar and Jad. The modification now allows to specify folder to deploy (deployment.directory) and wildcard pattern (deployment.patternset). This change applies to generic deployment types (like Ftp, Scp, WebDAV, etc...), all device-specific depoyment types stay untouched. For example SonyEriccson CLCD/MIDP Device Deployment plugin still deploys Jad and Jar only.

There is sample of the new script performing FTP deployment by the new API.

Image6.png

Redesign of Current Project Customizer Panels

Some of the customizer panels had to be redesigned to better fit the platform independent style. One of the example is on the screenshots. Jad-specific settings were move from Deployment panel to Jad/Attributes panel.

Image7.png

Image4.png


Milestone 6 (01/08-01/15 2006)

JSR-172 Stub Compiler Rewritten

The stub compiler for Web Services API (JSR172) has been completely rewritten from scratch. The new generator has support for Base64 type. It is able to parse documentation from methods. The UI is still as simple as possible. The generated code changed to be more usefull. dialog.png note : the Sample MIDlet isn't generated yet. We do expect the functionality back when the Visual Designer 2 will be stabilized.

Visual Designer 2

The new version of Visual Mobile Designer is included.

Major changes:

  • does not have Screen Designer, SVG components
  • new style of Flow Designer, Inspector, Properties, Palette
  • supports MIDP-2.0 components only

Designer project has its wiki home page at MobilityDesignerHome with detailed documentation.

Designer 1

The new version is not a full replacement of the old version yet. Therefore both versions are included together in the release.

Old version files are handled by Designer 1 without any change of the behavior from previous release.

Creating a New File

Designer 2 introduces new file templates:

  • "MIDP | Visual MIDlet" for creating visual midlets - represent a MIDlet
  • "MIDP | Visual Design" for creating visual designs - represent a fragment of mobile application that could be used by MIDlets

File template from Designer 1 are deprecated but still visible and usable as before.

file-templates.png

New Style

overview.png

Flow Designer has a new style of graphics. The new style should naturally improve readiness of the design. New algorithm is used for automatic layout of a design. Allows quick visual navigator for big designs. Shows all commands of all components (even one assigned to Items).

Inspector shows all components in a document and allows you to created whole application without touching any other window.

Properties window have two tabs:

  • Advanced - contains list of all properties available for a component. All properties of all components have a specialized property editor which also allow you to specify an user-code as their value if possible.
  • Basic - "nicer" property editors of most used properties e.g. big text-area for editing the text of a textBox.

Palette marks components which are not available on the classpath of a project. Does not allow to add user components yet.

File templates of Designer 1 still exist but have been deprecated. The Designer 2 contains

Flow Designer

In Flow Designer, not only Displayable components are visible. There are also non-visual components which allows handling specific situation like Mobile Device. There are 4 basic types of visual objects in the Flow Designer:

  • Nodes - usually Displayable component or flow-significant non-visual objects
  • Pins - usually Commands or non-visual objects that represents a particular place in the source code
  • Edges - represents a flow action e.g. switching a displayable, executing of a defined user-code, ...
  • Badges - icons assigned to nodes, pins which represents a special behaviour assigned to a particular node or pin e.g. "Go to Previous Screen Action"

Start and Resume MIDlet

The MIDlet can be started or resumed. Now you can handle both cases independently.

start-resume-flow.png

start-resume-code.png

Entry Point, Call Point component

"Visual Design" files allows you to create fragments of mobile application. To navigate throught VisualMIDlet and multiple VisualDesigns there are two new components:

  • Entry Point - represents a method in designed class. The method contains a code specified by an action assigned to it "Entry Called" pin.
  • Call Point - represents a code fragment. When a transition is pointing to the Call Point, then the specified code fragment is executed.

call-entry-flow.png

call-entry-code.png

If, Switch Components

"If" represents a flow forking based on a specified condition. "Switch" is similar "If" component but you have to specified cases by assigning "Switch Case" components.

if-switch-flow.png

if-switch-code.png

List Action

In Designer 1, you have been able to create a transition for each List Element. This functionality is still available in the Designer 2. Additionally there is a possibility to handle all List Element independent as a single transaction.

The "List.SELECT_COMMAND" (assigned to each list) is hidden by default. You can show it by changing "Show Select Command" property of the "MyList | Assigned Commands | List.SELECT_COMMAND" component in the Inspector. Then you will see the special "List.SELECT_COMMAND" in the Flow. You can use it then same way as any other command.

By default "List.SELECT_COMMAND" has "List Action" action assigned. This action mean that the "myListAction" method is called. The method contains a code which is performing actions of assigned list elements based on the list selection. Use you assign "List Action" to any other command in your List component.

list-action-flow.png

list-action-code.png

Previous Screen Action

The "Previous Screen Action" is an action which switch current displayable to a displayable which was show before the current one. This help in creating wizard like application. You are just modeling "Next" and "Finish" button. All "Back" command can have "Previous Screen Action" assigned. The action is shown as an icon instead of an edge.

previous-screen-action-flow.png

Analyzer

The Analyzer panel provides design analyzes. For example when you create a command and not assign it to any displayable, then it is not used and could be removed from the design. Those commands are hard since you would have to search throught all displayables. With "Unused Commands" analyzer, you can do it with a single click at "Remove Selected" button. More analyzers will come in the future.

analyzer.png


Milestone 5 (11/20-11/24 2006)

Mobility Skips Milestone 5

Due to changes in NetBeans' java infrastructure (Retouche) Mobility Pack is in process of integration of this new infrastructure. The builds are not working right now and most of the functionality was removed from dailies. It will be added back till Milestone 6.

Mobility Pack will skip the Milestone 5.


Milestone 4 (10/16-10/20 2006)

Mobility Deployment Manager

The deployment management split into global Mobility Deployment Manager and project-specific deployment customization.

DeploymentManager.png

In the Mobility Deployment Manager it is possible to create several instances of each deployment type (for example several Ftp server connections).

Deployment-customizer.png

In the Deployment category of project properties there is a new combo to select the deployment instance prepared in Mobility Deployment Manager. Some of the deployment options are still project-specific (for example path on the Ftp server) so they are customizable in project properties.

Flexible Build System and Project Customizer

The buildsystem of NetBeans Mobility was completely changed. Now it supports various plugins that can register their customizers and build script fragments. For the standard set of features there is no visible change however when installed an aditional plugins - the magic things begin to happen.

Several Experimental Plugins

The main reason to introduce these experimental plugins was to demonstrate and verify the capabilities of the new flexible build system. These plugins are not a fixed part of NetBeans Mobility, they are installable separatelly as NBMs, and their sources are open as the rest of NetBeans and Mobility.

RIM BlackBerry Plugin

This experimental plugin should completelly replace the textual guide how to integrate BlackBerry JDE into NetBeans Mobility.

The plugin teaches NetBeans Mobility how to detect RIM BlackBerry JDE 4.1.0 and 4.2.0, how to build, execute, and debud the application on the emulator, and how to deploy the application on the real BlackBerry device.

All this functionality is transparent for project configurations so each of you project configuration can use different emulator - no matter if BlackBerry or not.

BlackBerry-platform.png

The RIM BlackBerry JDE is now detected and installed automatically.

BlackBerry-debugger.png

The debugging works instantly.

BlackBerry-deployment.png

And the new deployment plugin delivers your application directly to your device.

Java SE Plugin

This is another proof-of-concept plugin that verifies capabilities of the new build system. Main purpose of this plugin is to allow mobile project library to build one of its project configuration agains Java SE bootstrap libraries. May be you will find another use for this plugin but it is very simple and it is not designed to compete fully-featured Java SE project type.

JavaSE-plugin.png

The only you can specify in this plugin is you main class for execution (if any).

MPowerPlayer Plugin

This plugin is pretty much a production quality and will allow the Mobility Pack to recognize MPowerPlayer as a standard Java ME emulator using the regular Add Platform wizard. The operation is completely transparent. Simply build and install in the IDE and then add it using the Java Platform Manager. This should certainly please the Apple users as this is their only option when they decide to develop Java ME applications on their Mac.

SVG support

SVG support from release 5.5 was merged to trunk. This also means the version of the document is now equal to 5.5, so it is possible to edit the visual designs in both versions of the IDE.

MVD_SVG_screenshot..png

Mobility Code Snippets

Milestone 4 provides infrastructure for creating code snippets that can be easily inserted into the source code with minimum effort. Some sample code snippets are included in this release but users can add their own using the same approach as described http://platform.netbeans.org/tutorials/nbm-palette-api1.html. The module to modify when adding your own snippets is Mobility Code Snippets inside the Mobility suite.

When adding the snippets make sure you add them to class context otherwise the code will not be compilable. As of this release no analysis is done on the code prior to inserting to avoid this problem.


Milestone 3 (09/11-09/15 2006)

Logical View in Projects Window

The Source Package, Resources, Project Configuration are visible right under project node.

logical-view.jpg

Resource Management

You don't have to open the project properties when you want to create new configuration. You can add new configuration, delete old, copy configurations, copy jars/libs among configurations etc.

resource-management-nodes.jpg


Initial Contribution

  • Visual Mobile Designer: Drag-and-drop objects into the Flow Designer, Screen Designer, and Action Editor to automatically generate java code for rapid development and prototyping
  • Wireless Connection Wizards: Easily access web services client and other server-side date from MIDlets via servlets.
  • A solution for Device fragmentation: Develop your applications for multiple devices by adding and executing device-specific code as configurations within a single application
  • Configuration Support: User-defined Abilities allow flexibility when creating configuration specific code blocks. Also, you can use project templates to create a configuration once and use it in multiple projects
  • Deployment Options: Upload your MIDlets via WebDAV, FTP, and SCP from within the IDE
  • Project support, built on Apache Ant: Organize your MIDP source code and project metadata for easier coding and management. Projects also enable you to build your project outside the IDE
  • Integration with the J2ME Wireless Toolkit 2.2: The NetBeans Mobility Pack provides support for advance development features such as MIDlet signing, certificate management, integrated over-the-air (OTA emulation, push registry emulation, Wireless Messaging and Multimedia APIs, and WMA emulation features for SMS and CBS messages
  • Support for MIDP localization: Enables you to add locale-specific components to you application
  • Support for J2ME MIDP 2.0 and CLDC 1.1 standards
  • Support for adding third party emulator platforms: Test your application on a variety of target device emulators by leading manufacturers
  • Integrated obfuscation and optimization support: Add security, improves performance, and optimizes the size of your application
  • Over-the-Air (OTA) Download Testing: The emulator simulates the behavior of real mobile devices