Getting Started with Quickly
At the heart of what makes Linux thrive as an operating system are applications. Within it is a vibrant, diverse range of applications, satisfying even the most particular needs, all just a few clicks away. With such an imaginative range of applications available, a similarly vibrant developer community has formed, complete with a vast array of tools, languages and functionality. Unfortunately, although powerful, many of these tools are awkwardly complex, and many developers have let their ideas and creativity become buried under an avalanche of confusion around how those tools fit together.
Part of the cause of this problem is that many developer tools cater only to systematic developers—the kind of code-writing workaholics who hack for a living, with a fervent attention to detail backed up by unit tests and other hallmarks of the professional programmer. There are, however, developers of a different sort who are driven by writing practical code, scratching their itches and having fun writing programs and sharing them with others. These are opportunistic developers.
As part of our work in Ubuntu, we have been keen to harness opportunistic developers and enable them to do great work using Ubuntu as a platform. As part of this goal, we have developed a series of tools to make it simple for you to break down the barrier between idea and implementation, and help you to scratch your itches more quickly and easily. One such tool is Quickly (wiki.ubuntu.com/Quickly).
Quickly gets you up and running (quickly, of course) writing an application from scratch. Traditionally, writing desktop applications has involved a not-insignificant amount of faffing required, with build systems, source control, packaging frameworks, graphical interface tools and other things that get in the way of writing code. Quickly is a tool that simplifies how those different things fit together.
Quickly provides a framework with a series of templates for creating different types of applications. With each template, a series of opinionated decisions are made about the tools involved in creating that application. By far, the most popular template and the one that Quickly itself was created to satisfy is the Ubuntu template. This template uses a set of tools that has become hugely popular in modern desktop software development, and tools we have harnessed in Ubuntu. They are:
Python: a simple, easy-to-learn, flexible and efficient, high-level language.
GTK: a comprehensive and powerful graphical toolkit for creating applications and the foundation of the GNOME desktop environment.
GNOME: the desktop environment that ships with Ubuntu, offering many integration facilities.
Glade: an application for creating user interfaces quickly and easily, which then can be loaded right into your Python programs.
GStreamer: a powerful but deliciously simple framework for playing back and creating audio, video and other multimedia content.
DesktopCouch: a framework for saving content in a database that is fast and efficient, hooks neatly into Ubuntu One and is awesome for replication.
gedit: for editing code—Quickly assumes you are going to use the text editor that ships with Ubuntu, which provides a simple and surprisingly flexible interface for writing your programs.
With this core set of tools, you can write any application you can imagine and know that it will run effortlessly on Ubuntu and other distributions. Let's make the magic happen.
Today, Quickly primarily is used on Ubuntu and is not currently packaged for other distributions, although we hope this changes in the future and that other distributions use Quickly too. If you are running Ubuntu, getting Quickly is as simple as installing from the Ubuntu Software Center or firing up a terminal and running:
sudo apt-get install quickly
After a few minutes, you should be up and running.
With Quickly installed and ready to roll, let's start creating a simple application. Fire up a terminal with Applications→Accessories→Terminal, and enter the following command:
quickly create ubuntu-project myapp
This command uses Quickly to create a new Ubuntu Project called myapp. You will see a flurry of lines fly past your eyes as Quickly generates the new project and saves its various files inside a new directory called myapp. When Quickly finishes generating the project, it runs it automatically, and you should see a window that looks remarkably similar to Figure 1.
The generated application has a number of important elements common to many applications, such as a menu bar, menu items and status bar, and it also includes a label with some text and a rather nice Ubuntu circle of friends image. Feel free to click through the menus and play with your new program. It won't do much yet, but from this pre-existing base, you now can turn it into any program you want. Let's start working on it. First, go into the project directory:
Quickly has a series of commands that each begin with the quickly command. The first command you need to know is how to run your program. Simply use the run command:
This runs your program and displays it on the screen. When you're finished with the program, you can close it down either by clicking the window close button or pressing Ctrl-C inside the terminal.
Now, let's create a really simple program that demonstrates how basic development works with Quickly and its key components: Python and the GTK widget set. To do this, the program will have a text entry box and when you type in a word, it will search for that word on Google. Although delightfully simple, it demonstrates the basics well and is a good place to start.
Free DevOps eBooks, Videos, and more!
Regardless of where you are in your DevOps process, Linux Journal can help!
We offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, and advice & help from the expert sources like:
- Linux Journal
Web Development News
- Weapons of MaaS Deployment
- Ubuntu & SUSE & CentOS, Oh My!
- The Only Mac I Use
- New Products
- Easy Watermarking with ImageMagick
- Integrating Trac, Jenkins and Cobbler—Customizing Linux Operating Systems for Organizational Needs
- Promise Theory—What Is It?
- RSS Feeds
- Tech Tip: Really Simple HTTP Server with Python