Latest Entries »

Android 5

Here is what I know thus far.  the features/far-reaching changes pushed back from ICS will appear in Android 5. Android 5 will be demoed at Google IO in the spring just as parts of ICS was demoed last year at Google IO. expected release of Android 5 than would be late summer to late fall. Or Android 5 and Android-5 Motorola Mobility devices may be given away at the Google IO.

At this point I have some good guesses at the features/changes, but they are only guesses and you should not rely upon them. However, its probably a good guess that that the enterprise features will be re-factored for improvement and that we will see another UI over-haul. Will we see a Google Chrome clone with Silk-Browser cloud pre-processing like KindleFire? Do not know, but it could be a possibility.


Apparently, when someone handed out brains they left out the group called recruiters. Thus, so lets try this again.

I run a business where I develop android applications. That kind of means that I do not want to work as an employee for your client, oh dim witted recruiters. I have found in programming since I was 8 years old that the best choice of project managers and opportunities is when I have full control lover those choices instead of someone else rather than trusted those choices to someone who is domain knowledge removed from those choices such as a recruiter.

Do not take it upon yourself to email me after I have said no with rude comments and snide commentary as it is not in my interest to care where your next sale comes from or even if you get one, just accept that you did not access the situation correctly when you read my linkedin profile and saw that I operate a business.

For those that access the situation correctly,  things are required for me to talk to you via email and those are:

1. A project description

2. A budget range

3. An understanding that all freelance developers charge for their time and work and ask for advances on project costs.

4. If continuing project from a previous develoepr, the source code. And do not forget to send the NDA I signed back to me with your signature, I should not have to remind you a five-year-old-child about that either.

If I do not have those things than I cannot continue the conversation with you as much as I might like to talk to you I have things that have to be coded and built just as you in your professional time have to manage your business and thus I am very sure that if you want anyone to respect your time than you will respect mine.

And, last I only allow myself to be entered on developer lists that businesses keep because they out-source projects if the business understands that to get that right they have to at least buy me one meal.

New Bug Tool from SonyEricsson

SonyEricsson has a new tool out that puts the bug report the android handset produces in searchable html form and they have open-sourced it.

So those Agile Android Articles

At some point last year I stated that I wanted to teach android differently. Some of that is that you should start teaching certain things sooner such as Agile. Thus, recently I re-did the design of my gh-pages website. Not only is it now view-able on mobile but also I am starting to put up long articles there, such as the Contrarian View, DeviceID. Believe it or not a lot of assumptions about using ANDROID_ID and or deviceID are somewhat wrong and ill-advised, you probably should read the article.

For example, ANDROID_ID is null for Kindlefire, along with deviceID if its a WIFI only device and yo guys know hat googleTVs do not have deviceIDs, right? THe article offers new solution and the code to implement that solution.

As I go along during the year I will be filling out the article list with articles on agile.As a side note the trick of pinning the 2nd navigation bar upon scrolling is in the application.js and you can clone my github repo to get it along with a recent copy of twitterbootstrap2.0.

From time to time I get requests to ‘rescue’ a gig because some developer is leaving the  project. Which is fine,it happens but if I was leaving the project my last act wold be recommending a developer to take my place. But, in most cases its the middle company or end client makig the request.

But, that is not really the problem. Its a level of expertise used before not matching what could be implemented to save the end -client costs n the long-term while delivering a high quality look-and-fell mobile android application. For example, its common for me to use at least one class that is compiled to the highest device-target out in the android market simply because I am wrapping classes to target common UI features/functionality. In other word part-of-the-fell of that UI.

The other aspect is right now to avoid constantly updating an UI per OS release that comes down to end-user devices for apps that are distribute internally in a company you have to target  that compatibility library. Not only do you have to target it but you have to modify or customize it. Its real damn easy to see or analyze and determine fi some developer is not doing that even if you are only exposed to the project manager conversation.

By me asking for source-code and getting said source-code the project manager is communicating to me that they understand that I am reviewing(interviewing) them and they accept that I may make suggestions to improve their project situation and that the project manager understands that I will find out real quick if any miss-representations of the project quality/progress are being made and thus there is less risk of a project manager making material miss-representations.

Is it really that hard for a potential project manager not to understand that they are in-fact being interviewed if a project is loosing a developer?

ContrarianView, DeviceID

A new coding article is up called, Contrarian View, DeviceID And it even has sample code, but no pizza..sorry. In android development we often want to compute a deviceID to use in debugging not only from developers but also from end users and this article explains the choices and suggest a more correct choice.

Twitter Bootstrap 2.0 WIP

if anyone wants to see what Twitter Bootstrap 2.0 WIP looks like being used, try:

I just redesigned it over the weekend, still some minor tweaks to go but I am happy with it.

Agile Android Dev in Anger

Some of you saw my AndrodCMWrench project go up yesterday, including a project dos site for the project. Do you realize that was just few hours to generate the website and complete ant script tool?

One of the problems every firm faces is that its the perceived notion that obtaining an android developer at premium prices means a slow development cycle. Google and OHA was kind enough already to make a choice of Java for Android Application Development which serves to somewhat halve the development time when com pared to a non-VM language such as Objective-C.Should we not take it rest of the way?

Imagine this,a complex android application getting down to its core features and a fast prototype in a week to two week period.  So, what are the areas left to improve/

Libraries can be heavily used to reduce development time. Not just one the application side as you can create jars that are used on the Android Instrumented Test Project side. It is also the tool-integration side.

If you look at source of my gh-pages branch of AndoirCMWrench you will notice that I did not use Github’s Jekyll. Why? Because I do not have an IDE Jekyll plugin so go with something that I have a plugin for. In the Android Application Development context since I have a nice plugin to make shortcuts of my ant targets, I can develop a nice tool that fires off execution of the MonkeyRunner scripts to run not only TDD/BDD unit tests but also regression testing right from the IDE.

This is what agile is, analyzing  your development work-flow to get better feedback and in shorter time periods to improve the stability and quality of what is produced.

There is a clown of a-Chicago firm(cough 4tegroup, cough quite spamming me folks) that thinks knowing how to write a Continuous Integration build script is agile, the only problem with that is that no-one in android development writes continuous integration scripts due to the differences between CI plugins and what we need to inject in certain ant stuff on how the android sdk tools operate. We tend to write a full ant build scrip  that integrates with the android sdk tools and our code metrics and than just have the CI server be pointed to run that instead.

So do not be that clown-of-Chicago firm be curious about your developer work-flow, the libraries you use, the tools you use,etc. And if you do not have time and want to borrow my tools and libraries, than just make sure that you follow my github account.

Okay, a small agile tool. Instead of counting on Google ot get the ant scripts right with every SDK release, just use your IDE and its android plugin and this small ant script(AndroidCMWrench) to run the the code metrics and javadocs after your IDE does an incremental build.

Shh, if you actually clone the project and look at the gh-pages branch you will have a nice simple example of how to use twitter boootstrap in your project docs.

In my quest for Agile with a vengeance I have been not only examining what to add to my instrumented testing tool box but also what other things in my developer workflow to change to squeeze every ounce of development time saving so as to be fast in two areas, prototyping and android app production. Why?

Because we know that Google will continue to put no-one in charge of developer acceptance testing the ant scripts provided with the sdk during each sdk release. For those that do not know, if you execute the targets in the Google supplied ant scripts from the android sdk you find the show stopping errors in the build.xml that will prevent you from using it un-modified, which means non-one at Google bothered to even test the item before any sdk release.

That is my former profession creeping in, I use to train corporate end users on computer software,which meant I had to develop the courseware. That involved inventing some techniques to ensure that the courseware was always right. That involved just taking the specific piece of software and attempting to use it in the exact way described in the courseware. Its not hard andnow its sort of a habit I cannot shake.

So we know we cannot count on Google to ever field test the ant scripts provided with the android sdk before each sdk release. Sure we could modify the sdk ant-scripts each time and than copy them into every project we have to build and than customize that to include our code reporting stuff. But, there is a better way. The IDE that we often use already does incremental builds.

Thus, if we only need to run code metrics after the build we can than move on to saving time both in the fast prototyping and app production cases of our development workflow as the Eclipse IDE has this neat feature where you can check under runs as ant build on the build tab build the project before running the ant script. So the projects i ened up with thus far are:



and AndroidCodeMetericsSetup to see where the Eclipse IDE stores the pmd, checkstyle, and classycle settings/reports. Unfortunately, each code metric plugin in Eclispe stores its reports or generates its reports indifferent formats and locations and so thus I had to come up with the plan to develop an ant script that runs after the project build and generates the javdocs and the codemetrics reports.

Now, its on to the next step in that I create a new project that combines AndroidDoclavaSetup with an ant script that executes the generation of javadocs using Doclava and the code metrics reports that is designed to be executed by the IDE that has a-run-after build setting in their run-as-ant-build feature. Than to polish that I will come up with a python script that you can put on path that will move those assets from abase-template folder to the newly created android application project.

Thus, what I end up with is that I can immediately be productive upon each new sdk release as I am not DEPENDENT ON GOOGLE’S OWN FUCKUPS in the SDK PROVIDED ANT SCRIPTS.