Edge and Fog Computing

There’s a growing number of organisations thinking that cloud computing and the intermediate communications systems won’t eventually be able to cope with the extremely large number of IoT devices.

Computing near the IoT devices themselves, called Edge or Fog computing, will allow data to be filtered such that only pertinent data ends up in the cloud. It will also allow data to be cached when it can’t be sent yet. Also, there are classes of IoT ‘things’ that need local processing to remove the latency of otherwise using communications/cloud computing and thus provide more immediate alerts and information.

Edge devices can be the IoT devices themselves or low end devices such as Dell’s Edge gateway. They can also be intermediate gateway devices such as the Intel Edison.

An interesting prospect and opportunity for mobile developers is the use of smartphones as edge devices or even devices based on AndroidThings.

When Your App Needs Updating

Too many companies view app development as a one off activity that can be outsourced (external or internal within the company) and then, once complete, not require the developer any more. However, most non trivial apps need ongoing support of some kind.

Things break. New phones are released and new versions of operating systems cause things to break or misbehave. People, perhaps working on things that the app connects with, change things that cause the app to need to be updated.

Things need investigating. Often there’s a need for 2nd line support to work out what’s happened – even if it’s ‘user error’ and not a fault of the app.

Things need improving. Almost every non trivial app I have worked on has undergone small changes after users have fed back how it can be improved.

Review criteria evolves. What passed Apple’s tight scrutiny a year ago might not pass now. Changing your app in any way might cause it to have to be further updated to meet tighter new criteria.

Factor in time and cost to update your app after it has been initially released. Talk to your app developer before this happens so you have some arrangements in place.

The Future of Smartphones and Apps

IDC has a new press release Smartphone Volumes Expected to Rebound in 2017 with a Five-Year Growth Rate of 3.8%, Driving Annual Shipments to 1.53 Billion by 2021.

“IDC doesn’t expect much change throughout the forecast with Android accounting for roughly 85% of smartphone shipments and Apple making up the rest.”

Despite the growth rates being low, remember these are growth rates, not shipments. A very large number of new smartphones are now being shipped every year.

What does this mean for mobile development? Dual Android/iOS app implementations will continue to be common. However, there’s a thought provoking press release at Mobile World Live (the press arm of the GSMA), where it’s suggested that consumers are tired of apps and bots might rule. I think the key word here is ‘consumers’ in that there’s currently too much emphasis on mobile and retail marketing. People are tired of retail marketing apps. Instead they want apps that do real stuff. Bots are part of this in that they can be used to more easily get things done. In the future, getting things done will increasingly involve VR, IoT, big data as well as bots. All these will need apps to implement the UI/visualisation parts. Mobile will become more of a tool rather than a retail marketing conduit.

Android Market Share at 81.7%

Gartner has new press release on smartphone sales. While Gartner concentrates on the battle between Apple and Samsung, the more interesting part for mobile developers is at the bottom of the press release where Android has extended its lead over iOS by 3.2%:

Android now has 81.7 market share. However, Google isn’t standing still and seems to be experimenting with replacing the kernel under Android and Chrome.

Developer Quality vs Cost

Being at the receiving end of enquiries for iOS and Android development has made me realise how many people and companies don’t really know what they are getting into. Some haven’t a clue, not even a hunch, how much effort is involved. Most see a set of screens as something simple. They don’t realise the complexity of what goes on underneath and the consequent communication with other systems and platforms. They don’t realise there are ‘quick and dirty’ ways of doing things and slower and more future proof ways of implementing things, both of which are valid depending on the business context. They don’t think about edge error scenarios, user experience, measuring through analytics and other things like localisation and even the complexities of time. In some cases, there’s no thought as to whether the project is technically feasible.

Ordinarily, this isn’t a problem because many of these things are taken care of by the developer. However, these types of people/companies also tend to not know how to choose a developer. All they think about is cost or daily rates. which gravitates them to developers who don’t know or don’t take care in what they are doing. Not knowing what factors are important and wanting implementation at the lowest cost is obviously a recipe for a failed project.

Android Becoming Ever More Pervasive

There’s a thought provoking piece by James Bourne at AppsTechNews on how Mobility investments are moving more towards the business. The article is based on CCS Insight’s enterprise IT buyers survey:

“Enterprises may well balk at the thought of deploying thousands of iPhones to the organisation – McQuire argues that Apple will begin to see its grip on the enterprise mobile market loosened in 2017”

“Banks are pushing ahead with Android and could form a ‘big change’ for the operating system’s overall perception. You’ve [also] got the broader use case for Android, whether that’s field service, rugged, kiosking…these environments where Android is actually quite successful. Those are some of the areas where Apple just doesn’t play.”

I have always seen Android as a much more capable OS. In the past, this has led me to work on widely varying Android projects that use the OS as a self-service kiosk in hotels, an insurance video recording device in cars and a medical instrument used by consultant Optometrists. What with Android Things, the scope of Android projects can only get wider.

Thoughts on the iOS and Android Duopoly

CSS Insight has a new article on The iOS and Android Duopoly and asks if there will ever be a third platform:

“Many mobile platforms have come and gone during the past decade, some created by start-ups and others by some of the world’s largest technology companies. Mobile platform projects such as Firefox OS, LiMo, Jolla, Maemo, MeeGo, Tizen, Sailfish, Ubuntu, WebOS and Windows 10 Mobile have had little impact on the market.”

The conclusion is that the chances of a new mobile platform succeeding aren’t good. Instead, it’s the services on top such as artificial assistants that will alter behaviour.

This is good news for mobile developers and those companies creating apps. After two decades of uncertainty, we can now develop for Android and iOS in the knowledge that the two main mobile platforms are not likely to change in the next decade. However, we need to remain alert to new mobile platform APIs provided by the ‘artificial assistants’ as these might increasingly be the chosen way to interact with apps and services.

Android to iOS Porting

It’s taken a long time, but we have finally reached the stage where a significant number of companies are looking for Android to iOS porting. There was a time when most development was iOS only, followed by a time where there was significant porting from iOS to Android. After this, there followed a period of enquiries for work on Android AND iOS. Now, finally we are seeing Android being ported to iOS.

The main problem with Android to iOS ports is that Android allows you to do so much more. More specifically, there are lots of things you can do on Android AND iOS, but the Apple Store T&Cs tie down what’s allowed. There’s even been an Android to iOS porting project this week that I wasn’t able to quote on because I knew two main features were not possible. Therein lies the problem starting with Android and porting to iOS.