Category Archives: Thoughts

Android is the new Internet Explorer


Android is the new Internet Explorer

IE’s fragmentation

Web developers have been battling with Internet Explorer for a while now, from IE6 to the new IE11, each version behaves weirder than the previous one. This fragmentation meant maintaining overriding CSS classes in separate IE specific stylesheets and then taking the effort to test on all versions. One big herculean task.

Android’s not too far behind

As I was developing the new CloudMagic website I had to make sure it looked great on mobiles as well, which initially looked like an easy task. Little did I know that Android’s fragmentation battle was up next.

First, I had to get hold of a plethora of devices – the Nexus family (N4, N5, N7, new N7, N10), the Samsung devices (S2, S3, S4, Note, Note 2, 10” & 7” tablets), HTC One, Moto G, just to name a few. My workstation could be easily mistaken for a store in Walmart.

Then I began looking into the specifics of each device. For example:

New Nexus 7 – can’t be shown the tablet layout because it’s height is too small for tablet, and also cannot be shown the phone layout because the width is too large for a phone.

HTC One and Samsung Note 2 – triggered the tablet layout in portrait mode because it’s width in portrait mode is larger than the Nexus 5.

Nexus 10 – worked quite alright in terms of layout, but the animations were jerky.

Clearly, supporting Android’s fragmentation was as bad as supporting IE’s version fragmentation.

Even the code was similar

In spite of all this complexity, I managed to get the website to look presentable on almost all devices. When I relooked the code I saw a striking similarity between the way we conditionally load IE stylesheets and stylesheets with media queries.

To support IE we need

<!-- if [IE lt 9] -->
<link href="ie.css" rel="stylesheet" type="text/css" />
<!-- [endif] -->

And to support all these different resolutions, width, height, dpi etc. etc. we need many media query blocks and conditionally load css stylesheets.

<link href="handheld.css" rel="stylesheet" media="(min-width: 604px) and (max-width: 829px) and (min-height: 600px)" />
 <link href="phone.css" rel="stylesheet" media="(max-width: 603px), (max-height: 599px)" />

/* PHONES & SMALL TABLETS PORTRAIT */
@media (max-width: 603px) {
} 

/* SMALL TABLETS LANDSCAPE */
@media (min-width: 603px) and (max-height: 600px) {
}

You can see how the stylesheets are loaded depending on the version (for IE support) and resolution (for Android support).

With a little help from my friends

Chrome Emulator
By using the Chrome Emulator, I could easily change the width & height of my desktop’s Chrome browser to emulate the device. It’s a great debugging tool. There were couple of final touches which had to be made by previewing it in various devices but this tool did help speed up the process.

Twitter Bootstrap
I thought Twitter’s Bootstrap would help me manage the fragmentation, but I was wrong. Bootstrap added significantly to the page load time, and I realized I was overriding most properties anyway. Maintaining the code was another issue I started having. I then found it easier to write the CSS on my own.

(PS – Don’t get me wrong, I’m an avid Android fan myself, I use the Moto G, but I’m hoping Google does something about the fragmentation soon.)

Feel free to comment with your thoughts below, or follow this discussion on Hacker News.

Awesome User Support is the New Marketing


CloudMagic Customer support love

These are some of the shout-outs we get each day from our happy users. Shipping the product is merely a first step; our job is not done until the user is happy. This happiness comes from experiencing a great product coupled with kick-ass support. Happy users then become life long marketers, an example of this is what we spotted trending on Reddit a few days ago:

Reddit - Just a thumbs up to the devs of CloudMagic   Android

This is not anecdotal, we see many users with such a sentiment everyday. We consciously go the extra mile to keep users happy. Here are a few things we’ve done to make this happen:

Support is in our culture

I’m proud that we have a great support team. In addition, everyone at CloudMagic handles user queries. If you have feedback on design, the design guy will attend to it, if you report a bug on CloudMagic for Android, the Android developer will be talking to you and so on. At times, even the CEO handles the support. What’s more exciting than talking to the very users for whom we build products!

We are all ears

Users are busy, and that’s that. So we make it dead-easy for users to reach out. The support team is just a tap away from our product. Contact Us essentially composes an email to us.

If the user is reporting a bug/issue, we immediately work towards debugging it and fix it based on the severity. Bugs always get priority over new features and enhancements. If it’s a feature request, we probe to understand the use-case and add it to the leaderboard. This makes it easy for us to choose the popular requests and build them in one of the upcoming builds. More the popular requests implemented, more number of happy users.

We also drop a personal note to all those users who had requested the features or were affected by a bug, which make them further happy!

Building Community

Many users reach out to us on our support email – hello@cloudmagic.com. We conclude our conversation asking users to follow us on social networks they prefer. Social networks provide a better platform for us to engage with our users. So, the next time we want to update users on a new feature or want to share something interesting we have a good set followers on Twitter, Facebook and Google+.

App Ratings

Once in a while, we ask happy users to rate us on the app stores. Most likely they would rate us with 5 stars with a nice review. I cannot emphasize enough how important the app stores are for distribution of a mobile app. We take any low rating very seriously and ensure we attend to it the best we can i.e. on Android, we respond to them and engage in a conversation and on iOS, try and find out what went wrong.

There are companies that are built on awesome support – Amazon, Zappos to name a few. We too want to be known for awesome support and we’re definitely on our way there. Let us know what you think about our support, or customer support at your company.