At Ubuntu, we aim to simplify development and stay true to rapid application development principles. That’s why we’ve chosen what we feel are the best open-source tools and technologies around to give you full control over your app. And we’ve created a tool called Quickly, which pulls together everything you need to write your own app.
These tools are all provided under OSI-approved open source licences, which means that they’re completely free – even if you’re creating a commercial product.
Missed the Quickly video and the step-by-step guide? Watch the tutorial now ›
| Technology | Description | Quickly command | |
|---|---|---|---|
| Code | PyGObject | A powerful combination of the Python programming language and the GTK+ toolkit to easily write code and create rich graphical user interfaces. | quickly edit |
| Design | Glade | An advanced visual interface designer for the GTK+ graphical toolkit that enables rapid creation and modification of UI elements. | quickly design |
| Track History | Bazaar | A distributed version control system that helps tracking source code history and collaborating with other developers. | quickly save |
| Debug | Winpdb | A graphical debugger for the Python programming language with many advanced features to analyse running code and help track any software defects. | quickly debug |
| Collaborate | Launchpad | An online platform that provides project hosting and release management functionality, as well as other functionality to foster collaboration in tracking bugs, translating apps and providing support. | quickly share |
| Distribute | Debian packaging | A modern and robust packaging and distribution infrastructure to archive apps and make them available to millions through the Ubuntu Software Centre. | quickly package |
Code
The first stage in the journey from idea to creation will be to start writing your app. We’ve chosen a combination of tools to enable you to produce portable, robust and beautiful code.
Python
Python is an easy to learn and powerful programming language, with a comprehensive standard library that provides functions and interfaces for almost any task. It is object-oriented, extensible and interpreter-based, which means it scales well to all types of projects, from small scripts to extensive code bases. Its elegant syntax allows writing code that is extremely readable and concise.
GTK+
GTK+ is a multi-platform toolkit that enables you to create rich graphical user interfaces with a set of extensible widgets. With a focus on usability and universal access, it provides a framework that helps you to produce apps with full native language and accessibility support.
PyGObject
PyGObject is a set of bindings that marry the versatility of a first-class programming language with the modularity of a robust graphical toolkit, allowing the creation of cross-platform GTK+ user interfaces in Python. The end result is a powerful combination that boosts productivity when writing apps.
Gedit
Gedit is a versatile general-purpose text editor designed on the principles of simplicity and ease of use. Syntax highlighting and a flexible plugin framework make it a perfect lightweight yet powerful text editor to write code.
Get started writing code with the quickly edit command
Design
Your application will need a user interface that is not only usable, but also visually compelling. And you’ll need a tool to easily modify it and rapidly include any modifications. We’ve got exactly what you’re after.
Glade
Glade is a visual user interface designer for the GTK+ toolkit. While GTK+ makes it simple to define graphical UI elements in code, Glade brings rapid prototyping to the table by allowing you to dynamically add, remove and modify widgets to the design.
Get started visually designing the graphical user interface with the quickly design command
Track history
Source code revision control is imperative during development. Not only does it allow you to return to previous versions, but it also allows a team to work effectively on the same codebase.
Bazaar
Bazaar is a version control system that helps you to track the history of your app’s code over time. Its distributed nature and advanced merge capabilities both ease and foster collaboration within teams and from external contributors during development.
Get started tracking source code revisions with the quickly save command
Debug
Finding, analysing and fixing software defects will play an important role in ensuring your app is rock-solid and behaves as expected.
Winpdb
Winpdb is a fast Python debugger. It provides a graphical frontend with all the usual functionality you would expect from a modern debugger and more: multiple threads, namespace modification, embedded debugging, and encrypted communication are just some of the highlights.
Get started debugging with the quickly debug command
Collaborate
Whether you are a standalone developer or work as part of a team, having a central hub where the code can be managed and exposed to contributors will make collaboration more effective and fun.
Launchpad
Launchpad is an online collaboration and hosting platform for software projects. It provides a suite of tools to allow managing and maintaining a project’s complete lifecycle. It brings communities together by making it easy to share code, bug reports, translations and ideas across projects.
Use the quickly configure command to link your app to a Launchpad project, and the quickly release and quickly share commands to release or update a new version of your app
Distribute
After releasing an app, the next step is to distribute it to your users. Packaging it ensures they’ll be able to install it at a click of a button.
Debian packaging
Ubuntu uses the Debian packaging system to distribute, install and update applications. The Debian package standard and all associated tools provide a secure, scalable and proven framework to deliver applications to millions of users.
Package your app with the quickly package command
Publish
Once your app has been released and packaged, you’re all set for the last step in the journey: publishing it to the Ubuntu Software Centre and bringing it to everyone’s desktop. We’ve also got that covered, and we’re providing you -you guessed it- with another tool that will enable you to get your app into the Software Centre in almost no time: MyApps.