Android -> iOS -> Android -> Windows Phone and back to Android

So its exactly 3 years since my last post on this blog. A lot has happened both personally and otherwise. Am not going to talk about my personal life (sorry to disappoint :) ). I used to be a hardcore Android fan boy and could not imagine myself ever using any other mobile platform (i.e. iOS and above all…wait for it Windows. YES I said it).

A little over a year ago I kinda started getting bored of Android as I had done all the experimenting that I could do on Android talk of rooting (see previous posts on rooting the G1) testing out all sorts of custom ROMS et al. So it came as a shock to most of my friends particular when I decided to try out iOS. Went ahead and got myself an iPhone 4S.

By the time I was switching to iOS, the latest Android version out there was Ice cream sandwich. My experience with iOS was somewhat what you might call bitter sweet. On one had I don’t like the closed nature of the Apple ecosystem, most good apps are piad ones, but at the same time, I was loving the user experience. Smooth, no lag or flickers when switching from app to app, few hang ups (if any…) etc.

Used apple for close to 6 months. Eventually I got bored once more by the sheer fact that apple was too predictable. Yearly updates and the likes. I must say I did not push it to the limit (jail breaking and all). Still I got bored.

Switched again back to Android and this time, I got a Nexus 4. Must say this felt like coming back home. At this point Jelly bean was in latest Android build. Google did a good job making the OS and user experience butter like / smooth.

Used the Nexus again for close to a year. And the least unexpected switch happened. I bought my first Windows phone. The Lumia 720. All the things the Windows has to offer, for me three things stood out.

1. The battery life (I mean this is Nokia :) )
2. The smooth user experience transitions from app to app better than iOS and Android I must say.
3. The Camera (Carl Zeiss cameras are simply amazing. Shoots in low lights, image stabilizers etc)

Indeed the lack of apps is a significant problem. I used the platform for 3 months so I know.

Finally I got back to Android with the Motorola X. What an Amazing phone. Google makes the Nexus line with the view of giving users a pure Android experience without bloatware or skins such as Touchwiz and Sense et al. While google tries to make the Nexus line a device that will appeal to consumers, its still a geeks phone (no offense).

What Motorola has done, it take the pure Android experience and add a touch of human centered design. Doesn’t focus a lot of specs such as processor clock speed, RAM size, number of pixels on the screen and such like things. They focused on what matters to users. Battery life, how people interact with phone, how it feels on the hand etc.

Have not been paid by Motorola to praise the device don’t get me wrong, just stating my own experience with the device so far. Still using there are a few downsides to the device which I will share later on.

Tweeting using twitter for android intent

Well am working on this application where I want to be able to posts tweets using the native android application.  Here is the how to.

launch the twitter PostActivity directly by getting the ActivityInfo instance of it. This is done by scanning through the activities returned by the Intent.ACTION_SEND and looking for “com.twitter.android.PostActivity”.

This is a not a clean way of doing it since we are searching for a particular hard coded activity. The best way is to just let the user select from the dialog box returned by Intent.ACTION_SEND.

Context context = getApplication();
String message = "Testing integration into native twitter android app :)";
message = "It works!";
try {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, message);
intent.setType("text/plain");
final PackageManager pm = context.getPackageManager();
final List activityList = pm.queryIntentActivities(intent, 0);
int len = activityList.size();
for (int i = 0; i < len; i++) {
final ResolveInfo app = (ResolveInfo) activityList.get(i);
if ("com.twitter.android.PostActivity"
.equals(app.activityInfo.name)) {
final ActivityInfo activity = app.activityInfo;
final ComponentName name = new ComponentName(
activity.applicationInfo.packageName, activity.name);
intent = new Intent(Intent.ACTION_SEND);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.setComponent(name);
intent.putExtra(Intent.EXTRA_TEXT, message);
context.startActivity(intent);
break;
}
}
} catch (final ActivityNotFoundException e) {
Toast.makeText(this, "Damn! no suitable Twitter apps found.",
Toast.LENGTH_SHORT) .show();
}


Happy Coding.

CyanogenMod 6.0.0 RC1 D/S

For those of us who have been patiently waiting for Cyanogen 6 to be released, well the first release candidate has been released for the Dream, Magic and the Nexus one devcies. Cyanogen promises to release builds for otehr devcies soon. I for one have been trying out nightly builds. Been facing lotsa bugs and all (am not complaining and all) and after falshing and testing the RC1 release I feel I know how much work it takes to build stable builds. Here is a complete changelog.

ADW Launcher which is the deafult launcher since CM 5.0.8, has lots of cool new features (its by far the most customizable launcher replacement I have seen so far). Another cool thing I think developers and users alike will find fun on the new android version (2.2), is the Cloud to device messaging C2DM api. lotsa of capabilities and applications you can implement with this new API.

The CynanogenMod forum has been quite slow since the announcement of the availability of CM 6 heres its quite slow but you  can download the same binaries here (dont forget to check the MD5 sum after downloading)

Happy Flashing :) :)

CyanogenMod 6.0 Feature list

For all cyanogen Mod lovers, a pretty sure that y’all waiting anxiously for CyanogenMod 6.0.0 Froyo to drop and flash them on your phones. I for one am so waiting for TeamDouche to release test0. If you feel that the wait is too long, you can always flash the nightly builds for the various devices that Cyanogen supports here . Under one condition DO NOT POST any bugs you encouter when running the nightly builds. So kmobs of #TeamDouche has posted a video showing CM6 feature list.

Must say that these guys are really doing a really good job, and in the spirit of open source, I urge all of you that use his builds to spare him a couple of dollars say like 5 and buy him some beer(s). You do realize that he would have been spending his time doing other stuff but on the contrary he keeps doing his thing and gives these wonderful ROM’s for us to use.

Android 2.2 Froyo

So I was going through the new features and API changes on Android 2.2 (some would say its rather late, but then again it better late ….) anyway So I read about this new feature which enables Exchange administrators on the device to remotely wipe the contents on the phone and reset it to factory settings in the event the phone is stolen, HOW COOL IS THAT. Especially in a city like Nairobi which has a lot of muggings, this feature comes in quite handy  I must say. There are a lot of other cool new developer  stuff which you can read on here.

Cyanogen ports Eclair to G1

For most Android fan boys, the T Mobile G1 was the original Android device. Being a G1 owner myself, I have been wishing for an upgrade from my current version 1.6. not that its bad but lets face it Eclair is way more advanced. I read today on engadget that cyanogenMod has ported Eclair for the G1 was possibly the best news today.  Developer DEV kmobs has posted a highlight video of CyanogenMod 5.0.7

CyanogenMod says he has like two bugs he is fixing it then release the ROM. I personally cant wait to upgrade my G1. (finally I also get to enjoy live wallpapers :) )

Android Scripting Environment

Google has announced a new way of writing Android applications. apparently you will no longer need to have a desktop or laptop for you to write android apps. The Android Scripting Environment (ASE) will make Android development easier and more accessible for a number of developers who don’t want to build a full application.

This technology allows developers to build apps directly from their android powered phones. Developers will be able to tap into the inbuilt android API’s. You can find more information about this on http://code.google.com/p/android-scripting