How do I get started creating an Ubuntu Desktop App?

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).


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


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