domingo, 17 de marzo de 2013

Mobile developer / Survival Kit

This is my first post in English, I decide to switch the usual language of the blog to arrive to most people, according to the visits of the blog. So, be comprehensive ... ;-)

As a Software Engineer, every day we have more and more applications and tools to improve our life and be more productive, is part of our professional commitment to be alert about them and try to aggregate to our work method.

We will not discuss about general tools for code storage, continuous integration, continuous delivery, and other essential tools. I'll assume is part of your life.

I will focus on:
  • Beta distribution
  • Quality Assurance: Crash Report Management
  • Analytics
  • Multi-language distribution

TestFlight | www.testflightapp.com

If you are developing for Android, Windows Phone or BlackBerry maybe is not the most interesting tool for you, all of these platforms allow you to distribute your beta versions easily through any way (e-mail distribution, cloud storage services like dropbox, box, ... and so force)

But for the iOs development Team, TestFlight is a "MUST" on our survival kit. You could manage some applications, and some distribution list, you can also contact with testers ... but in general, the most important thing, at least based on my requirements:

You could distribute your beta releases periodically to partners, stakeholders, customers, testers before release your final version to the app store.

In general, on the Apple market is critical to guarantee the stability of the release, according to the distribution lifecycle (5-6 business days). You could try to use the fast release way if you make the mistake to release a buggy version ... firstly because this way has a limited number of bullets ... but the most important reason because you should guarantee your customer confidence.


Crittercism | www.crittercism.com / BugSense | www.bugsense.com

The second weapon to store in our survival kit is the crash report management, in order to control the customer crashes that our users are suffering. 

There are a lot of competitors in this market, but after a product research my decision was to integrate crittercism for iOS and Android solutions, they also support HTML5 and the Windows 8 Beta is announced (we're waiting for...)

BugSense seems also a very nice alternative, I meet with the CEO on the last Tech Mobile event at Barcelona. He was one of the Pitch elevator competitors.

The reason to integrate one of these tools is not only according to collect information of the crashes, and solve in next releases. Is also to have critical KPI related to the quality assurance of the product, and also analytics about the customers.

For example with crittercism you could evaluate (using the Trends Analytics) insights like:
  • DAU - Daily active users
  • MAU - Monthly active users
  • # Application loads - Number of loads of your application
  • # Crash - Number of crashes
  • % Loads with a crash
  • % Users affected by at least one crash
  • ...

All the information segmented by the version of the application.

In my opinion you have enough KPI hear to define goals for you (your team) to succeed (In quality assurance terms)




You can get this information using crittercism or other consolidated products like flurry or AdMob, but I decided to integrate with Google Analytics, the main reason was because it is a familiar tool for me. And, although is not a mobile specific tool, is one of the best tools for analytics ... 

The mission of the analytics tools is evaluate the engage of the users, the usual navigation path ... and a lot of insight you could get from your customers using these tools. Please take a look for example to the Web Analytics 2.0 (Avinash Kaushik) book.




The best development decision here, is create a wrapper for logging the user action when the view controller is loaded for example, in order to maintain your code clean to the partners SDK's. Then, create a wrapper in your code where integrate with these partners.

For example, in iOS application, I setUp the session for crittercism and google Analytics when the AppDelegate has been started. But after that I have a logger shared instance, who is the responsible to manage the tracking of the users activity, now for crittercism and google analytics, maybe tomorrow with other tools. 


OneSkyApp | www.oneskyapp.com/

The last weapon I want to include in my survival kit is not just for mobile developers, in any case, for me is one of the most customer designed tools I had been evaluated the last years.

We're on a global age, and we should provide our products in as many languages as we can. Manage the translation of your application is usually dangerous, keys without all the translations, different words and phrases in different applications ... and so force.

And is difficult to have a global visibility of the situation. One Sky is a product focus in help you on that purpose. You could create as many application as you have in your solution, upload the files in the original format, evaluate the state of the translations (All the language's resources files have the same keys? All the translations have a similar length? ...) Contract the translation for a new language? Define a glossary for all the application ... And, at the end of the process, download the translation on the native resource format that you need.

Simply amazing!



Waiting for your contributions.

Best regards,