What is the best way to develop apps for Ubuntu? [closed]

Python is a good choice as a starting language, and there is Quickly, which helps you to create graphical applications easily. Quickly helps you to set up everything you need to develop a GUI application.

Check out how to get started with Quickly on the Ubuntu App Developer site.

To install Quickly type:

sudo apt-get install quickly

You can then get a tutorial by executing:

quickly tutorial ubuntu-application

To create an application just type:

quickly create ubuntu-application Testapp

which will create an application called "Testapp" using the "ubuntu-application" template.

You can design the graphical user-interface by executing

cd testapp
quickly design

which will open Glade, the GUI designer.

To change the actual source code just type

quickly edit


Learning how the Python language works is essential to having a productive and easy experience developing in the Python, GTK, Quickly, Ubuntu environment. Here are some resources:

1: A Byte of Python

(an easy introduction to the Python programming language, free)


2: Dive into Python

(an advanced book, free)


3: Python for Software Design

(an advanced book, free)


Also, bookmark the PyGTK 2.0 Reference Manual.


If you want to develop applications then you need to learn some programming language (C, C++, Java, Python, C#) You can also help in other ways e.g. Translations, Documentation, Testing etc.

The following links will provide you some links regarding Ubuntu and Gnome development.

https://wiki.ubuntu.com/UbuntuDevelopment

http://library.gnome.org/devel/

http://developer.ubuntu.com/


The single best resource for learning Python (and programming in general) is Alan Gauld's massive, and extremely well-written, tutorial called "Learning to Program".

Python.org lists this tutorial as its third recommended resource on the Official Beginners Resources page. You'll find a ton of other resources there, but I really do think Alan's is the best.

You'd also be doing yourself a great favor by signing up for the Official Python Tutor newsgroup.


I'll speak more about programming specific stuff. For Ubuntu-esque tips, see other answers. To get you started, first pick a programming book and learn, sharpen your programming skills. Then, along the way, keep thinking about what you believe is missing on Ubuntu. Once you're done, you either:

  • Join an open source project that is already working towards that goal. If needed, relearn new programming language (knowing more than one programming language is definitely a plus, it has zillions of benefits).

  • Start your own project solving the said problem. Give up when you find out it's too much work and then go back to A. This solution will have the advantage of making you learn what are the challenges in making a good program from scratch.

As a good Python learning resource, I recommend "Learn Python the hard way" by Zed Shaw. It is free, and by the hard way, the author actually means: by getting your hands dirty, by digging straight into programming. It is structured into 52 exercises, and in each you will learn about a different topic of Python and actually implement it yourself. (This is, kind of, the point of the book; if you're not gonna do it, don't bother.)


If you have the money, than I'd recommend picking up the Linux Programming Interface, by Michael Kerrisk. It's not a book you would read through cover to cover, which would take you months at the very least, rather it is a reference manual that gives you a deep insight into the inner workings of Linux from a programmers point of view. That is, however, depending on what level of development you're looking to go to. If you're just going to write plugins for existing applications, then this is probably overkill, but if you're planning on doing some serious development on Linux, then you should think about picking this up. There is a lot of information on the internet on this subject, but there's no one stop shop for it all and you'll spend a good amount of time looking for it, time which having a book like this can save you.