Android on Raspberry Pi 3

There’s a thought-provoking post on GeekTillItHurts on how Android 7.0 Nougat can be run on the Raspberry Pi 3. This offers new opportunities for entrepreneurs and developers to implement more single board computer (SBC) embedded type applications.

Using Android on SBCs isn’t new. I have worked on a few such projects that have re-purposed media Android TV devices to do more specialised things. It’s very easy to program Android rather than c++ or c and you get much better productivity. It also allows more complex applications to be implemented quicker. In two cases I ended up doing image processing on SBCs that would have been much more difficult, if not impossible, had I not had Android’s hardware accelerated drawing APIs.

These boards often run ‘headless’ without a UI or with a minimal admin UI. In these cases, you need some central event processing for communication between the various modules. I have found using Green Robot’s EventBus simplifies communication between threads, services and the minimal UI if you have one.

Onboarding and Help

smashingmagazineSome things seem to go into and out of vogue. At the moment onboarding seems to be making a comeback. Onboarding is the inclusion of one or more extra screens to introduce a new user to the app. Smashing magazine has a great discussion and tips on onboarding.

However, my tip is not to go over-board on this. My experience is that most users are impatient and don’t read what’s put in front of them. They try, then question. Hence, also think about how to serve customers when they start to wonder how to do particular things with your app – even if you have already told them in the onboarding. Your support starts with what’s behind a help icon or button.

Gartner Smartphone Market Research

gartner136Gartner has a new press release Top 10 Worldwide Mobile Phone Vendors Increased Sales in Second Quarter of 2016. Gartner says Apple has had three consecutive quarters of slowing demand and now has only 12.9% market share vs 86.2% for Android.


Probably more interesting for developers is that Windows has only 0.6% and Blackberry 0.1% market share and can probably be considered ‘dead’ with regard to financially viable app development.

Mobile Platforms as Business Tools

Vision Mobile’s latest State of the Developer Nation Q3 2016 report is worth reading. It contains insights generated from 16,500+ developers, from 150 countries across mobile, desktop, cloud, IoT, augmented and virtual reality.

Of interest to mobile developers is that 47% of professional developers now consider Android their primary platform (vs 31% for iOS). Vision mobile says there have been a move away from monetisation via paid downloads, in app purchasing and advertising to apps that are business enablers. They also say there’s a shortage of talent familiar with Apple platforms to fill professional roles.


My personal view is that the huge Android market share has created pressure on iOS wielding (and hence Android averse) CEOs to take it more seriously. For every iOS-only app there has been the weight of Android end-users asking “Where’s the Android app?”. At last, mobile platforms are being considered as business tools rather than regions.

Smartphone Shipments to Grow 5% in 2016

Canalys has a new press release where they say Smartphone shipments to grow 5% in 2016. This is despite the fact that Apple is expected to see its first annual decline.


It’s interesting that while most of the growth will be outside established markets, EMEA and North America will still see a slight growth.

We are now in a stable phase where iOS and Android market shares are likely to stay roughly as now. This provides some medium term stability for mobile app developers choosing their mobile platforms.

Time Estimates for Porting

One of the first questions I usually get when people come to me to port apps is ‘How long will it take’? A very rough estimate is the same order of magnitude it took to develop the iOS (or Android version). Obviously, you will have probably re-designed and re-implemented parts as you developed for the first platform. If you take off some time for such re-work then this will give you a very rough idea of the effort required for a port. Yes, Android and iOS have their quirks, testing and app review respectively, that can conspire to complicate timescales but on average, iOS and Android apps take of the order of the same effort. The projects I have seen that have had vastly different timescales per platform has been mainly due to differing developers having totally different personal approaches to development.

When porting either way, discuss with your developer how the screens might be represented on all the target screen sizes and orientations. For example, you might need to remove features or restrict orientations in some circumstances. These days, iOS also needs to use adaptive layouts so don’t start demanding or expecting pixel perfect layouts as used to be the case. Thinking things through beforehand will enable more accurate effort/time estimates.

Your developer will need to analyse what parts of the app need to be ported line by line and which parts are better ported by examining the intent of the app. Complex business logic tends to need to be ported line by line while os-specific things need new code that follows the intent/behaviour of the donor app.

When porting from Android to iOS, I recommend you read the App Review Guidelines carefully, even if you have previously published an iOS app. The guidelines have changed over time. I seem to spend considerable amounts of time explaining things to product owners who ask me to do things that won’t pass review. However, it obviously saves a lot of time not trying things that won’t ever pass!

There are more tips and hints in my post on Porting iOS to Android.

mobiForge Device Use Insights

mobiforgemobiForge has a new article showing Apple losing share, Samsung and Huawei growing in Q2 2016.

The report has additional insights that are of more interest to developers. Also note that numbers are based on web traffic rather than new device sales so give a better insight in the installed base rather than short term buying trends.

First of all, the change in Apple web traffic depends on the country. You can use this to imply changing device ownership in your particular country…


The stats on screen size vs country also provide clues as to what screen size you should be optimising (your designs) for based on your target country:


More stats are in the full report.

Google Training 2 Million Android Developers

economictimesIt was with some disappointment that I read that Google aims to train two million Indian developers on Android platform. It’s not the competition but the number of extra people who will end up ringing me to see if I have excess work that can be outsourced. I get a few such enquiries by phone and email every week. They must be desperate or misinformed because the kind of work I do is for people who definitely don’t want their work offshored.

In many ways, training two million extra Indian developers misses the real problem. The fact that the existing Indian developer base is already contacting me eager for work shows there isn’t a supply problem. For India, the real developer problem is one of incorrect expectations. Creating yet more developers that say ‘yes’ to everything and then under-deliver isn’t a solution. Instigating more projects that will need excessive developer management isn’t what’s required. Instead, Google and the Indian training partners should be looking to impart cultural, software process and engineering skills as opposed to just Android skills.