Thursday, December 26, 2013

Gradle 1.9 and Android plugin 0.7+

Latest update of our plugin brings changes in Gradle support. Similarly as in Android Studio 0.4 it now requires Gradle 1.9 for its projects and use of android plugin version 0.7+. This update opens door for future support of other test types than instrumented tests. Stay tuned. The API is under development but hopefully we will find a good way how to add testing related features soon.

Related to this change is an update of Android SDK libraries to 22.4.0. Most users should not be affected by this change.

Saturday, November 16, 2013

Gradle project testing

I am serious about Gradle support and testing in general and now the result is also visible in our plugin. The latest update brings significant changes in the Gradle project support - it is aware of instrumentation tests, their dependencies and how to run them. Obviously the attached image show only the simplest example but still you can see that the project tab now hosts more node to include content related to testing. Editor is correctly hooked up with project structure and resolves symbols in the source file. And finally at the bottom you can see the output from a test that was run on emulator. Neat.
There is always more. In this case 'Test File' and 'Debug Test File' action are not supported and can be added soon. Please, send you feedback to nbandroid-discuss at if you are interested. I am also consider adding support for Robolectric. Android tools team does not show them much love in their Android Studio at the moment so it can be an interesting exercise. Again leave as a message if you would like to see it done.

Saturday, November 2, 2013

Debug Gradle project

The last update brings an improvement for Gradle projects: debug action is available now. This is first step to make other actions like 'debug file' and similar working. It is part of my plan is to move focus to Gradle support.

Saturday, October 12, 2013

Run and debug test classes

I was pinged recently if it is possible to debug tests using NBAndroid. Unfortunately this was not working yet Christopher was willing to take a look. The bad part is that it takes a while to get familiar with the code so my hints were not enough to guide him quickly to a patch.
Nevermind, I've spent some hours yesterday and then again today to add support for 'Test File' and 'Debug Test File' actions. Technically it will be possible to add 'Test Method' action in the future as well. Another step is to re-implement this support for Gradle projects too.
To make it even better the functionality is added to free version. I didn't want to spent extra time and create another barrier. Still it is my hope that some users can appreciate the result and go for subscription (or make a donation).

Thursday, October 10, 2013

Feedback form

I put together a short form to collect feedback on our plugin functionality. To get some input I will ask NBAndroid Extension users. Of course the more responses there will be the better. It will help in deciding what to do next.

Tuesday, September 24, 2013

JavaONE 2013

I have a good time at JavaONE this year and believe it will help NBAndroid project as well. There was a short presentation and demo of NBAndroid at NetBeans Day. More people can find the plugin now thanks to an article on DZone describing plugins from that presentation.
One of the reasons to go to a conference like this is to meet other people. I am glad that I could talk with Attila Kelemen and Hans Dockter. Attila is the author of Gradle plugin for NetBeans and we worked together for a while to create Android support for new Gradle projects. Hans is CEO at Gradleware and it was great to meet him and we had a nice chat about build systems. More to come here.
The conference is not over yet so if you are there and want to talk just ping me (radim at kubacki dot cz).

Wednesday, September 18, 2013

Gradle meeting GUI preview

Two big features of NBAndroid are now converging. Gradle projects offer similar layout rendering functionality as Ant-based projects. It means that our rendering code was enhanced to accept information from Gradle project and knows about its different and more flexible structure to be able to generate an image of rendered layout.
Of course there is a lot of work to make this better - support all possible configurations for rendering, support for fragments being most obvious. Hopefully they will come in too.
I am very excited about this. So much that I'm going to show this at NetBeans day during NetBeans Community Tools with JRebel, Jelastic and more! session. If you attending JavaONE come to visit this talk.

Sunday, September 1, 2013

Back to work

I just got back from vacation and it is time to do some cleanup and planning:

  • There are some issues in our tracker that I need to deal with.
  • A new improvements to layout editors are almost ready and will be published after some polishing.
  • A subscription key was send to people who asked to use NBAndroid Extensions for education in their class.
  • I need to prepare a short talk&demo that will be part of NetBeans Community Tools with JRebel, Jelastic, and More session at JavaONE (on Sunday, Sep 22). Happy to see you there.

Sunday, August 11, 2013

From AndroidManifest.xml to Java classes

With the navigation groundwork laid in previous weeks I could add another extension relatively easily. AndroidManifest.xml can refer to various classes in your projects: activities, services, providers and so on. For a while this was ignored by NBAndroid navigation support that helped you to get from Java to resource files or move between resources. Starting with the plugin version 1.154 you can use hyperlinking in AndroidManifest.xml editor on these android:name values. Summary of these enhancements will be built in our Wiki page.

As it is usual recently: it took me hours to implement this and it will increase your productivity and thus it is locked and enabled for those who posses valid subscription key.

Friday, August 9, 2013

Better Wiki

Take a look at our new Wiki. This is another step in my effort to get rid of old legacy. We're going to use custom wiki and project downloads server together with simple bug tracker at BitBucket (this can be replaced if it is not flexible enough).

Sunday, August 4, 2013

Back to GUI preview

There are few changes in layout preview functionality:
  • Configuration derived from a folder name of displayed layout is now taken into account. It means res/layout-land/main.xml will be rendered automatically in landscape mode.
  • Various bugfixes.
  • Preview is available as part of NBAndroid Extensions only. It means you will need valid subscription.
The last step is not an easy decision and I hope it will help to create sustainable model to support this project.

Saturday, July 13, 2013


I've added statistics collector to NBAndroid plugin. The goal is to gather information about plugin usage: how many users we have and what are the most common tasks to focus the work into these areas. Collected data is strictly anonymous and will be used purely for statistics collecting. Behind the scene there is a StatsD daemon that is pinged by UDP once in a day if the plugin is actively used. And carbon/graphite running on machine to visualize the data. If you feel strongly about this you can disable this (assuming you have a subscription key or you will read the source to find your way).

Another small change is related to plugin interaction with ADB. There is some additional logging to IDE log file added because there are some problems reported occasionally in this area.

Wednesday, July 10, 2013

Debugging for Maven projects

I was reminded recently that Andriod application debugging is not supported for Maven project. Apparently there is not so many differences between various project types so I was able to add this support. Please give it a try and send me some feedback.

As a side-effect you can also enjoy better support when editing AndroidManifest.xml in Maven projects too.

Thursday, June 13, 2013

More Gradle

The work on Gradle support continues at a steady pace. There are some hidden thing that were needed to properly support these new projects where various folders with sources are created and removed as you build or clean projects. In addition to that there are some UI changes too. And it is time to bring in support for build configs and product flavors soon.

Some other changes are done in parallel: Jenkins build in now performed on a virtual server hosting site. I thought about various free build services. The problem is that we need to build against NetBeans modules and some of their test JARs. This is not so bad. But we also need Android SDK and test against various target platform that are installed there. Luckily the SDK can be installed in a headless mode. It consumes some gigabytes of disk spaces and this makes it impractical to spawn a build server somewhere and clear it up after build. I am not mentioning NBM signing and other things. They all have solution and I just looked for the simplest one. Take it as a reminder that the project has its costs and can die without support.

Monday, June 3, 2013

Gradle branch merged

Good news for anyone who wants to try new build system for Android projects announced at Google I/O based on Gradle. Our feature branch is now merged into regular nbandroid sources and the first early-early preview is available from our update center together with latest version of Attila Kelemen's Gradle plugin for NetBeans.

Needless to say that this wouldn't be possible without Attila who made plenty of changes in his plugin to open it for extensions like Android. Thanks a lot. As you can see we did it in less than three weeks and we know there are many more things that needs to be done.

What is working and what is not:
  • Android projects based on Gradle are recognized. Gradle 1.6 (or newer) and Android's Gradle plugin 0.4 or newer are required.
  • Build and run actions are tied to assembleDebug tasks (note that sometimes you have to set location of Android SDK in Tools | Options | Miscelanelous | Android to enable communication with the device).
  • Classpath is hard-coded to use debug buildType at the moment and recognizes dependency on JARs and AARs but surely there will be various glitches.
  • Run tries to deploy the application and starts its main activity. Customization of this behavior will be added.
  • UI in projects tab will be modified soon to better accommodate all the parts of Android project.
  • Support for test editing and running is not there yet.
  • XML editing should be on the same level as for the original project type.
  • As a side effect when using Gradle projects for pure Java development with both Gradle and NBAndroid plugin installed there will be some performance penalty during project initialization.
Final note: the functionality will be locked to subscribers soon to get funding for this project. If you want to see this effort completed consider the subscription now. I have to repeat this again: Oracle (owner of NetBeans) is not investing here and you cannot expect it at least until their lawsuit against Android is solved and there is no sponsoring from Google either which is even more sad as they now directly support Eclipse and their IntelliJ based Android Studio.

Sunday, May 26, 2013

Next stop is Gradle

Gradle is the build system that will be used for Android project in the future. It means we need to be ready to adjust NetBeans support to changes coming.

At the moment there is a work in progress to create a bridge over existing Android support and Attila Kelemen's Gradle plugin for NetBeans. There are plenty of things that needs to be done because the way how project is built is changed and the whole project layout is different and more flexible. On a positive note the basic sample is almost working - its classpath is recognized and it means Java editor works. Application resources have similar level of support as previously. I need to tune application launching and project dependencies and will release first prototype soon.

Meanwhile you can help if you visit our subscription page and help support this project.

Tuesday, April 30, 2013

NBAndroid shows in NetBeans statistics

I think that the Android project type is the only one that is not part of standard NetBeans distribution and made it into this graph generated on NetBeans statistics page. Version 7.2.1 produced similar picture. This is done by our users, thanks!

Sunday, April 28, 2013

Formatting and more

Top news for this update: formatting preferences are now visible in project customizer. Barring a stupid bug in internals of our project support written long time ago this would be a simple change. Anyway it is now part of NBAndroid Extensions.

If you are not NBAndroid Extensions users yet you will still benefit from recent changes. These include fixed handling for Java source encoding, support for specified Java source level or some other bug fixes.

Resource navigation is theme from last weeks. There are another improvements in this area too. More XML to XML hyperlinks (string, drawable, color). More types of drawables are recognized now. And the whole support is ready for another growth.

Friday, April 26, 2013

More hyperlinks

The basic support for hyperlink navigation is ready and works in Java sources for some resource types. The last update brought an obvious extensions of this work - attribute values like @string/my_value is recognized as well and Ctrl-mouseclick will move you to proper file in res/values folder.

Again this new improvement is part of NBAndroid Extensions. It means you need to install this module together with Android module and make sure you have a valid subscription.

Thursday, April 18, 2013

Tuning hyperlink navigation

R.styleable and R.drawable are another two types of resource identifiers supported in Java source files where you can use Ctrl-mouseclick to open the resource. Again it is not working across project borders but it is beginning.

Don't forget that this functionality is part of NBAndroid Extensions and you will need your subscription.

Along with these changes there were minor bug fixes in prject opening and layout rendering.

Wednesday, April 10, 2013

Maven is back

The minimalistic job done for NBAndroid integration with Maven project was broken recently. The problem was change in pom.xml files used for Andriod project that express their dependency on Android target (platform version) differently now. Fix was pushed yesterday.

Saturday, April 6, 2013

About subscriptions

NBAndroid is an open source project and my plan is to keep this status. The problem here is that there are too few people interested in giving compared to number of people with big expectations about feature set, quality or level of provided support. We do not have a sponsor and total amount of donations is really low. This leaves me in a situation where I need to invest my own spare time to this project and get nothing.

This is not working long term and as a result I am looking for a way how to find a balance. At the moment the open source version of NBAndroid remains as it is: it uses Apache Public License, the source is available at BitBucket repository a some updates will be created to keep it in sync with curent state of Android SDK and NetBeans IDE.

In addition to that there will be a set of extra functionality provided to users who obtain their subscription. Both set of modules will be published at the same place - currently it is - and you can install the basic support only or get both of them.

The first add-on feature provided here is hyperlink support for navigation from Java sources to XML resource files. Ctrl-click on identifiers like R.layout.activityX will now open the file res/layout/activityX.xml. And there is even more: can navigate directly to a place where identifier is defined in your resource. There are various limitations (no support for platform files and libraries and only some resource type and some of the files are parsed now) that can be fixed later if there is enough interest (measured by number of active paying subscriptions).

Sunday, January 6, 2013

nbandroid-discuss mailing list

I have set up a new mailing list and it can ba accessed from Google Groups page. The reason behind this is that I am not happy with all the mailing lists automatically created for projects at that are mostly dead and causing confusion for newcomers. At the moment there were four lists - dev, commits, issues, users. I already removed and will send a message to tell people to subscribe to a new place. I believe that one list should be enough for all interesting communication and the amount of traffic there will still be manageable for anyone interested in the project.

Generally I'd like to detach NBAndroid from legacy because their project hosting is not what I'd expect. Downloads are already moved and mailing lists are moving now. I will think about bug tracker and source code in the future. At the moment they remain at their original location.