Tuesday 28 July 2015

Ubuntu phone:Android app support is a double edged blade

When talking about Ubuntu phones, one of the usual comments is that people say: Canonical should enable Android applications to run on Ubuntu phones.
I will admit, initially I liked the idea...until I saw the first counterarguments.
Here are some reasons why supporting Android applications could kill the platform in it's infancy.

1)Other platforms have tried it...And failed.


Windows(phone)-Supports Android applications
Blackberry OS-Supports Android applications
Tizen-is a carbon copy of Android
Sailfish-Supports Android applications
Is any of those mobile platforms a market success? No. Even Windows phone has barely a 3-4% market share. Tizen still could prove itself, but it is a carbon copy of Android.
Would you want to have emulated Android applications on your Ubuntu phone? Probably not. Let me describe you some of the horrors with Android applications on other platforms:
"The Android applications have the feeling of second rate ports, plus most of them are stripped down old versions of the same applications on Android."
"Most of the time the applications are even too confused too decide if they want to use the native or the emulated Android keyboard"

2)Supporting Android applications would be like a slap to the face to existing Ubuntu applications and scope developers

If Canonical decided to support Android applications, they would lose most of their current third party application developers for the phone. Basically you could simply say goodbye to native Ubuntu phone applications.
Why would a developer develop NATIVE applications for Ubuntu touch if he could just develop an Android application, publish it on the Google play market(to a much wider audience). And he could then just publish a second rate port on the Ubuntu application store?

3)You would either have to destroy the security features of Ubuntu touch, or the Android applications would barely work. 




Let me tell you a little bit on how application security on Ubuntu touch works:
Everything is a sandbox.
That means all the applications can not reach data on the phone unless it goes trough something called "The content hub". In other words an application has to be specifically designed for usage with the content hub to reach any data that was not created inside the sandbox of the application.
Since Android applications are not designed with that in mind, that means many Android applications(especially file mangers) would be useless.
An alternative is to destroy the security within click and snappy packages.

4)Scopes would become less-functional

Since Android applications can not communicate with the content hub, that also means that scopes would be unable to reach the data from Android applications via the traditional way, if they could do it at all.
If they hypothetically could that would be a huge hack and potentially a huge security hole.

So to summarise supporting Android applications on Ubuntu phones would probably be a tactical victory but a strategic defeat.

tl;dr Supporting Android applications on Ubuntu phones could be a bad idea, but mostly it could ruin the platform in the long term.

Tuesday 7 July 2015

Why Ubuntu unity8/Ubuntu on phones and tablets could be the next hot thing.

Even though I still don't have my own unity8 phone, I have been part of the whole hype around Ubuntu phones. My own Ubuntu story started with Ubuntu 12.04 and around those times the first rumours of Canonical working on a mobile variant started going around. Or rather that was read from Mark Shuttleworths words. It turned out they did work on mobility but not a variant ;) .

I even made some applications for the new platform which landed me on this list(on the bottom under the name Mario Kamenjak):
https://developer.ubuntu.com/pioneers
Sadly my shirt has not reached me yet(but I blame Croatian customs, it's a long story that involves certain accents that are only in the Croatian alphabet in my address). Keep in mind that although certain phones already are on the market and even selling above expectations, the whole Ubuntu on mobiles project is still in it's alpha/beta stage. Canonical still hopes to have a convergence ready phone before the end of this year.
But well enough with that for now here are the actual reasons on why I believe Ubuntu has a more than decent chance to survive the global smart-phone market.

1.Convergence


What Ubuntu engineers consider convergence is that they are trying to make one code work on every platform. The usability goal for that is that you can seamlessly switch your devices from desktop to mobile mode and vice versa. That means you only need one device either a tablet or a phone and that device can serve as a full powered desktop machine as well. Depending on which device mode you will be currently using the applications will adapt, And also in some circumstances you will even be able to use desktop applications on your phone or tablet, probably even with an interface that adapts itself. Also Ubuntu is aiming for 100% convergence. Unlike a certain other competitor who will even in it's next operating system have a dedicated mobile version, once Unity8 merges with desktop Ubuntu there will be no special "Ubuntu for mobiles". There will be only "Ubuntu" with one single code-base.
But why hasn't unity8 yet been merged with the main desktop? The answer is stability. And the fact that a chunk of the planned feature set has not yet been implemented.

2.Scopes

Scopes are aiming to provide an innovative way for users to get their information. No need for web applications, you get your information directly to your home screen. Scopes have also the aim to reduce the amount of "bloatware" the OEM's make by giving them the alternative to make custom scopes which are already parts of system libraries. Also Canonical engineers are currently thinking on how to make scopes more interactive, or even how to preview some information more efficiently. Currently when you click or tap on some article in a scope it opens the web browser, however Ubuntu engineers are trying to think of ways how to replace the web browser in such interaction with scopes.

3.Canonical's ecosystem

 

Canonical will not enter the smart-phone market with empty hands. The number of application in Ubuntu's mobile application store is already in the thousands. Plus you will be able to use all the desktop applications as well. Also over the years Canonical has been jumping trough hoops to build up it's ecosystem. There is Ubuntu snappy core, and even the whole snappy buzzword with everything that comes with it and there are Canonicals IoT efforts. They have been in talks with the bigger chunk of the mobile industry, many OEM's and as I have read "Network carriers are literally waiting to jump on it." The current Ubuntu Desktop will also be a great contributing factor to the phone ecosystem.

4. Mobile computers, not phones


I have made several polls about how smart-phone users use their phones. I have asked people if they use their smart-phones more as phones(calls and texting) or as computers(everything else). Even though I expected them to say that they use them more as computers, the results were still shocking. The  overwhelming majority (85%) stated that they use their smartphoe as a computer more often than they use it for it's phone capabilities. It seems that calls and SMS have become just another feature.
And this is exactly where Ubuntu's convergence will come. With it your smart-phone will actually be a computer (even a desktop one). You have a full powered traditional Linux, not a cut down and hidden beneath several layers one on your phone.

5. Innovation


As you may have noticed I have been following this roject quite extensively. I have been reading the news, I have visited and asked them questions in Q&A sessions and I even have many of their engineers and community personnel available on social networks(those guys quite like Google+ like I do). And other than the scopes and convergence mantra there is  another third mantra: "We aren't copy cats." Ubuntu unity8 has some revolutional changes. When talking with Ubuntu engineers none of them wil take the words "But this is how Android/WP/iOS do it." as an argument. Because if you want to make a better product you have to risk to try and make something that is better and not just equally as good. More and more customers are also becoming bored by current smart-phone designs, and there is Ubuntu's chance as well, this is where scopes jump in.

6. It is easy (and fun) to develop for

 

This is a very good one. It is extremely easy to develop applications for Unity8. The programming languages you can use are QML, HTML5, python, C++, C,javascript and there is support for Java files. But the good part is that there are QML and HTML5 API's. Rumours are that even a C++ API might come but I have heard that from only one person. It is a rarity that a Linux distribution provides an API. And now another great thing...Every first time Linux programmer learns the pain of how hard it is to package .deb or .rpm files. That is completely gone, Ubuntu's .click and soon to be .snappy packages will be packaged in seconds.
Also I really like QML. To demonstrate how easy it is I will just tell you this story. I used to be a Java developer. However I instantly fell in love with QML's syntax. When I was making my first Ubuntu application with QML all I had to do was to download and install the Ubuntu SDK, read 2 tutorials, package the application and then I sent it to the store where it was approved in seconds. All of that happened in 45-60 minutes.
For those of you who want to develop applications for multiple operating systems, there is an HTML5 API.

That is it. I hope I haven't missed anything and I hope the article was interesting :)