NetBeansMobileCenter

More and more Java developers are oriented towards developing for new, modern mobile devices. NetBeans IDE vision of providing the best of the breed support for the latest and greatest Java technologies needs to follow.

Alas, a lot of what is happening in Java for mobile is concentrated on end user application deployment (through various stores). Which is tedious and slow process, not suitable for fast edit/compile/debug cycle.

If we want to make NetBeans the primary IDE for mobile development, it is essential to shorten such development round trip time (at least) to speed of development for the desktop. This page outlines how we achieve it.

Usage Overview

A user of NetBeans IDE chooses to develop a mobile application. Creates appropriate project type using New Project wizard in the NetBeans IDE and designates it for a particular mobile device type (iPhone, Samsung, etc.) and either an emulator or real device.

When launching (for execution or debug) the project for the first time an instance of NetBeansMobileCenter application for that particular target platform is deployed to the device via standard development deployment facility provided by the vendor of the device type.

The (first or later) execution (or debugging) initiated from the developer's IDE then establishes contact with the (already deployed) NetBeansMobileCenter hub and instructs it to launch the project as fast as possible.

The developer can then make changes to the project and deploy (possible on save) them to the device again. Depending on the complexity of changes the NetBeansMobileCenter can either:

  • apply the changes to already running application
  • stop the application and load it again
  • ask user to restart (but not redeploy) the NetBeansMobileCenter itself

When the developer is satisfied with own application, it packages it for official deployment for the target device and deploys it to appropriate store in the appropriate format (quite different than the JARs and class files used by the NetBeansMobileCenter).

Scenario

NetBeansMobileCenter is a general, 100% pure Java application capable to run on any JDK6 VM. It has means to discover NetBeans IDE running around (either via direct IP address or via UDP broadcast) and protocols to let the NetBeans IDE communicate with the center.

The NetBeansMobileCenter will be packaged for deployment on appropriate device (Samsung phone or iPhone) or its emulator and deployed there with developer help (pressing a button in iTunes, etc.).

There will be a hook (or special action) that gets triggered whenever user wants to execute or debug a Java mobile project to contact the (selected) NetBeansMobileCenter and deploy necessary bits (JARs or class files) to the device.

TODO

  • Write the NetBeansMobileCenter app
    • Verify UDP communication
    • Use Knockout4Java to render the UI (eating own dog food + deploying with really lightweight UI)
  • Write supporting module or Maven plugin to run in the IDE
    • Verify mutual protocols for deploying whole JARs
    • Step 1: Work on the same computer
    • Step 2: Work on two homogeneous computers
  • Package and deploy the NetBeansMobileCenter app to mobile device
    • Verify mutual protocols (does UDP work at all)
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo