Mobile App Architecture – Concerns About Shipping Multiple Modules

Architecturecouplingdeploymentmobile

Preface: My question does not exclusively pertain to Google and it doesn't exclusively pertain to iOS. I'm only using Google and iOS as examples because they are familiar to many. I could have just as easily used 'Company X', apps 'A', 'B', 'C', 'D', and 'E', and 'Android', but I wanted to keep my question rooted in the real world with a tangible example.


In the iOS app store, Google has many apps. At a glance, I can see 'Google Search', 'Google+', 'Google Maps', 'Google Earth', and 'Gmail'.

But I wonder – Why didn't Google simply create a 'Google' app which can provide all of the functionality that these five apps provide? The black menu bar at the top of each Google webpage makes this possible on the web; so why don't they make this possible by way of a menu button at the bottom of one "global" Google app?

  • Is Google concerned about tight coupling between the apps?
  • Is Google concerned about tight coupling between the teams that develop the apps?
  • Is Google concerned about app size?
  • Is Google concerned about the memory footprint or CPU load that such a monolithic app might incur when it is loaded?

[Not a rant. Merely playing devil's advocate.]

In spite of many advantages, some iOS critics say that multiple pages of apps leave the iPhone and the iPad feeling "cluttered". This is particularly relevant to my question because it seems a bit much to expect a user to know about (and manage) so many Google mobile offerings. From a product standpoint, and arguably a usability standpoint, it seems like it would be wise to ship a single app.


Google's Black Menu Bar


If you're curious, I own an iPhone and a Nexus 7; so I'm not wedded to either of the two major mobile platforms.

And I have a real problem to solve here – Whether to bundle multiple apps inside of one large app, or to distribute separate bits of functionality in multiple apps.


EDIT: In response, to @MichaelT's comment

Best Answer

In layman's words:

  • Not all users use all of a company's apps
  • Different users have different needs
  • Why force an user to buy a full package when he/she needs only a part ? (Ok, Google apps are free, but other software maker's aren't.)
  • Having those apps separate makes it possible to be updated separately and, most importantly, sold separately.
  • The fact that several apps are made by the same company doesn't mean they belong together.
  • Imagine having a single "Adobe" app that comprises Photoshop, Lightroom, Reader, Dreanweaver, etc.
  • Imagine a single "Apple" app with this modules: iPhoto, iTunes, Aperture, etc.
  • This logic applies for both desktop and mobile apps

Edit:

  • Mobile apps usually have memory limitations (@AndreF)
  • Mobile apps are usually downloaded over-the-air, so a huge file size is not a good idea
  • Multi-module apps need more steps to navigate. Mobile users need easier, faster GUIs.
Related Topic