My App Developer Showdown Entry

As you’ve probably heard already, Ubuntu is running an App Developer Showdown competition where contestants have three weeks to build an Ubuntu app from scratch.  The rules are simple: It has to be new code, it has to run on Ubuntu, and it has to be submitted to the Software Center.  The more you use Ubuntu’s tools, the better your chances of winning will be.  This week we ran a series of workshops introducing these tools and how they can be used.  It all seemed like so much fun, that I’ve decided to participate with my own submission!

Now 2 our of the 6 judges for this competition are my immediate co-workers, so let me just start off by saying that I will not be eligible for any of the prizes.  But it’s still a fun and interesting challenge, so I’m going to participate anyway.  But what is my entry going to be?  Well in my typical fashion of building tools for tools, I’ve decided to write a GUI wrapper on to of Quickly, using Quickly.

Before I started on any code, I first wanted to brainstorm some ideas about the interface itself.  For that I went back to my favorite mockup tool: Pencil.  I knew I wanted to cover all of Quickly’s functions, both for creating projects and working on them afterwards.  I also wanted something that would keep track of my projects, so I wouldn’t have to find where they are on my disk whenever I wanted to hack on them.

Now, I’ve never been a fan of GUI builders.  Even back when I was writing Java/Swing apps, and GUI builders were all the rage, I never used them.  I didn’t use one for Hello Unity, and I wasn’t planning on using Glade for this project either.  But after Jono’s fantastic workshop session about Glade, I decided to give it another chance.  I found that I was able to get a basic UI built and running in very little time.  I’m still struggling with some, and there’s a point where you need to switch from Glade to code, but all in all it has saved me a significant amount of time.

Quickly also saved me a large amount of time, both in creating the project and adding things too it.  Being able to add an Application Indicator to your app by just running “quickly add indicator” is amazing.  From there is was a simple matter to build a menu based on available Quickly commands and tie them in with callback functions.

But the part I like the best about this app so far, is that it’s useful even when you’re not using it.  Most of the time you spend developing a Quickly app is going to be in some other application, such as your code editor of choice, Glade or something.  Thanks to Unity’s HUD, and the fact that it’s smart enough to check Indicator menus in addition to the focused application’s menus, you can call your Quickly commands any time, simply by tapping ‘Alt’ and the command you want to run.  It’s like having Quickly integrated into all of your other tools.

And thanks to the developer tools available in Ubuntu, I was able to accomplish all of this in only a few hours of work.

Now it’s very, very far from being complete.  For instance, the “active” project is hard-coded to my quickly-gtk working directory, it can’t start a project yet, or support commands that take optional arguments or user input.  But in a short amount of time I was able to go from a mockup to a working layout and even some functional code.  It even packages successfully, something I found out quite by accident when I selected “Share” from the indicator menu and ended up with a package in my PPA.

Building an app in 4 hours then accidentally building a proper package and uploading it to a PPA, who’d have thought we’d ever make it that easy?  I hope you all are having as much fun and success in your showdown applications as I am.

This entry was posted in OpenSource, Programming, Projects, Work and tagged , , , , , , , , . Bookmark the permalink.

19 Responses to My App Developer Showdown Entry

  1. Vadim P. says:

    That’s pretty brilliant. I hope this evolves into a long-term running project.

  2. Agmenor says:

    So… you will not receive any T-shirt either ? Just joking ; I like your idea.

    • Michael Hall says:

      Next UDS I’ll have enough UDS shirts to wear one every day, and that’s not counting my various FOSS shirts.

  3. I had the same idea and I started whit it, but I see you have more skills than me to do code.
    I am goin to follow your project

    • Darren LaChausse says:

      I’m in the same boat as you…I was creating Quigly (it’s even in launchpad) but there’s no way I’ll ever get it that polished in 3 weeks time. I think I’m going to still continue working on it though. Competition is good for everyone and such.

      • Michael Hall says:

        I agree, competition is good. There are so many different ways to approach this, I’d love to see what other implementations do

  4. Daan Wynen says:

    I love the idea to have a proper management if workflow between unrelated tools. The part with the HUD making all commands accessible via keyboard is just genius. This will make life so much easier for both occassional and power users!

  5. Nekhelesh Ramananthan says:

    Hi Michael, I branched your code and added content to the help files. My code is now at ~nik90/+junk/modifed-help….however I am not sure how to propose a merge into your code.

    I tried bzr push llp:~nik90/quickly-quickly-gtk/modifed-help however it said I do not have permissions…I thought I remember using this same method to provide quicklist before by pushing to lp:~nik90/ubuntu/precise/geany/quicklists etc…..can you please tell me what I am doing wrong here…

    • Michael Hall says:

      Thanks Nekhelesh!

      I haven’t created a separate Launchpad project for this yet (I’ll talk to the Quickly devs next week about whether it can be part of the Quickly project or if it should be separate), so for now just push it to lp:~nik90/+junk/quickly-gtk and I can merge it from there. The “+junk” is just a space where you can push branches that don’t have a proper project, and very handy for when you’re just getting started on something.

  6. Good read.

    Quickly is definitely fun but I’ve had my fair share of challenges and I’m not even nearly completed. I wish I was a half-descent programmer it would make this experience less painful.

    Good luck on your app, it sounds like something I would definitely use.

  7. ravi says:

    I like your idea ..hope it will go a long way!!!

  8. Junio says:

    Hey Michael,

    Is there a program to make “prototype’s images” like the first one?

  9. Semmu says:

    If You were eligible, You would definitely win this app showdown! :D I had a same idea, but my programming skills are not that good, and this project would be to complex for me.

    But I’m looking forward to this project ;)

  10. Pingback: Ubuntu App Showdown: Gallery Of Progress | jonobacon@home

  11. Pingback: Evolus Pencil 프로토타이핑 도구 | 대체로 무해함

  12. Dan says:

    I know Quickly is great, I just have trouble letting go of control. :-) I like the idea of the app though. I wish I had thought of it.

  13. Pingback: Ubuntu App Showdown Week 1 Wrap-Up | Ubuntu App Developer

  14. Pingback: Quickly Gtk update | Michael Hall

Comments are closed.