Thursday, July 9, 2015

To bloat or not to bloat?

'Bloat-fish' from Finding Nemo 3D
To bloat, or not to bloat? That is the question. Or is it really? Recently a group of Chinese consumers in China filed a lawsuit against Samsung and Oppo for delivering to much bloatware on their devices. I tend to say that indeed bloatware is not good. But the real question that needs to be answered first is: "When does software become bloatware?".

Any app that connects to a service that is optional within an ecosystem should not be pre-installed and when such an app is a replacement of a local or connected app than the local or connected app should be pre-installed.

We all know that bloatware is added for mostly economical reasons. Be that it may be good or bad, but it helps reducing the price-tag of the devices. Although we have seen that companies, such as Lenovo, also added spyware which is downward evil in my opinion.

In this post I will outline the differences in software and bloatware and, hopefully, will show why I think the statement above is what bloatware is.

Purpose of devices

There are three (generalized) reasons that people use their devices. So lets take a look at that first.

The first one is that of consuming content. That may be books, movies, series, information from websites and apps, gaming, shopping, social media, et cetera. The second one is that of organizing. This is everything that is done to organize information and relations. Think about planning (calenders), note-keeping, keeping contacts, social media and other actions that support the activity of planning. The last reason people use their devices is that of producing. Albeit this is mostly preserved for laptops and desktops, it also happens on smartphones and tablets. Producing is making content or systems in whatever context that you make it. Think about drawings, video, music, websites, programs, and more.

But there is a sort of "fourth" category. And those are the activities that in some form interact with system components. Most often just because it can (I for one, like stats on my system and all its sensors, geek-stuff I guess). Think about the LED-light on your smartphone that is used as a flashlight. And think about the sensors in your device that give you the ability to use your device as a compass. This functionality of system components are more on an Operating System level and I tend to say that they support the usage of devices to consume, organize and produce.

The layers of software

We now have established an understanding of what the purpose of a device can be, so let's plot that on the layers of software on a abstract level. For the sake of reading, I call everything an app or functionality now.

Layer: Operating System (OS)

The layer of the OS supplies all other layers with functionality. Think about sensory information and specific hardware elements such as LED-light, camera. So here is a list of functionality, sensors and other important hardware that might be present on the OS layer.
  • Camera - To sense images
  • LED-light - To create light
  • Microphone - To sense sound
  • Accelerometer - To sense acceleration
  • Gyroscope - To sense position
  • Magnetometer - To sense magnetic fields
  • Proximity sensor - To sense objects nearby
  • Light sensor - To sense light intensity
  • Barometer - To sense atmospheric pressure
  • Thermometer - To sense temperature (inside device and outside)
  • Air humidity sensor - To sense humidity of air
  • Pedometer - To sense steps made by a person
  • Heart rate monitor - To sens heart rate of a person
  • Fingerprint sensor - To sens a fingerprint of a person
  • GPS - To determine global position of a device
  • NFC - To read nearby chips
And this list is not a definitive list. This list is translated in a list of apps below.
  • Photo and video camera
  • Flashlight
  • Compass
  • Voice recorder
  • Fingerprint scanner
  • NFC reader
  • Screen control by using the procimity sensor.
  • Environment apps that reads sensors such as barometer, thermometer, and humidity sensor.
  • Location and direction apps that reads sensors such as accelerometer, gyroscope, magnetometer, and GPS.
  • Health apps that reads sensors such as pedometer and heart rate monitor.
  • Other apps that read/connects to NFC, WiFi, Bluetooth, Cellular signals, Battery level et cetera.
I think that if you have a specific sensor or hardware capability in your device that you also need the capability to read sensory information of it or use the hardware. I state that such apps are not bloatware. They are an integrated part of your system and all its sensors and hardware.

Location and health apps are specific categories though. Most often such apps are part of an ecosystem by a tech-company and those apps may have an impact on your privacy. I still think you should have an app that can read your heart rate (and perhaps switch it off!). It is another thing if such data should be stored locally or on a Cloud service. I will come back to this later in the ecosystem layer of software.

You will see that apps that resides on the Local and Connected Application are mostly about organizing and planning.

Layer: Local Application Layer

Here are examples of apps (and I state that I talk about the offline versions of them) that I think are tied to the Local Application Layer.
  • Contacts list
  • Calender
  • Tasks
  • Note-keeping
  • Clock, alarm and stopwatch
  • Phone
  • Calculator
  • Photo and Video viewer
  • Filesystem viewer

Layer: Connected Application Layer

Here are examples of apps that reside on this layer. Keep in mind that I talk about apps here that are not a part of an ecosystem, but just have to ability to independently connect to online services.
  • E-mail
  • SMS
  • Web-browser
  • Download Manager
  • Update Manager (updates should be where ever possible delivered from outside the ecosystem)

Layer: Ecosystem Application Layer

The last layer is that of the ecosystem itself. Most often this is the Google Play, Apple iTunes, Microsoft Store, Amazon, or other variations that are out there. In this layer most of the consuming apps resides and often also the producing apps. On the Windows platform Microsoft is also undertaking a move to make all Windows 10 desktop apps available through the Microsoft Store. Yes, it is still possible to install apps from outside the ecosystem (just like Android), but with Windows 10 Microsoft is slowly discouraging that.

I want to mention that only one app in this layer should reside on a device, but no more than just that one app. And that is the app to access and utilize the ecosystem itself. That might the Play Store, Appstore, and so forth. Sometimes this also comes with a video and music player and a book viewer, because that is not an integral part of the app for the store. There is a 'but' though...

Cross Layered Apps

And here is the gray area of software versus bloatware. Google, Apple, Microsoft and more companies alike, are developing ecosystem based apps that replace apps on the local and connected layer of a device. Think about Gmail, Google Drive, Outlook, OneDrive, iCloud, iCloud Drive, Calender, Contacts, People, Hangouts, iMessage, Facetime, Google Fit, S Health, S Note, and the list goes on and on. The reason this is happening is to keep you in the ecosystem by supplying an ever more integrated online and social experience.

And it works more often than not. When I look at myself I can draw that conclusion anyway.

So, when is an app bloatware again?

Any app that connects to a service that is optional within an ecosystem should not be pre-installed and when such an app is a replacement of a local or connected app than the local or connected app should be pre-installed. Here are some examples for the Android platform.
  • Gmail is not optional to the Play ecosystem (everyone with a Google account has Gmail). Therefore, Gmail could standard be present on a phone, but it might be redundant. There is in most cases also a connected version of the e-mail app available.
  • Google+ is an optional service within the Play ecosystem. It has no local or connected app as a counterpart, so Google+ should not be pre-installed on a device.
  • Play Movies is an integrated part of the Play ecosystem (to play videos rented or bought within the Play Store) and it therefore should be present on a device for the sake of user experience.
Apple does a better job concerning bloatware, although I really am wondering why there is a Stock Exchange app. It should just be an optional app. Just like the weather and news apps on all platforms of devices by the way.

Google and Microsoft are doing a better job also with the devices released by themselves. You also know that if you buy a device from them directly that you are really connecting to their ecosystem. Although this is not obligated in many cases and you can use a device outside the ecosystem (you will lose some functionality though).

But when devices are released by third-party manufacturers it suffers very often from bloatware. Especially with consumer devices from companies like Samsung, Dell, Packard Bell, LG, HTC, Sony, Hewlett Packard, Lenovo, et cetera. Most devices come pre-installed with many apps which operate within an ecosystem and often also with games.

I would rather pay a couple of bucks more for a device if it does not come with bloatware.

What do you think about all this? Please share your thoughts in the comments below.



Post a Comment