Help The Victims of the 8.9 Earthquake in Japan by Spreading Awareness and Aid. Visit http://goo.gl/wjZQz to donate. /* ]]> */

MindStorm Software took its popular Android Hands-On Workshop across the seas for a change. This time the city was Dubai and the Hands-On Workshop was conducted for DCode Mobility, a leading provider of Enterprise Mobility solutions, headquartered in UAE and serving the entire Middle East.

DCode Mobility had seasoned developers who have been delivering enterprise mobility solutions for several years. They have primarily used the Windows 6.x Enterprise devices and their development platform of choice so far has been the Microsoft Tools. With the advent of Android, which is a game changer of late, DCode wants to be leading the game when it comes to providing solutions on the Android handsets also. Most of the existing Handset manufacturers in the Enterprise space are releasing newer handsets that run the Android operating system, chief among them being Motorola, which has brought out its latest enterprise device, the ET1 Tablet that runs the Android Operating System.

The Developer Training kicked off with the usual introduction to Android. A healthy mix of sales and marketing folks were also present during this session to help them understand what Android has to offer, its various capabilities, the kind of applications that it can enable, the current Enteprise mobile space and so on. We then proceeded with the setup and the quintessential “Hello World” project, which is a tradition as far as we programmers are concerned. The afternoon saw a deep dive into activities, explicit/implicit intents and User Interface creation along with Layouts and the default Android ListActivity. The Hands On Exercises kept the participants busy and everyone was itching to get the applications running on the ET1 tablet that was available during the training.

The next day proceeded with Menus, Persistence options like databases and Alert Dialog. Once through with that, we got through some REST based Networking, Google Maps and GPS Programming. The focus then shifted to working with the ET1 Tablet. Participants were able to build the Android application (.APK) and transfer them over the ET1 Tablet to see their application in action. Since the participants were from an enterprise mobility background and they had already written several Windows Mobile applications that did scanning, we did an interesting experiment over there. We integrated the ZXing library, which is a top of the line bar coding library from Google. We integrated that into our Android application and used the ET1 back facing camera to scan various 1D, 2D bar codes and decode them. That went off really well and gave everyone the confidence that yes they can write Android applications with all the scanning and other bells and whistles into it.

The Motorola ET1 Tablet is a cool device, in fact a rugged device that runs the Android OS. It runs version 2.3.4 (Gingerbread) Android OS. The device is fairly rugged, has both front and back facing camera and can be augmented by external hardware like a bar code reader, etc. With the purchase of Motorola Mobility by Google, the ET1 and its eventual successors present a great set of choices to organizations that are evaluating different options to replace the Microsoft 6.x Enterprise devices.

The training experience was good. Lots of questions asked, especially from the business side of things, so that the Android Devices and the applications that it can enable can be positioned across the Enterprise space. I am quite excited at the opportunities that exist in that region vis-a-vis training and Android development and I look forward to frequenting the place again in the near future. If you are looking for a serious 2-3 Day Hands-On course on Android in the Middle East, give me a shout and we can get this rolling along for you.

Our next workshop is scheduled for the coming weekend, February 25-26 , 2012 in Mumbai. The response has been encouraging and I look forward to training this specific batch of students, who will help me reach the milestone of 100+ individuals that I have coached individually to get them started in their Android Development Journey.

Thank you to all who have given me the support. Expect interesting things in the weeks and months ahead. As a teaser — How about an Advanced Android course?

Mind Storm Software successfully conducted another edition of its 2-Day Android Developer Workshop last weekend. This was the 2nd workshop that we have conducted this year and it went off well with a next set of developers all set to launch themselves into their Android programming journey.

We had 10 folks joining us for this edition and all of them were working software professionals. Our venue again was the Residency Hotel and we were hosted in the large and spacious Indigo Conference Room. Travelling in Mumbai is always a challenge especially if you are finding the place for the first time but we were all set to go with minimum of delay on the first day.

The workshop has found a successful pattern now and the first half of the first day is spent in understanding what Android is, developer machine setup and the traditional Hello World program. The rest of the first day typically sees us through Activities, Built in Intents, Views & Layouts and List Activity.

Residency Hotel tried their level best to put us to sleep during the afternoon by giving us a sumptuous lunch and like a strict school teacher, I made sure that the participants were getting none of their afternoon sleep by giving them hands on exercises.

The second day kicked off with Menus, Dialogs and various persistence options like Files, Shared Preferences and SQLite database support in Android. The afternoon started off with Networking, Maps and GPS and then a complete Android application called Quotes.

The session that I enjoy most is to show how to build the APK, show the Android Marketplace and demonstrate how ridiculously easy it is to publish your Application to the marketplace. We also play a little game in which the APKs are submitted on a first come first served basis to see which participants APK gets through successfully first.

The few things that I changed in this workshop were:

  • Clear labels in the applications telling what we are going to see next.
  • A New Example on combining GPS and Maps together.
  • Introduction of NodeJS in the Android Networking section. More on that in a later paragraph.
  • Cleaned up the UI in various sample code.
  • Updates to some of the hands on exercises.

Just to note, every participant gets the slides, roughly 20 odd Do-It-Yourself hands on exercises, all source code for the sample applications and the hands on exercises.

One of the important new introduction that I introduced in this workshop was the use of NodeJS in the session on Networking. NodeJS has been a neat way to setup a server locally for the participants to try out Android networking examples without the need to go outside the network to a web service. What I have done is to stub out the Networking calls with the correct JSON responses and simple run NodeJS on the local participant laptops. This saves a lot of time and everyone learns about NodeJS too. I will cover more on my usage of NodeJS in another blog post. In short, no more explaining Tomcat, web apps and stuff like to setup a local server. Simply whip up some Javascript, stub the response JSON and node your way to local services nirvana.

I have become a bit superstitious with my Workshops and wear a cute little Android pin on both the days. The Android pins are shown below and they are quite a hit with all the participants. I wear the formal Android on Saturday and the beach wear Android on Sunday.

One of the questions that I always get asked is where I got these lovely pins from? The Android pins were sent by my dear friend from France, Jerome Baton. Jerome is a passionate Java developer. He did the technical review of two great books on Android that I highly recommend and refer to constantly : Android in Action and Android in Practice from Manning Books. Thank you Jerome for the pins and for all the conversations on programming we have been having over the last few years.

This is the 6th batch that we have conducted in the last 4 months and every batch has given me great inputs in terms of the topics that they would like to see more of. With that in mind, I am happy to inform everyone that I have several topics that I have identified for an Advanced Course in Android, which is a followup to this course. Participants who have attended my introductory 2-Day workshop and even developers who have a basic knowledge of Android programming will benefit from this new course. The new course will delve into areas like Services, Broadcast Receivers, Widgets, Content Providers, Sensors and some UI related topics. The topics are still open for discussion and it might end up being a 1-day or a 2-day course. Stay tuned for more details.

I would also like to announce a piece of good news at this blog. We have been conducting this course in Mumbai, which is where we live and work. We are soon going international and are going to conduct the 2-Day Android Developer Workshop in Dubai in February. I am extremely excited to take this workshop across the Arabian sea. Thank you everyone for attending the workshop and helping me take it to the next level.

The feedback as with earlier workshops has been great. These 6 workshops have now provided me with enough gotchas that beginner Android programmers face while dealing with Java, Android SDK and the Eclipse tools. I plan to publish a series of articles where I will present those findings and solutions. Keep track of my blog.

We are going to conduct the same workshop in Mumbai in February too. The dates are not finalized and I would recommend to let us know if you would like to join the course. The batch is limited to 10 only. Please visit the 2-Day Android Workshop page and write to us indicating your interest.

The Mind Storm Android training has started well in January 2012. We thank all those who have been part of this workshop. Stay tuned for much more.

Yet another edition of Mind Storm Software’s Android Developer Workshop was successfully conducted last week, on January 7 & 8, 2012. We have continued to build on the terrific interest that developers have shown in this workshop and we hope to take it to new heights this year.

The venue for the 2-Day Android Workshop was our trusted place, The Residency Hotel in Mumbai. As always they were precision like in their planning and in fact upgraded us to much larger rooms this time around. The pictures of the training rooms before the action started are shown below:

We had a batch of 12 participants this time (the largest so far). There was a mix of experienced and junior developers. Their expertise ranged from Java, .NET, various Web technologies and some of them were even well versed with mobile programming (We had a PhoneGap pro and a Symbian, Windows Mango programmer also in our group). It is very encouraging to see that despite the varied backgrounds, all of them wanted to learn more about Android programming in general. The icing on the cake this time around was that several participants had their own mobile phone and the sheer delight of seeing your own code work on the physical devices is an experience in itself.

We kicked off Day 1 with the usual introduction to Android. I try my best not to be a spokesperson for Android or Google, since the manufacturers have done the Android marketing blitzkrieg in all forms of media. The first half is always a bit tense so as to make sure that we setup the Android Dev Environment – Eclipse IDE, JDK, Android Eclipse plugin, Android SDK 2.2 & 2.3 and so on. With a little hiccup or two, we were well on our way.

The day proceeded then with the traditional “Hello World” in Android, then Activities, Built In Intents / Explicit Intents, Views/Layouts and List Activity. The Hotel stuff tried their best to keep us all asleep in the afternoon with a decent spread of lunch dishes but I guess we survived the lunch, the afternoon and Android Layouts, to make it through the first day. Not a bad achievement for day 1.

The next day kicked off with Android Menus, Alerts, Notifications, Persistence Options (Files, Shared Preferences, Databases before we broke for lunch. Post lunch we started off with Networking, GPS (Location) programming, Google Maps and rounded it off with a study of a complete Famous Quotes application that included most of the building blocks that we covered since day 1.

We rounded off the day with the Android Marketplace, how to package the .APK for distribution and also uploaded and published the application in the Marketplace. The workshop thus focused on not just getting the participant familiar with the tools, Android APIs but also ensure that the last mile i.e. publishing to the marketplace is also covered.

I enjoyed my interaction with the participants. They asked me some tough questions but I believe the exchange was quite healthy in terms of clarifying the issues. I sincerely hope that all of them move way forward in their Android careers and I can see some of their Android applications getting launched in the Marketplace. Here are the future Android superstars:

If you are waiting to get started with your Android Development journey, do not wait any more. We are currently taking in registrations for the next batch that is scheduled for January 21-22, 2012 in Mumbai and we hope to see you there. For more details on the course and registering yourself, visiting the training page. If you want us to conduct this workshop in-house in your organization, feel free to contact us.

Have you ever been in the middle of a call and found out that you need to look up some information on the phone? This could be an Address Book or some data that is residing in another application on the phone? Chances are almost 100% that you have done that. The problem with this scenario is that, you need to keep the person on the hold and then try finding out the information and then either say it on the phone or tell the user that you will be sending that information right away after you disconnect the phone.

Nothing wrong in the above scenario, just that you always wish that it is simpler and more contextual so that you can not just fulfill that need in the middle of the call but also maybe engage with the other person in exchanging some notes or any other kind of collaboration, all while the phone call is still on. The bottom line is, use all the capabilities of the Smart phone i.e. Location, Screen Size, Graphics, collaboration, network, etc. all while you are on the call.

Today, most mobile operating systems provide enough hooks to the developer to tap into an incoming or outgoing call and then do something about it. This has given rise to applications that can provide you more information on who is calling or apps that can log all the data and so on. This class of applications are useful in their own right but are not a natural fit to the general collaborative nature of a phone call. To think about it in more simple terms, a phone call between two people is to get some information to and fro, so it is important to meet that objective.

If  you own a Smartphone, you need to take a serious look at Thrutu. I will quote from their website what this application does. “Thrutu™ lets you share all kinds of information and media while you’re on a call — at the touch of a button, and without disrupting the conversation.” All this happens when you are in the middle of the call. An ideal scenario is when both the parties, the caller and the recipient have Thrutu installed on the Phone.

Look at some of the things that one can do with Thrutu, while the phone call is ON:

  • Location : See each other on the Map in real time, while the conversation is on.
  • Photo : Take a photo and share it instantly.
  • Contacts : Share contact information within the call
and many more. Thrutu can even function when the other party does not have Thrutu installed on the phone. In that case, you can share the information via SMS. Take a look at this video. And as a lady mentions in the video, “Are there any more excuses?” :-)

Thrutu is actually making some sort of a platform play here by giving a framework to developers to develop Thrutu extensions themselves. If you are a developer, go ahead and download their SDKs that allow you to build out your dream extension that can enhance a phone call. Developers have taken the lead and the results are there for all to see in the Thrutu Gallery.

Recently, Thrutu held a Developer Contest where it invited developers to develop Thrutu extensions. The winners of the contest had terrific entries. The 1st prize went to DropThru, that actually allows you to share files present on dropbox or the phones SD Card, right in the middle of the call. What a great idea and definitely a use case that is so common. Imagine how many times have you got a call from someone saying “Hey! Can you share that file with me that has XYZ information”. Now do all that inside of a phone call and confirm if the other end got the file, all looks good, before hanging up. Definitely a big boost to productivity. Yours truly participated in the contest and did submit one of the entries, called Thrutu Notes.

Give Thrutu a try. The use case is so familiar with anyone using a phone that you would definitely be able to connect with it. And if you have some ideas for a Thrutu extension that you do not yet see, I would love to hear about it.

Adobe has announced that it will no longer continue to develop the Flash Plugin available in Mobile Browsers, available on devices running for e.g. the Android OS. The fact that Adobe has made several moves recently to show its public acceptance of HTML5 is a known fact, but it did come as a surprise to what they decided to cut down on. I am as good or bad as anyone at reading the future, but I think this move definitely is a rude wake up call for folks delivering websites running Flash.

A Brief History

To begin with, I took on the task of learning Adobe Flex and related technologies in and around 2005, and did a good amount of work with it. I liked their development tools and for what we were developing then, they were the numero uno tools after we evaluated multiple other platforms. Ofcourse all of this was delivered ultimately to the user via the browser and so the Flash Player plugin in the browser was a key part of the runtime environment. We had some heartache at times in ensuring that everyone ran the right Flash Player plugin in the browser but since we were deploying in mostly controlled enterprise environments, it was not really a problem barring a machine or two that needed to get its act together in terms of the software installed on it.

Along came HTML5

HTML5 came along in my development career a few years back and I haven’t looked back since. With every passing day, it became clear that the browser had finally arrived with solid APIs that could be used to deliver a majority of apps that probably I might have used Flex for. And seriously, it was all about the 80-20 principle. If I could do the same with HTML5 Related technologies for a majority of applications, I found the need to use Flex less and less. The Flash Player is a mighty capable engine and while I do not know the internals of it, it is suffice to say that certain kinds of applications would definitely benefit being within the Flash Player to take advantage of it, but since I was not in that space i.e. gaming or graphics stuff, it mattered less to me.

Brothers in Arms

But what I did not have any doubt about and which HTML5 enthusiasts should acknowledge is the fact that HTML5 needed Flash to be there to make its progress. Flash over a decade or more of its existence till now has played a big role in ensuring that applications are delivered within the browser and its role in ensuring that the browser is the application delivery mechanism cannot be undervalued. So, I always thought that it would result in a good healthy contest between HTML5 and Flash Player to keep pushing the limits and thereby hastening the need for HTML5 to build features faster. One of the HTML5 guiding principles is a “World without Plugins” and if it had to meet that, it had to deliver most, if not all features that Flash Player plugin provides.

The future is staring at us or is it the other way?

The future is already onto us and it is clear that the web will be the delivery mechanism for most applications. And the browser will be the center piece of that all, atleast for web applications. It is also apparent that people are going to rely less on a desktop and more on various devices (phones, tablets and what not) to access the web. I do not want to get into the debate of Native v/s Mobile Web applications, but it is given that Mobile Web applications will constitute a huge percentage in the coming numbers, if not completely overwhelm native applications in terms of percentage. And that brings me to the question as to what would be the reason to abandoning the plugin for a device browser v/s continuing development for the plugin for a desktop? If trends are any indication, the desktops/laptops should see a percentage fall while accessing the internet from devices keep increasing.

Conclusion

Given all this, it seems that if you are writing Web applications that are to be delivered to a variety of devices (and by the way, you need to make sure you do, because users are demanding that they access your application and it function well via a Desktop, Phone or Tablet) and if you are using or contemplating using Flash to be delivered within the browser, probably it is not a prudent choice from a long term perspective. If the company with all the firepower of its product is not committing to this runtime within the browser, then why should developers jeopardize their chances of maximizing their application reach with such a technology choice.

I think the clock is ticking now. Till date, I took a very balanced view that one must use right technology depending on the need of the application. Maybe it is time now to at least inform the client that it is important to make sure that the stuff works fine in browsers over the next few years and maybe you might want to do away with dependence on the Flash Player as soon as you can. Its time to move on and concentrate solely on creating the next set of great experiences/applications inside your browser and with a plugin free paradigm.

I look forward to comments.

P.S: Looks like Microsoft is also following suit and wants to retire the Silverlight Plugin.

The Mind Storm Android Developer Workshop is going strong. We held our second workshop on Android Training last weekend. The venue was the same as last time, Residency Hotel and the 2-Day Developer Workshop was held on October 8-9, 2011.

The goal of the Developer Workshop is to get any interested developer get started with Android programming. It is geared towards both newbies and experienced developers who would like to learn what it takes to get started with programming their first Android applications.

We had an interesting mix of participants this time. 8 of them were Engineering students while the rest of them were professionals working in the software industry. All of them had a clear goal in mind and that was to demystify what Android meant as a developer and get them started with their first steps in Android Development.

We received some good feedback from the first workshop that we held in September and based on how participants received some of the topics; I had made small changes to the curriculum to keep it relevant to the audience and also to fit the material within 2 days. The material that we have is among the most comprehensive, nearly 200 slides with numerous hands on exercises (both to be tried during the two days and some more for homework) for the participants to try out throughout the course of the Workshop.

The first half of the first day also comes with some surprises and stress. The main task that we need to do is to make sure that all the participant machines are setup with Android Developer Tools. This involves setting up Java, Eclipse, Android SDK and the Android Eclipse Plugins. Our last workshop taught us a lesson that it does not harm to carry an extra laptop or two to cater to a scenario where one of the participants’ laptop does not take too well to the new software. The extra laptop turned out to be handy. Once the machines were setup with software, we follow tradition typically and take the participants through the Hello World program. My repeated experiences with numerous developers that I have trained till now in Android tells me that the Android team needs to seriously look at improving the Android Virtual Device performance as much as they can. They have been doing a good job across the releases but the earlier some of its quirks like start up time, occasional freezes are taken care of , the newbie Android programmers will feel much comfortable.

Next up was understanding Activities, Passing Data to Activities, Built In Android Intents like Web Browsing, Calling Phone Numbers, SMS and Email Programs were covered next. We then took up Views, Layouts and rounded up the day with an introduction of ListActivity.

The second day took off with Menus and various persistence options like Files, SharedPreferences and Databases. That was enough in the morning to break for some sumptuous lunch that was served by the Hotel. The afternoon began with an introduction to Location Based programming, Google Maps and then a 2hr+ session on attempting to build a complete Android Application, which was then rounded out with how to publish your application to the Android marketplace. While the participants completed parts of the whole Android application, the main thing that I hope all of them took away from the experience was that Android Development is no longer a mystery to them and hopefully the training has been a launching pad for them to take off in their Android journey.

The queries raised by all the participants kept me on my toes. Residency Hotel, located in Andheri, Mumbai — once again did a great job in terms of logistics. It definitely makes our task much easier and lets us focus on delivering great Android content. It was good to see the Hotel buzzing with various other conferences/workshops that were going on in the weekend.

If you are interested in signing up for the Android Developer Course, do not wait anymore. Please visit the detail page and get going. 2 dates have been announced in November. We also encourage organizations to call us to conduct corporate trainings for their team within their own premises.

I had spoken at IndicThreads Mobile conference which was held in Pune on November 19-20, 2010. One of the talks I gave was Using Google App Engine to power your Mobile Applications. This was the second talk that I gave at the conference, the first one was on using HTML5 to write Mobile Web applications.

This presentation covered Google App Engine via a simple example along with an Android Native Application and a generic HTML5 based Mobile Web Application that were both powered by the Service in the Cloud.



I had spoken at IndicThreads Mobile conference which was held in Pune on November 19-20, 2010. One of the talks I gave was using HTML5 to write Mobile Web Applications.

Mobile applications are generally classified into Native and Web applications. The dominant type of applications are the Native applications whereas the Web based applications on mobile have generally not garnered too much press. Two prominent reasons being that one does not have access to the full range of APIs in a web based mobile application and you cannot sell a mobile web application in the Marketplaces.

However, parts of HTML5 are implemented quite well on most Smartphones today. The underlying magic behind that is the Webkit engine that has been adopted by the vendors. In this presentation, I give an overview of HTML5 APIs that are ready for usage on Smartphones today and they present a compelling and cross platform alternative to several kinds of applications.

 

Last week, I conducted a webinar on behalf of my company on Mobile Porting & Testing. The topic was pertaining to the proliferation of Smart Phone OS’ like iPhone, Android, Blackberry, etc. and how it is increasingly becoming a challenge to port your application to all these platforms.

In the webinar I discuss strategies/tools/techniques that my company Xoriant has used successfully in client engagements.

Hope you find it useful. I look forward to any comments on the same.

 

© 2012 iRomin Suffusion theme by Sayontan Sinha