84

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.

Braiam
  • 67,791
  • 32
  • 179
  • 269
User
  • 4,526

7 Answers7

93

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.

  • 6
    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.

    http://learnpythonthehardway.org/

    – levesque Nov 16 '10 at 02:33
  • 5
    Quickly is dead. – Braiam Jan 31 '14 at 21:28
19

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/

Javier Rivera
  • 35,153
Chakra
  • 3,472
  • 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 05:45
  • 3
    for making apps for Ubuntu, you'd probably want to be familiar with pygtk if you want to make gui apps. – gregghz Oct 19 '10 at 05:49
  • What is pygtk? Can you point me to some useful resources for learning more about it. – User Oct 19 '10 at 05:58
  • 1
    A good place would be start observing some popular ubuntu(Gnome/GTK) application http://www.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 06: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 06:03
  • Need to add c# your your programming language list. – trampster Oct 19 '10 at 11:12
  • @trampster Done... Can somebody please point me to some good PyGTK tutorials. @trampster I added C# – User Oct 20 '10 at 00:24
7

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.

trench
  • 508
  • 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 00: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 05: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 05:58
4

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

levesque
  • 4,422
2

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

zoopster
  • 2,064
2

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.

1

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.