Wednesday, February 26, 2014

Better tool than UiAutomator

So I was doing some research on how to optimize highly complex android applications and I found that a Mozilla engineer came up with a better tool than UiAutomator called DroidInsepctor. The examination of Facebook Home and the analysis you just have to simply read, his post is here.

DroidInspector can be used via device, web browser, and eclipse IDE. Its damn nice.

FontLoader Fund

So was repurposing the FontLoader class from HoloEverywhere so that I could use it with appcompat library and thought I would check something. HE uses text styles to reduce the amount of fonts one has to load in the raw folder.

So I checked and HE only uses 5 text styles, but there are in fact over 11 text styles according to the javadocs for TextAttribute.

Looks like a have a contribution to the HoloEverywhere project after I finish this contribution. Why do it?

Okay, some background. In human language systems in computers we do not load the full set of fonts, we load defaults and than have fallbacks to handle the harder fonts such as Asian, etc.  So the anti-pattern everyone uses especially on mobile is to settle on one human language translation, say English and stick to Latin fonts.

Well to load custom fonts we usually use the raw folder trick and the application class. The application class onCreate method has to return fast,ie right away, so we do not want a large raw folder of fonts but instead a small raw folder of fonts nd thus full-fills this purpose.

But, we also get the benefit of new text styles with a font that maybe does not have them, which is also somewhat good as it gives us better flexibility on our font pairing match ups.

Tuesday, February 25, 2014


GWSTextKerning, is an Android Project Library that contains a modified TextView featuring text kerning, text spacing, and a KerningUtil class containing a helper method for when you cannot use the modified TextView.

Monday, February 24, 2014

Friday, February 21, 2014


You probably should not use it in say for example in producing all variants javadocs as it is an undocumented api that will be closed in the android gradle 1.0 plugin.

Why not bite the bullet and use say System.getenv('ANDROID_HOME') as that is always accessible or even read the sdk.dir property via ant for example.

Sunday, February 16, 2014

Eclipse Adt and Gradle

Okay, its not finished yet but the project in which I am writing a customized Gradle build for integrating with Eclipse ADT is here:


Not only is it organized as far as project layout for Eclipse ADT before ADT 23.x comes out with full Gradle support, the build.gradle itself is organized so that whatever I have to change is close to the top with appropriate block areas for full global variables and for block areas for more local variables for the build.

Also, it is set up to play nice with Eclipse, yes I stil have my IDEA block to add so its no mess fuss to import the projects using IDEA/AS without any manual messing with settings.

Why the GoogleURL shortener link? Nice way to track clicks of my code repos without any effort at all.

Thursday, February 6, 2014

Recruiters-Sales Process Broken

Something to laugh at. Typical company puts up an ad for a job opportunity. Weeks and months go by and they have not gotten the quality job candidate leads they had hoped for.

So what do they do? Now you have to understand at that point in the process, all indications are that a combination of marketing and communication strategies and implementations may be at fault.  But do they than ask why the failing at marketing and communicating in a job candidate acquisition process?

No, instead they flip through the phone book or google and get a recruiter. And guess what? The recruiter is only short-term centered on one thing, maximum numbers of job applicants at any cost.

Which means that any recruiter communication is already started a non-lead negative hole. Enough is enough mother fuckers.  NO more shoving your broken salesprocess down my fucking throat!

If you want an android developer, than be bright enough not to send a recruiter and fix your fucking broken sales process.

Wednesday, February 5, 2014

Android Gradle GenyMotion emualtors

You have to a small hack to get Gradle to work with GenyMotion emulators. In case anyone else is looking for this the answer is here.

Sunday, February 2, 2014

AppCompat GridLayout Eclipse Gradle suport

One of the obstacles in android gradle support for Eclipse before the ADT 23 plugin version is what to do with GridLayout and Appcompat support libs and resources since AAR is not supported in the ADT 22.x plugin versions. Obviously we do not want to degrade to using a path to a jar in the libs folder as a file dependency as than we have no control over the version of the library, etc.

At the same time we want a solution that minimizes the manual labor on the Eclipse side with using gradle as the android application build system. My solution is creating two Android Project Libraries within my nested set of project modules for GridLayout and Appcompat. Not the nicest hack, but its quick and keeps the gradle android best practices intact.

Saturday, February 1, 2014

Eclipse Style Android Gradle Project

I am almost finished with my Eclipse Style Android Project Template if you want to follow along. The project I use to set up my local ivy so that I can reuse that as a local repo is MyAndroidDevIVYRepo.

What I have to finish is wrap the codeqa ant tasks into gradle's codeqa reporting stuff and than figure out whether I have to include apt config and dependencies for DI in the APLs in the build.gradle.

The main limitations are that there is still some manual setting of libs in individual Eclipse projects and you no longer run junit instrumented tests through Eclipse but through Gradle.