Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I want to write applications for Ubuntu. I do not know much about programming but I want develop for Ubuntu. I am trying to learn Python right now. What do you think is the best way to develop apps for Ubuntu? Can you point me to some resources that can help me get started with developing for Ubuntu?

Related Ubuntu Forums thread.

share|improve this question

closed as primarily opinion-based by Seth, mikewhatever, Florian Diesch, guntbert, Lucio Feb 1 at 22:59

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

14  
Best suggestion would simply be to start doing something; pick a goal, something small, and set out to do it the moment that you finish learning python. Stack Overflow and the Web in general will be able to help you when you get stuck. –  Robert Massaioli Oct 19 '10 at 10:43
    
quickly and qt are just good ^^ But as Robert said, it all depends on what you want. –  aliasbody Nov 20 '11 at 1:39
    
youtube.com/watch?v=sO8hiPreNBg –  James Nov 17 '12 at 16:26

7 Answers 7

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.

share|improve this answer
5  
I'd add to that list, Learn Python the Hard Way, which is by programming examples, the only good way to learn a language in my opinion. Don't mistake yourself however, it is indeed for beginner programmers, starting with the installation of python ,etc. Also free. learnpythonthehardway.org –  levesque Nov 16 '10 at 2:33
1  
Quickly is dead. –  Braiam Jan 31 at 21:28

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/

share|improve this answer
    
I am starting learning Pyhton right now. By the way, the first link you gave mostly talks about contributing to Ubuntu. My question is not about that. I want to make applications for Ubuntu. –  User Oct 19 '10 at 5:45
3  
for making apps for Ubuntu, you'd probably want to be familiar with pygtk if you want to make gui apps. –  greggory.hz Oct 19 '10 at 5:49
    
What is pygtk? Can you point me to some useful resources for learning more about it. –  User Oct 19 '10 at 5:58
1  
A good place would be start observing some popular ubuntu(Gnome/GTK) application pygtk.org/applications.html. Hopefully someone who has done Ubuntu development in Python answers your question (I am a Java guy :) ) –  Chakra Oct 19 '10 at 6:00
1  
PyGtk or python-gtk is the name for the modules that allow you to use Gtk (the default GUI toolkit in Ubuntu) from Python. –  JanC Oct 19 '10 at 6:03

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.

share|improve this answer
1  
I linked the URLs for you. I know about a lot of documentation for python but I am looking for specific resources that help me develop programs for Ubuntu using Python. –  User Oct 20 '10 at 0:23
    
Thanks for that. I deleted the parenthesized bit about the non-linked URL's given it's no longer relevant. –  trench Oct 20 '10 at 5:55
1  
Also, I just ran across a very nice write-up regarding beginners developing Python apps specifically for Ubuntu a few days ago, as I'm learning myself. If I locate it in my browser history (pretty sure I bookmarked it) I'll report back here. –  trench Oct 20 '10 at 5:58

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, either :

A- go 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)

or

B- 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 kindof the point of the book, if you're not gonna do it, don't bother).

share|improve this answer

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.

share|improve this answer

There are a plethora of resources to help you get started, including the tutorials on Quickly, at http://developer.ubuntu.com

share|improve this answer

If you're not in a hurry you can check out my tutorials.

I've just started using Quickly and learning python as I go. I'm a .net developer as my day job, but I love Open Source, so I started making some tutorials.

You can check out my new blog where I'm recording the creation of my Quickly project.

share|improve this answer

protected by Braiam Jan 31 at 21:22

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.