Overview of Features in Mobility Pack 5.0
By lukas on Oct 07, 2005
This is my quick overview to let you know what is new and how to use it.
Mobility Pack Overview
- Improved Wireless Connection Bridge - cooperation with web project is better. It supports custom types and even inheritance now. The length of arrays that it is able to manage increased to Integer. It use fast binary protocol for transfer of all these informations from client to server and back. User has full access to generated code, no libraries are required. It is able to generate client and server side of communication. Follow steps in wizard and then run SampleMidlet to see how it works. Please note that SampleMidlet only shows how to work with the client it isn't desired to be used as real app.
- Support for Java ME Web Services (JSR 172) - it generates client for communication from WSDL file that can be either local or URL. I tried to generate SampleMidlet for a simple service and it was only select and click If your service returns a custom types you'll have to manage it by yourself but it's easy.
- Custom Components in Visual Designer - there are three new components in palette. I think that their functionality should be obvious from their names - WaitScreen, SplashScreen, TableItem.
- SplashScreen can be used when your application starts and you want to show a logo or a text to user.
- WaitScreen is best for showing an information during tasks that takes some time e.g. connecting to a server. The WaitScreen has two possible ways how to continue. First 'Failure' option is used when the task fails e.g. connection isn't established. Second option is 'Success'. Guess when it's used. You'll need to create and assign a SimpleCancellableTask to specify the task that should be done.
- TableItem is new custom item. Use it in Form screens. It looks like a table. It even behaves like a table. It's easy to manipulate content of this component through SimpleTableModel. You can create static context of a table in SimpleTableModel property editor. If you want to have a table with dynamic context you'll have to code. You'll have to create TableModelListener to manege an action in the table... I didn't played with it too much yet.
- Preprocessor Changes - this features changed very much and it provides more flexibility now. The PreProcessor(PP) block definition is now more cpp-like. I thing it's more readable and the opprtunities are really great. Abilities can have value and you can create so crazy conditions like
//#if mmedia //#if nokia //#if s60_ver=="1.0" import com.nokia.mmapi.v1 //#elif s60_ver=="2.0" import com.nokia.mmapi.v2 //#else import com.nokia.mmapi.def //#endif //#else import javax.microedition.mmapi //#endif //#endifIsn't it nice? Look at all PP directives. There is also cool code completion that offers you all directives and then available abilities/configurations. You will want definitelly to use abilities when you'll discover their power. You'll have to write the PP block definition by hand because the opportunities are so huge they wouldn't fit into context(popup) menu. There are error stripes appearing when there is an error in PP block definition (but it's standard, isn't it?)
PP blocks from NB4.1 will work even in NB5.0! Suggestion to convert into new (5.0) style will appear when you move cursor over the line and you can easily convert them to new style. You cannot combine old and new style in one PP block.
- Visual Designer Improvements - the space for designer is bigger. Palette is unified in whole IDE. Generated code is divided into more guarded blocks and the Action editor disappeared. You can edit the pre/post-init and pre-post-action part of code directly in source editor. Use right click on a component and 'Go to Source' action.
Algoritm for finding the best path of transition between components was improved. You can re-layout look of your design manually - press CTRL in Flow Designer and you can move ports and transitions.
- Emulator Platform
- Automatic Mobile Platforms Detection - the wizard is able to find all your installed SDKs (it looks into registers on Windows) either automatically or you can provide specific path where it should search for SDKs(emulators).
- Custom Platforms definition - there is one more wizard for creating custom platform - use it for non-uei emulators. Create your own platform by specifing Preverify, Execution, Debug Command and and selection of jars for bootstrap libraries. I was able to easily add non-uie emulators and use them. (e.g. I'm preparing a post about use mobility pack on Mac)
- Automatic generation of configuration templates when you create a new project
- Automatic detection of abilities - it creates abilities for you in dependency on used platform/emulator.
- SonyEricsson deployment - connect your SonyEricsson to computer and deploy to it directly from IDE. Look at Project Properties > Deploying > Select Deployment Method
- Error Hyperlinks in Output Window - it didn't worked before. It behaves as you'd expect now. Click on error link opens the proper line in editor.
Well, most of these features deserves it's own post or tutorial. Maybe a short flash demo? I plan to create demo about the JSR172 with deployment on real device (thank you SonyEricsson that you are so kind to developers but on what should I test it? OK, just kidding I'll borrow it from them they are still kind to me after all those bugs that I reported them )