You Got A Question? Ask    GNOME Community!

Writing Click Apps With Ubuntu SDK

I don’t really follow Ubuntu’s Unity development, I don’t know what they are planning to do next, and therefore I can only comment on the actual code they’ve released so far.  From my understanding Unity 8 is a triple desktop environment that can be adjusted (scaled) to any kind of device, desktop, tablet, phone or even TVs and other embedded or mobile devices.

Right now even if we can run Unity 8 in desktop, it is actually made for Tablets and people that have tried it, might don’t anticipate to see that in desktop. Unity 8 for desktop is planned to come late in 2015 or early 2016, and Canonical’s engineers have lots of time till then to improve things.

As soon as Canonical provide a non-broken image of Ubuntu.Next, we will be able to try it on tablet, however if you don’t like the concept, you won’t ever like the final product.

When new things come on the open source market, like Tizen, Firefox OS and etc, it’s always tempting to spend 3-5hrs to try them, and have a very basic knowledge how things work. This is important when you are going to decide what to use in the end for building and pushing your software.

Even if I’m not interested at all to build and deploy Ubuntu Apps, I spent around 5-7hrs to make a stupid application and learn how things work. I must say, what Ubuntu is doing there is totally awesome!

Awesome Getting Started!

What’s really impressive for starting with Ubuntu developing, isn’t their SDK or the toolkit itself, but the level of documentation and tools that they provide to start up with. This kind of simplicity for writing and deploying applications is an amazing innovation in the C-Guru’s Linux Desktop inhabited Planet.

[caption id="attachment_26965" align="aligncenter" width="640"]sdk-ubuntu-new Ubuntu IDE is a modified Qt Creator[/caption]

There are two primary ways to write an Ubuntu App. Either a “native” one with QML that can be extended with C++, or an HTML5 one that runs in a web-container and has extensions to ApacheCordova.

The SDK basically supports three things.

  1. Integration with Unity (HUD, Notifications, Online Accounts, etc)
  2. Access to hardware (Camera, Accelerator, Vibrations etc)
  3. The actual Ubuntu UI for applications, & integration with scopes (messaging Unity) and Ubuntu Web-Apps.

Rest are coming directly from Qt5 or various Javascript frameworks (eg you can add JQuery) if you do HTML5 apps.

[caption id="attachment_26967" align="aligncenter" width="640"]sdk-ubuntu-publish Packaging an app requires a simple manifest file![/caption]

Once you’re done with the code, you can easily publish it in Ubuntu Software Center. I mean you can literary publish it in a few seconds, and it will be online as soon as it has been approved of course. The coolest part is that you can set a price for your application (open source or commercial), the same way that happens on other big software stores. However this feature isn’t yet available.

Click packages won’t work for no-Ubuntu installations, even if you don’t use any Unity extensions, unless other Linux distro vendors bring the whole Ubuntu platform to their distro, which I am not so sure if they’re willing to do.

This pretty much means that people should choose what platform are going to develop applications for, and I believe that there won’t be such thing as “I’m developing for Linux” for much longer.

Instead you are developing for Ubuntu, or GNOME, or KDE, or for all three. In the last case, you don’t follow any HIG patterns and the integration with the 3 systems will be poor.

Ubuntu Developer Get Started  Packaging Click Apps

Ubuntu.Next UI Demo

Ubuntu.Next applications are basically “free-style” and you can create custom interfaces, without respecting Ubuntu HIG. However you probably want to keep a certain lever of integration with the rest Ubuntu apps (eg theming, bottom app containers etc).

On the other hand, Ubuntu developers aren’t very famous about their designing skills, so you can come up with better ideas and interfaces. Ubuntu SDK does definitely permit you that and this is a huge plus!

This is a screencast of some of the widgets that you will find on Ubuntu.Next SDK at the moment, with Ambience theme.

Final Thoughts

Canonical isn’t Google. Google for every crap piece of software they release, the next day they have 10m users and by the next week it becomes a golden standard. Canonical needs extra quality to make this happening, so it’s hard to say if they will succeed with Unity8 & Click Apps or not. To be honest, I personally didn’t get really excited with their User Interfaces.

I feel that developers will prefer HTML5 over QML, so a question is if someone should use Ubuntu’s web-container for making Apps Ubuntu-specific, or if they should use a more general framework (Popcorn Time, Brackets, Atom, etc) web-container and make their application more widely-used. In the second case they lose Ubuntu integration, but the gains are much greater.

Whatever happens Canonical for once again proves that they know how to make things practical & and they have a vision for an Open Desktop that matches the convenient of the proprietary ones. First class documentation, many guides, an easy way to publish & promote your work and all the things that we are used to have in high level frameworks.

Rest desktops should definitely follow this path. There still is a huge market for Open Desktops ..or Home Workstations if you prefer!

Ubuntu SDK also offers an easy using of web-services with Juju and of course the support of mobile devices (Nexus series) with an emulator.

  We can't watch comments unless G+ provides an API or if you send a notification, e.g +World Of Gnome
     Sometimes is better to place your questions on GNOME Community