Archive for September, 2010

If you visit most android developer forums you find android developers from all areas of development. Some are web developers, some are MS.NET developers, some are java developers, some are JavaEE developers, some are CS students, etc.

Among those many groups there is not a common thread of using a continuous integration build server.  With one exception, if you count the IDE as incremental compiler as the continuous integration server. and why not its small enough to run on a laptop with the android emulator and still have room to run a dev environment dash-board using jetty.

Thus, my philosophy is integrate pmd, checkstyle, classycle, jdepend, javaNCSS, doxygen for native c, jGrouseDoc for javadocs of javascript in assets, and cppcheck reports into one small build system package that is easy to set-up and use along with your favorite IDE for android development.

With some ease of usability in that you should only have four or less files to change per project amounting to less than 6 properties to change per project. Maybe even go further over this next week-end and code a groovy installer that auto-installs everything in a new project with no-mess no-fuss.

Not set as default incremental builder as we want developers to feel that they can run that one target to compile and doc the whole project whenever they want or they can set the whole thing up in their IDE as an incremental builder.

Not all polished all at once but I will get rest of the tools integrated this week and a full common look/feel to the reports that are generated so I can use it my own projects and see where rest of the improvements need to be made.  I did find how to do customizable headers and footers using CSS without having to change or insert new html  elements in the html generated in each report.

If you have not downloaded the corrected add-proguard-release.xml that was corrected from the android dev blog Sept 21st post than visit my github account link at the bottom of this blog and click on AndCooperANT and download that file at the project root folder. Of course no one paid attention to my bug submission yet, maybe I needed to have a bug title that stated Sept21st Dev post wrong?

But, oh well..towards weekend two more alpha and usable releases of AndCooperAnt with me starting to upload zipped copies to github for you to download.

Enhanced by Zemanta
Advertisement

So I am on the last part of the AndCooperANT journey of adding Android NDK support that set of android application build scripts. So I am using Eclipse 3.5 and Android NDK r4b and need to set up a sample project to test my build scripts.

Here is how I accomplish that so that I have an Eclipse CDT nature within an eclipse Android SDK application project that actually uses the NDK build system and also gets rid of that annoying CDT no gnu makefile at project with all target error…

1. Right click on project root and New Project->Other->C++->Convert to C++

2. check C++ project choose Makefile and choose other toolchain

3. Say yes to open C++ perspective.

4. In C++ perspective create new folders of libs, obj, and jni

5. In C++ perspective under C++ General set output folders under paths to libs and obj and set source folder to jni.

6. In C++ perspective right click project root and select properties than choose builders:

un-check everything on the CDT builder

create a new builder type of program

If using Linux than its

First box ndk-build script location

Second box is project location

Third box is these args: -C ${build_project}

If using Windows the settings for that builder wil be the ones this blog post covers:

http://www.rbgrn.net/content/348-get-your-eclipse-integrated-ndk-on

Now what you should see is after that go to Eclipse project menu and choose Build Project and you should this in your console:

Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: /home/fredgrott/my35ws_github/AndCooperANTNDK/jni/Android.mk
make: Entering directory `/home/fredgrott/my35ws_github/AndCooperANTNDK’
make: Leaving directory `/home/fredgrott/my35ws_github/AndCooperANTNDK’
/home/fredgrott/opt/android/android-ndk-r4b/build/core/add-application.mk:98: *** Android NDK: Aborting…    .  Stop.

Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: /home/fredgrott/my35ws_github/AndCooperANTNDK/jni/Android.mk    make: Entering directory `/home/fredgrott/my35ws_github/AndCooperANTNDK’make: Leaving directory `/home/fredgrott/my35ws_github/AndCooperANTNDK’/home/fredgrott/opt/android/android-ndk-r4b/build/core/add-application.mk:98: *** Android NDK: Aborting…    .  Stop.

Now click on the problems tab in Eclipse and you should see no pesky CDT no makefile with all target error in that at all in fact you should see an error count of exactly zero.

Enhanced by Zemanta

AndCooperANT alpha release supporting ant build of regular android java projects, javadoc generation with UML diagrams, js javadoc generation for those using webkit, proguard obfuscation, android library projects, android jar library projects,  and android test projects.  Its alpha as I have not finished docs on how to customize javadoc look, code quality reports look, js javadoc look, etc.

I am converting all my projects to using it, so I am eating my own dog food folks to uncover any bugs/issues.

Enhanced by Zemanta

AndCooperANT release 0.1

Posted: September 23, 2010 in Android
Tags:

AndCooperANT release 0.1 is out, just download the source and follow directions in readme in how to set it up. I have not tested it with Android Library Projects yet but it does support the standard 3rd party library jars. default target to get the code reports is debug with it producing javadocs, checkstyle, pmd, and classycle reports.

Next up is to do Test Project support, Android Library Project support, and multiapkexport support. Two other issues. PMD 4.x is used right now but will be updated to use PMD 5 shortly. And there are two proguard config files included the one mentioned in the android dev blog post on Sept 21 and a longer one that includes options to strip out log statements.

Enhanced by Zemanta

Glaring Mistake

Posted: September 23, 2010 in Android
Tags: ,

You know its not often that you spot a mistake in a Google dev blog post, in this particular one the add-proguard-release.xml file does not add the 3rd party library jars in the libs folder to the libbraryjarspath refid. Its bug report 11413 and here is my corrected file.

I just updated part of AndCooperANT to have the correct file and should have a release of AndCooperANT finished shortly.

Enhanced by Zemanta

Proguard Release build script bug

Posted: September 22, 2010 in Android

The recent add-proguard-release.xml file has a bug. It will not include any 3rd party jars put into the libs project folder. My modification at dropbox fixes it I think. Bug report is 11413.

A different splash

Posted: September 21, 2010 in Android
Tags: ,

A different android splash. If you want to see how its done look at my github account..

Android 2.1 OS on Google Nexus One
Image via Wikipedia

Are we ready to really do quality UI Application design yet? You do realize that most Android Training houses/firms do not cover it right? I should know I went through some interviewing for Andriod Training positions recently. Not that Android Training houses/firms are bad..its just that if the goal is designing Mobile Applications for Consumer and Business users than lets bring to bear all the skills and knowledge areas required rather than just code.

Here is the deal. You want to cover Android OS versions from the newest one that was released to the old ones. But, the  APIs are in flux. What that means is we do an anti-pattern because we still have stable not changing much control of view animation, transitions, etc rather than guess what activity transitions we may or may not have control of on a given android OS version.

Thus, we put a whole bunch of activities in activity class and use the view visibility setting and some other code to make views visible and invisible as the user is using the different areas of the application. You will end up, for example, coupling the application dashboard you might design with the PreferenceActivity  and SplashActivity as one big activity class as user case wise they are related tasks in that they can share the same data, etc.

It eliminates worrying about which OS version has activity transitions right as far as developer apis to control allows you to focus on the behavior of the application UI being as close to as possible the same on all Android versions. At the most you will end up with just two activities in your application code but a very cool application user interface that behaves the same way on all android versions and allows you to innovate with within that application user interface to brand that UI as your firm’s own UI.

Okay back to code, samples coming this weekend.

Enhanced by Zemanta

UI/UX Patterns

Posted: September 17, 2010 in Android
Tags: , ,

This does not look like very much right now.  Something is being developed that will be shown over at my github account in or around Sept 22nd.

For lack of a better name I came up with the project name of AndDeepDish.

And the complex Activity/ViewGroup transitions are Android 1.5 compatible!

Enhanced by Zemanta

Broken Android

Posted: September 15, 2010 in Android
Tags:

How many of you are fed up with the broken MVC in Android? How many of you are fed up with having to learn another testing framework just to test objects coupled to the context and even than the port of easymock cannot even handle all those use cases? How many of you took a look at the Android_MVC project at sourceforge and go why a heavy framework, not good?

The key to all these issues is that damn tight coupling of objects to context, both activity context and application context. Are you ready?  We are going to dump that effing sh*t. How? RoboGuice has non setter injectors and that is the main reason why you cannot use Yasdic as a real DI framework(it has no non setter injectors) as the non setter injectors matter in Android as it means you can grab and manipulate any object tightly coupled to  the context and context itself.

That is why I have been nose to grind stone last few days, missing emails, calls, probably sms, etc. That also means I have the core of the book proposal in my head.  But, presently 2 pairs of examples both using RoboGuice code side and testing side using one small complex application as an example. Seeing if I can knock all four out in a few days.

It is similar to fonding a start-up. I am excited. Worrying about how can I get someone to fund this while I develop the code samples, slides, etc but also knowing you only have one small framework as the swiss-army knife of Android Agile Development and it is not porting EasyMock to android and its not porting a heavy duty MVC frameworks to android.

You want to get fast in Android development? Bookmark that github link:

http://github.com/shareme

The source code, samples, slides, etc on how to do it the Agile way using RoboGuice to do real MVC and real fast testing is going up even if I have to damn starve.