How do I get started creating an Ubuntu Desktop App?

I want to create an Ubuntu desktop app, specifically to replace Gwibber.

I can code in Java, Python and a few other technologies. Adobe Flex would have been an option until Adobe decided to suck some more and stopped support for AIR on Linux.

Note - I don't care about supporting other OS's. It will be a personal Ubuntu specific app. It can I open-source, I don't mind extra help.

It should integrate seamlessly with Ubuntu, notifications and all.

I guess Python it is, is that correct? How do I get started?


Solution 1:

Yeah Python is probably your best starting point, if you're comfortable with it (who isn't?).

I'd take a look at Quickly. It's there to get "opportunistic" developers writing something as soon as they possibly can. As such it lays a lot of the groundwork for you, as well as giving you a good basis for getting it packaged and on Launchpad for release.

sudo apt-get install quickly quickly-ubuntu-template
cd ~/Desktop # optional
quickly tutorial ubuntu-application

But that'll get you started. I would really recommend going through the tutorial but the main steps are:

quickly create ubuntu-application myapp
cd myapp
quickly edit # opens in gedit
quickly design # glade UI designer
quickly run # run it
quickly package # package it
quickly release # push it all to launchpad (you'll need to do some setup)

I think you'll agree, this makes it disgustingly quick to write, design, test and publish an application.

There are other templates available too for other uses (CLI apps, etc).

Solution 2:

Check out the new Ubuntu App Developer site, which should have everything you need to get started creating an app for Ubuntu

Solution 3:

You can write and submit an app in just about whatever tickles your fancy. There are a ton of different languages you can use with several UI binding libraries.

There are a number of UI libraries\frameworks\programming languages to work with in developing Ubuntu Desktop apps. Qt has the most mature integration with the current version of ubuntu but, Gtk has been a more popular choice for this in the past.

Qt

  • Introduction to Qt
  • Setup with Qml app in ubuntu *Note: the directions are for mobile apps but the setup steps should apply to desktop apps as well.

Gtk

  • Introduction to Gtk
  • Setup in ubuntu

wxWidgets

  • Introduction
  • Setup on Ubuntu

Some additional resources

  • Ubuntu forums list
  • What is the best way to develop apps for ubuntu?
  • GtkSharp .Net for C# and other .net languages
  • How do I write ubuntu apps in Java?
  • Java or Python for Ubuntu?
  • Resources for Desktop Apps

Update 7/15/2016: Ubuntu now has an app distribution platform Snappy that you can use to create and publish an app. Get Started

Solution 4:

Ubuntu 16.04 and newer

The Quickly application recommended in the accepted answer is not available in the default Ubuntu 16.04 repositories. An alternative software to Quickly is Illumination Software Creator. Version 6 of this software (the latest version) is released as a Debian package under a GPLv2 license. Illumination Software Creator allows you to easily create apps using a drag and drop interface and export it to multiple platforms.

For information about which more full-featured Python IDEs are recommended for Ubuntu app development in Python see these questions.

  • Is it possible to use Python with the Ubuntu SDK?
  • Should I use PyQt or PySide for a new Qt project?