Wabash Notes

Posted: April 18, 2011 in Android, Java
Tags: ,

So Wabash is this set of ant scripts that I have been working on to support BDD and test instrumentation and some beginning MonkeyRunner stuff. The last set of steps is to switch to using the DroidDoclet the same one used by the android project.

This way I can combine different documents from child projects right in the same min-doc website along with the codeqa in a consistent manner. Plus for those projects where we might have jsdocs from webview and doxygen docs of C++ code makes it easy to incorporate that as well.

And than the final pain in the rear getting library project builds to work whereas the library project compiles first than the parent project.

Advertisements

Android App Marketing

Posted: April 7, 2011 in Android
Tags: ,

Everyone has been looking for a sales channels similar to Apple AppStore.  I found an innovative one that involves the context of the mobile device user in the process. It has some apis to access, but its not bad in that the coding time is somewhat small.

Now, to find a firm in Chicago that needs android development on a weekly basis so that I can use free time to put into action.

BDD vs TDD in Android

Posted: April 7, 2011 in Android, Java
Tags: ,

Several firms including PivotalLabs have advocated choosing TDD for android development. Thus, one has to ask what have they forgot to mention is part of the android platform that will force most developers the other way?

Yes, TDD is faster if you execute the process as TDD..no that is not it. Android right now is a slightly crusted fragment platform. What is the most obvious choice to cope with that fragmentation? Let me put another way.

Do you have $1000 per month extra to pay deviceanywhere for their VirtualLab access? Show me the hands!  What can act as a sieve to allow you to make the correct performance, etc choices to target a majority of android OS versions in the market in users hands?

It is these things; the android sdk emulator and some smart programming choices. Think about it, the emulator does not emulate multiple core cpus or gpus which means it perfectly mirrors the low end android device.  Than by choosing BDD over TDD you are forcing yourself to examine those performance choices more closely as you will see them daily in operation as you execute all those BDD tests.

And to be blunt honest running BDD tests while coding in other areas is not that damn hard to make happen. Yes you kind of have to learn how your IDE operates so you can script some tasks, but so what?

Now lets go back to one of the first games on the G1, Replica Island. Guess what sieve they used to force them to make some performance and programming choices that happen to benefit the performance of the game? The sieve they used as the emulator and one G1 device which happen at the time to be very low end.

Now than look in the svn of ReplicaIsland you will see a game engine with very simple but powerful programming choice at its core. A modified mobile java singleton. With that and some other programming choices they got over 30fps on the G! devices.

Its not the agile process. Its going through every tool and process and asking does this tool or process fit within the constraints I have to work with. Now having stated that does an artificial sieve guarantee that you will make the right programming choices? NO, but you will see what happens if you do not right away right before your eyes as visual cues in that the application or game will run slow.

Android 4.0 at GoogleIO

Posted: April 4, 2011 in Android
Tags:

There was of course that ice cream sundae doodle which may or not be an April fools joke. But, we know that Google and OHA engineers are hard at work on the next version of Android. We of course know that part of Android 4.0 is a port of the Honeycomb UI to the smartphone device trunk, but what else is in Android 4.0 that we might see at the GoogleIO?

One, renderscripting for smartphones as the real renderscript that you could write code to was introduced in Honeycomb. Two, the 3d scenegraph in Honeycomb obviously will be ported to Android 4.0. To say that a small emphasis on game development will be the focus at GoogleIO 2011 would be a vast understatement as Google knows with its hiring of Game development Advocates for the Android Platform that games is one of the ways independent developers can monetize application development on the android platform.

You can expect to see worker and P2P support in the webkit branch demo’d at GoogleIO 2011 along with a heavy does of new html5 additions. Hopefully, the webkit web widget that OPhone uses is part of that equation.

Continued NFC evolution will be shown in that a new feature of having NFC negotiate a bluetooth connection and than hand off to that established bluetooth connection, I am knick naming it the bump-for-blue. Remember, you can use encryption to keep a NFC connection secure so would be a perfect way to ask for permission to establish a bluetooth connection.

And of course before GoogleIO we have another Android Tools update. What is in this update of ADT? There is already a code commit in android tools to have the android sdk installer within the ADT plugin so you would download the ADT plugin if you were an android beginning developer and install the sdk form the ADT plugin.

I do not know if Google/OHA will call it android 4.0 at GoogleIO2011. They may call it ice-cream sandwich and demo parts of it as Android 3.1. But this thus far as my guess what will be demoed at GoogleIO2011.

Side Note: I started my MobileBytes Google Sites aggregation pages to aggregate demos, videos, tutorials, etc and so there is a left top link for that and eventually in this month it will some neat stuff. Google Sites is easier that doing the some of the html part by hand although I will still update the github pages from time-to-time.

While the Android project uses make to drive a specialized doclet called droiddoc and a jni extension of the claersilver template engine you can use DocLava to come close as you will than have a specialize doclet with the java version of clearsilve(jsilver) as the template engine.

Hello everyone.  Sometimes you will see a Dalvik failed to convert error 2. What is happening is that one Eclipse IDE ini file JVM setting in combination with using JVMs from Oracle 1.6.21 or later causes this conflict.

The work around is to remove -XX:+AggressiveOpts from your ini file JVM settings.

Agile Android with a Vengence

Posted: March 26, 2011 in Android, Java

What you see above is a screenshot of MonkeyRecorder which is part of MonkeyRunner and unlike a different tool can be scripted in the IDE you use using python. The switch to some agile processes does not mean that you can suddenly complete a complex application in two weeks because some non-programmer says they need it in two weeks.

However, under the right conditions you can fast iterate prototypes in under 2 weeks. Thus, now I am on the final push to integrate MonkeyRunner in my Wabash dev tool. The difference between running a test suite with mocked user input and having MonkeyRunner execute tests with user input is that under MonkeyRunner its actual user input and not mocked.

 

Thus, just imagine that in your application code you log wrap some code that records at the beginning of a method the heap and traces and dumps those analysis onto the sdcard. So you could than have Monekrunner start the emulator and install the application ask for user input and as the last step push the heap and trace analysis files from the sdcard to the project reports folder.

You would think that some firm out there could use an android developer that builds his or her own dev tools. Once again these tools do not speed up the development processed based on a wrong management decision. However, they do speed up prototype iterations when management gets out of the way of the developer.

 

WabashDashboard

Posted: March 22, 2011 in Android, Java
Tags: , ,

Here is what the WabashDashboard looks like:

It was kept simple without use of grails-groovy, django, etc as wanted developers to be able to use it on laptops as well as desktops. I just used some effective iframes to make it real damn easy in operation.

The last part of Wabash to add is the ability to execute MonkeyRunner python scripts. Basically Monkeyrunner allows you to install the app and feed mocked user input to app and take screenshots and also install the android test project for the app as well within the same script and run tests.

 

If you attempt to use the ant scripts in android sdk  you will end up with a blank non-existent emma html report. Apparently you need to change the location of the coverage.em file in the emma report ask as its not in the test project folder.

I now the iphone dev tools are worse but damn it do we need to invent an effing Android drinking game to make the effing point, here?  Any time the supplied ant scripts in the andorid sdk are wrong take  a drink.

Okay, now that is fixed I need to add emma reports to the TDD/jvm tests in Wabash.

Wabash Progress

Posted: March 19, 2011 in Android, Java
Tags: ,

Most of the feature set is in including support for webkit projects, Native C, etc so that you can use an ant buildscript set with most of the stuff already in place. The last step is the dashboard and I have some interesting choices.

I could choose Groovy Jetty, Grails, RoR, TurboGears, Django, Symfony, etc. But at this point since I will be making use of Android SDK monkeyrunner which is in python, it makes sense to go with a python base such as Django or TurboGears. Than if I virtualenv and virtualenv wrap it makes it real damn easy to keep environments straight while at the same time having the dashboard live a a child project right in the app project directory which means it can serve a double purpose of being the project notes.

Later on I may make a refactoring of the ant stuff into python modules but for right now is very good progress as I will have a 0.0.1 release that only took 7 days of dev time while I was doing other stuff, not bad. For those poking around in Wabash, the Checkstyle, PMD, and android.pro(proguard config) files are 85% finished and you are welcomed to downloading them and re-purposing them. For beginners wait until I have a good set of instructions.