Android SDK Evolution and Confusion

While studying the Android SDK, I learnt that Android provides two separate methods to switch screens. You can either switch using Activities or by using Fragments. The problem is, it is not very clear which method you should use.

For example, you get this question on Stack Overflow, “Dilemma: when to use Fragments vs Activities”, and it gets closed because it is considered to be entirely based on opinion.

Another Stack Overflow question “android – need some clarifications of fragments vs activities and views” was not closed, but still illustrates the complexity of this issue.

It’s truly annoying that programmers new to Android have to go through this early on.

Fragments were introduced when Android started to support tablets with Android 3.0. In my opinion, the co-existence of Activities and Fragments with overlapping functionality is a result of the rather ad-hoc way the platform has evolved.

Android Design Guideline Nonsense

Apple’s Human Interface Guidelines have historically been held in high regard, and they are considered to be required reading for anybody in mobile development, regardless of platform (iOS, Android or even the mobile web).

Google also has some guidelines for Android. They question is, are they any good? Are they good enough so that we should try to adhere to them whenever possible, or are they actually so confusing that we should actively steer away? Without a proven track record, this is a pertinent question to ask.

Which brings me to this blog post “Do Android UI guidelines really make sense ?”. I recommend that you read this. I have also noticed this awkwardness in Android’s UI, almost from the very first time I touched one. I had not idea that this was not just a mistake, but something that was strongly advocated for.

Problems Using Tabs Instead of Navigation Drawers in Android

A few days ago, I wrote about how the Navigation Drawer (side-navigation or hamburger menu) was removed from the Facebook app and was seemingly going out of vogue. In the case of Facebook, they used a Tab Bar in an implementation that was almost identical to how iOS has been using it (in the clock app for example) since the very first iPhone. This implementation is the default behavior of the TabBarController in the iOS SDK and is ridiculously easy to set up.

For the Android app, Facebook used the Tabs UI element in the Android SDK in a way that mimicked the TabBarController. This is not the way Google has been using it in their Google Play app for example, but it isn’t much effort to get it to work. Their result is the following screen shot.

However, there is one important deviation from the implementation in iOS. That is the icons do not have any descriptive text associated with them, so you have to understand what each button does from the icon alone.

NewImage

Compare this to the iOS app (below). In the iOS app, each icon has a descriptive text label which makes it easier to understand the function of each button.

Although I cannot claim to have a good understanding of why this is the case, I have observed the following which is likely relevant to some degree;

  1. The iOS SDK makes it very easy to add miniature text below the icon to aid users who are unfamiliar with the icons. You simply write the text in a field in the graphical UI design software. It is important to note that this was available since the original iPhone with its 3.5-inch non-retina display, which suggests that Apple viewed the text as a necessity for users unfamiliar with the icons.
  2. The Android SDK makes it similarly easy to add text. However, instead of placing miniature text below the icon, the Android SDK simply adds regular sized text to the right of the icon. This makes the button much wider, and in the case of the Facebook app, you would no longer be able to fit the five buttons.
  3. This is of course quite easy to fix. For example, you could simply add the miniature text to the icon graphic file. It is unclear why Facebook decided not to do this since Facebook generally adds text whenever possible to their icons to clarify their functions. It is unfortunate though that this issue discourages developers from adding text.

NewImage

Summary

The Android SDK has provided Tabs which allow applications to mimic the behavior of iOS TabBarControllers. However, they have omitted an important feature that would have made it easier for users to understand and explore new features.

In my own development, I doubt that I would ever use my own custom icons without explanatory text. On the other hand, I would also never let a tab bar overflow so that the user has to scroll to see all the tabs. I’m also very hesitant to use a Navigation Drawer because this creates an “out of sight, out of mind” situation and is very bad for discoverability.

Wither Navigation Drawer?

I’ve been thinking about mobile app design for our new Ponzu iOS app.

I’ve noticed that the Navigation Drawer has been removed from the new Facebook app, and instead, they are using either the native Tab Bar Controller in iOS, or Tabs in the Action Bar for Android. Let me explain.

Facebook changes

I’m using images I got from the web instead of my own devices, because I’ve already updated them to the newer versions of the Facebook app.

Previous Android Version

NewImage

The hallmark of the previous Android version is the “Navigation Drawer“. This is summoned by clicking the button on the upper left of the screen with causes the top view to slide to the right, revealing a menu list (right image).

On the left image, you also see use of drop-down menus from the Action Bar (the top bar). Interestingly, these items on the Action Bars are also included in the Navigation Drawer, creating redundancy.

The Navigation Drawer pattern was invented by Loren Brichter and was popularized by Facebook. Since then, it has been included into the Android SDK so any Android developer can easily use it, and it has been used extensively in mobile optimized web sites.

To see why Google thinks that this is a good navigation pattern, see their documentation. They basically use it at the root-level in the app’s navigation hierarchy.

New Android Version

NewImage

In the new Android version, we can see that Facebook has totally ditched the Navigation Bar, and instead are using Navigation Tabs within the Action Bar (a more graphical example).

This navigation scheme is very similar to Tab Bars in iOS. Tab Bars have been supported in iOS since the very beginning (iOS 2.0). Android used to have them as in iOS but they don’t seem to be actively supported in the SDK any more.

NewImage

In fact, Facebook is using Android Navigation Tabs within the Action Bar in a manner that is much closer to the iOS Tab Bars in comparison to how Google is using them in their own apps. In Google’s apps, Navigation Tabs are typically present only at a high-level of the navigation hierarchy. They disappear as you move deeper into the application hierarchy. On the other hand, iOS Tab Bars are always present, providing the user with a global navigation element. In Facebook for Android, they put Navigation Tabs on every page, much like how iOS works.

Summary

In a nutshell, Facebook has ditched the Navigation Drawer pattern that it popularized. Instead it has migrated to the Tab Bar navigation pattern that was present since the very first iPhone.

This really shows how much thought went into the original iPhone UI, and how much they got right the first time.

As for reasons why the Navigation Drawer was not a good idea for Facebook, let me give my thoughts;

  1. To serve as a global Navigation Element, the Navigation Drawer has to be present at all times. However, the position of the Navigation Drawer button is the same as the “Back button” (or the “Up button” in Google’s weird terminology) and hence the two cannot coexist. If you want to display a “Back button”, you can’t display a Navigation Drawer. Hence the Navigation Drawer is relegated to the root-levels of the app navigation hierarchy and cannot be used in deeper levels. Essentially, the Navigation Drawer cannot be used for global navigation.
  2. The contents of the Navigation Drawer are hidden. Therefore, features that are only accessible from it will tend not to be noticed by many users. That is why in the previous design, Facebook put the more important menu items in the Action Bar (top bar) as well. Naturally this causes confusion because the same buttons are present in multiple locations but it’s better than losing large amounts of user enagagement.
  3. Since the Navigation Drawer is used mostly at the root-level pages, you could easily use a root page instead. Instead of sliding the Navigation Drawer from the left, you could simply provide a Back Button and show the list of menu items as a separate page. Since everybody is familiar with the Back Button, it becomes very natural for users.

Items 1. and 2. are closely related and have very much to do with the feeling of being “lost” within an app’s hierarchy. Regarding 1., having a global navigation visible at all times makes it easy to get back “out of the woods” so you always feel safe. Without one, you would have to tap the back button many times, and you probably have no idea how may taps you need. Unless your app hierarchy is shallow, you need global navigation at all times. As for 2., if the contents are hidden, users are not going to quickly learn what features your app provides. You should help users learn as quickly as possible by showing the list of important features often.

Credit Where Credit Due

Following WWDC 2014, there has been a lot of positive commentary about how Apple seems to have opened up and was listening to the requests from developers. There was also a lot of discussion on how wonderful the new “Continuity” focus was as compared to efforts from Microsoft and Google.

Given that Craig Federighi was on stage most of the time to explain these new features, Craig and his personality is getting a lot of attention. However, we have to remind ourselves how and when Craig was promoted to his current position.

It was on the occasion when Scott Forstall was ejected from the head of iOS development. Craig was given control of both OS X and iOS development, and was given the task of improving collaboration. And there is no doubt now that he has done a wonderful job.

But it is also true that this was Tim Cook’s vision all along. Tim Cook valued collaboration over the genius of Scott Forstall. He was the one that made the decision between choosing Craig and Scott. And his wisdom has paid dividends.

As much as WWDC2014 was about the new Apple, it also showed that Tim Cook was spot on in his strategy for the company as a whole. We can expect more fruits as the second half of 2014 unfolds.

Thoughts from WWDC 2014

Some of my random thoughts from the WWDC2014 announcements.

Spotlight search moving away from Google

There has been quite a bit of discussion that Apple may be gradually moving away from Google, even on Search. This is evidenced by Spotlight using Bing for searches instead of Google.

I actually take a different view. I am starting to think that Google search has overshot mainstream demands and is actually vulnerable to low-end disruption. What I mean is that for most of the time, when people are doing Google searches, they don’t really require the full power of Google. Instead, what they want to do is to find the meaning of a word from Wikipedia, a location from Maps, something in the news, restaurant information or information about a song or an application. They don’t really need a search engine that knows everything that is on the net, including random blogs. What they need is information from a handful of distinct services.

Google itself acknowledges this. Search for “sushi” on Google and they will give you a map of sushi restaurants nearby and an entry from Wikipedia. Search for “Masahiro Tanaka” and Google will give you an entry from Wikipedia and a link to news searches. Google realizes that people are not looking for random sushi information, no matter how relevant it may be to the “sushi” keyword. Instead the majority of users are using Google as a gateway to Wikipedia, maps and news.

For these users, a search engine that simply listed Wikipedia entries or directly looked up maps would be more convenient than using the full Google search engine.

Hence my position is that Spotlight is less about replacing Google with Bing, and is much more about directly showing Wikipedia entries, etc. Google is facing the possibility of low-end disruption on search.

iCloud Drive

It is becoming increasingly obvious that some elements of the Cloud are starting to be commoditized. iCloud Drive is a prime example of this. We have DropBox, Box, Google Drive, Microsoft One Drive. We even have open-sourced clones like ownDrive. DropBox, which used to be a prime example of how the cloud is becoming so convenient and important, is now almost completely commoditized. It will be very difficult for even DropBox to differentiate itself from the rest.

Windows compatibility

iCloud Drive will be available for Windows but not for Android. This clearly show what Apple thinks of Android. Apple views Windows as a necessary evil. They realize they cannot ignore Windows because it is so dominant in both the consumer and corporate spaces.

On the other hand, Apple considers Android users as people who made the wrong choice by mistake. Apple thinks that if Android users regain their sanity, they will move towards iPhone.

Seriously, if you consider the few most likely multi-OS situations and think through how Apple would like each consumer to behave in the future, you can see the rationale behind Apple’s decision.

For example, Windows PC and iPhone/iPad users are completely covered by Apple’s commitment to iTunes on Windows and iCloud Drive. There is clear multi-device support there, although limited because Apple can not directly modify Windows.

Also, you won’t find many Mac users who decided to use Android smartphones, so it’s meaningless to cater to these users.

There will be many Windows PC users who also have Android phones. Apple isn’t able to target these users with iCloud until they buy at least one Apple device, but that’s another strategy.

Now the main issue is with Windows PC users who own an iPad and an Android phone. Given the market share of each device category, there are quite a lot of users in this segment. Now iPad and Windows will work well together, at least as well as how Windows and Android will work. Given the rapid replacement cycle of smartphones and the dominance of Windows, it makes sense for Apple to try to convert the Android phone to iPhone rather than to convert the Windows PC to a Mac. To achieve this, Apple should work on getting the iPad to work better with Windows, at least better how Android. They should try to make Android the odd-man-out. This isn’t a difficult task given how Google doesn’t like collaborating with Microsoft.

So my view is that Apple is being very sensible in supporting Windows in their multi-device strategy and not supporting Android.

Slow Progress is Killing Firefox OS’s Small Opportunity

About a year ago, I discussed (mostly in Japanese) the possibility that Firefox could succeed if they successfully targeted the opening in the Smartphone market at the low-end.

At that time, Android did not have a solution for low-end smartphones. As a results, vendors were not using the latest OS but using Android 2.3 in the products instead. I stated that if Firefox OS worked smoothly on low-spec devices, it might be able to successfully enter the market.

That hasn’t been what has happened.

Just yesterday, Mozilla announce they are accepting preorders for Firefox Flame, a mid-tier reference Firefox OS device. It has a 1.2 GHz dual-core processor and a 4.5-inch screen. This is not a low-end device. In this market tier, it will be extremely difficult to compete with Androids.

I am pretty disappointed with the progress that Firefox OS has made. In a year, instead of focusing on the low-end, they seem to have moved up-market. Maybe Firefox OS didn’t work well on low-end devices. If so, then it would be an engineering problem.

The way I see it, Firefox OS has lost the ability to compete in the market where it could have been relevant. As Moore’s law progresses, the low-end smartphone market will be filled with higher spec phones which can run the latest version of Android. This will effectively close the small opening that existed temporarily.

Notes on the Capitalist’s Dilemma

Clayton Christensen, the author of “The Innovator’s Dilemma” has been working on the idea that capitalism is having trouble in investing in the types of innovation that really count. Instead investing in those that are actually detrimental to the economy.

Coming from the most influential thinker on innovation, this idea should not be taken lightly. Harvard Business Review has recently published a summary of his work, and it is very much worth reading (the article is divided into many pages, so if that troubles you, I recommend the page optimized for printing.).

I’ll just jot down some things that I consider to be the key points;

  1. “The Capitalist’s Dilemma” is the reason why major economies around the world are experiencing “jobless recoveries” where the economy grows, but jobs are not being created.
  2. Not all innovations are equal. In fact, the majority of the innovations that are happening today are detrimental to economic growth. The authors dissect “Innovation” into three separate categories and argue that the one that create jobs (market-creating innovations) is currently being de-emphasized, while the one that eliminates jobs (efficiency innovations) is being highlighted.
  3. The reason that the wrong category of innovation is being pursued is because the approach to finance that is taught is wrong. Business schools are teaching students to focus on the wrong metrics for evaluating corporate strategy, and as these people end up running banks or businesses, this is hurting the economy.

As the authors’ work illustrates, we have very little understanding of what drives economic growth and the role that innovation plays in it. No wonder we are in this mess.

There’s Still Time Left for Microsoft Tablets

Nine months ago, back when the flattening of iPad sales had not yet become obvious and when the majority of analysts were predicting tablets to soon imminently replace notebooks, I wrote quite a bit about Microsoft (in Japanese).

In summary, I wrote;

破壊的イノベーションが成功するかしないかの最大のポイントは、既存のトップ企業が、まだ間に合ううちに反撃に出るかどうかです。間に合うかどうかというのは、新興の企業・製品が十分に既存製品を代替できるところまで進化しているかどうかにかかっています。つまりスマートフォンとTabletが十分にパソコンを代替できるかどうかです。十分に代替できるところまで来ていれば、Microsoftは反撃のしようが無くなります。しかしそうでなければ反撃が効きます。

The largest factor determining whether a disruption succeeds or not is whether the incumbents respond in time. “In time” is defined by whether the entrant product has evolved to the point where it can fully replace the incumbent. In the context of Microsoft, it is defined by whether the combination of a smartphone and a tablet can replace a PC. If the answer is yes, then Microsoft cannot retaliate. Otherwise, a counterattack will still be effective.

Tabletについては、まだまだパソコンを代替できていません。特にAndroidは7インチに偏っていて、娯楽に完全にフォーカスしています。Tablet市場がパソコンを使って仕事をする方向に向かっていません。これではなかなかパソコンは代替しないでしょう。

Tablet still cannot replace PCs. In particular, Android tablets are skewing towards 7-inches and are focusing on entertainment. The tablet market is not moving towards doing work. Hence, tablets are unlikely to replace PCs.

反撃にいったん出れば、既存のトップ企業はそうそう負けるものではありません。Microsoftの場合、まだ間に合う気がします。

Because of the vast resources they can deploy, incumbents rarely lose once they retaliate in time. In the case of Microsoft, I think they still have time.

Apple has released their sales figures for 1Q2014 and the sales of the iPad have clearly flattened. Although iPad sales volumes (~ 20 million units) are still very impressive, at this level, it does not look like they are on a trajectory to replacing PCs.

So Microsoft still has time.

In fact, the new Surface Pro 3 clearly shows that Microsoft understands this. Instead of launching a hastened response to the iPad which was the original Surface RT, they have launched a product that attacks from their dominant strength in PCs and office productivity software. They have realized that laptops are not going to be replaced by tablets any time soon, and that sales of Windows laptops will continue to surpass the sales of iPad-like productivity tablets. Hence their dominant power, although weakened, will still be a formidable asset for the foreseeable future.

So instead of starting afresh, they are playing their strengths and using their resources wisely. Instead of attacking tablets head on, their plan seems to be to embrace and to internalize tablets into their laptop products.

This clearly makes sense.

Of course, it will take time. But Microsoft has realized that it has time.

Peak Netbook vs. Current Chromebook

I thought it would be interesting to note the peak sales of Netbooks compared to the current sales of Chromebooks.

I don’t have a very good source for peak sales of Netbooks but I think it is 35 million units in 2010. And that was achieved in a mere three years after the first Netbook was introduced (late 2007).

As for Chromebooks, IDC estimates that 2.5 million Chromebook units were sold in 2013. Chromebooks were introduced in June 2011. They have also been with us for nearly three years.

So the real question is not whether Chromebooks will follow the same fate as Netbooks. It is whether Chromebooks will ever be as successful as Netbooks.