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'm a bit confused by the recent announcement (http://developer.ubuntu.com/2011/09/announcing-the-ubuntu-app-developer-site/) of the new "App" developer site. I've fallen out of Ubuntu development and now only follow news stories to gauge the direction of the OS, and hadn't realized this was coming down the pipe. Perhaps someone from the community could clear this up for me.

I'm very familiar with Ubuntu, Linux, programming, and packaging, but I'm not sure what the conceptual and technical differences are between an Ubuntu app and a Debian package. I've looked a bit into the developer community documentation, but haven't found a straight answer. Can an Ubuntu app be considered a specially configured package that supports Ubuntu's app framework? And how flexible is that? Could I, for example, write an application in Qt and still wrap it in an app?

(As an aside, I'm a little concerned Ubuntu is headed in this direction. I understand that Ubuntu should explore supporting multiple avenues of application development and distribution to stay relevant. But for a engineering user such as myself, this feels like cruft. These remarks are ignorant though. I shouldn't form a solid opinion until I know what's going on.)

share|improve this question

2 Answers 2

up vote 9 down vote accepted

An Ubuntu "app" is just an application, just like GIMP, Firefox, or whatever.

They're still Debian packages, we just provide a tool called Quickly that gets people going with PyGTK and make it easy to package and submit to the software center.

You can still write your application in Qt, package it, and submit it to the Software Center, we just are trying to simplify connecting developers like you to make shipping your software to end users easier.

share|improve this answer
1  
Ahh, ok. Along with your remarks I see in step 5 of publish section that existing Debian packages can also be added. So to be sure I have it, an "app" is just a usual application, still using Debian packaging. I guess I was thinking that an "App" was smaller, primarily-touch based application. I guess it could be anything! Thanks for clearing that up! –  perden Sep 28 '11 at 17:58
1  
You can also think of apps as lightweight applications that can be submitted in a different way to the Software Center, but are distributed effectively in the same way to users. They also use the same packaging technology (Debian packaging and the Software Center) for distribution. We want to make it easier for developers of this type of software to submit it and see it published in Ubuntu, and that's why we've developed online tools as part of the app developer site to make that possible. –  David Planella Oct 4 '11 at 13:50
    
However, more complex apps might not be eligible for this process (think of someone developing a new LibreOffice, for example), in which case authors are pointed out to the usual Debian/Ubuntu repository route, which is still the way most software makes it to Ubuntu nowadays, and which is not going to change because of the way now apps are being submitted –  David Planella Oct 4 '11 at 13:55

Well, an application is provided as a package, but not all packages are applications. One or more fonts can be provided as packages, for instance. In other words, there is a conceptual difference between a package and an application, but no difference between an application and a package.

Yes, you can develop applications in any language and using any framework you like. Quickly provides a very easy starting point and the main recommendation is using Python and GTK, but there are also templates for Ruby, and other languages and templates for web development instead of desktop applications. Quickly is specifically designed not to limit the developers choice in languages, and (hopefully obviously) there is no lock-in to Ubuntu. You can also provide your own templates, if you application supports plugins, for instance. What Quickly does, is to relieve you of writing boring boilerplate code.

To publish applications using the MyApps portal, there are a few requirements, like your application must use XDG_USER_DIRS for its data and configs, it must be installable to /opt, etc. Other than that, there are no requirements. You can write your app in Java, Python, C*, Gambas or anything else that's supported and using any GUI toolkit you feel like. This makes sense as a primary goal of modern versions of Ubuntu is to unite Qt, GTK and others in order to provide a better user experience.

I hope this clarifies a little bit and that you're less worried about the direction Ubuntu is evolving. :)

share|improve this answer
    
Yes, thank you for adding some more detail! I like to see in supporting this I'm not tied down to any particular configuration. And as I mentioned in my comment to Jorge, I guess I'm tainted by the mobile-space definition of an "App": small, touch-interface, compartmentalized, rigid, (in terms of development). Keeping that flexibility is paramount for linux development and the Ubuntu philosophy, hopefully quelling the reservations of some. Now that I understand it, I'm excited to see what comes of it! –  perden Sep 28 '11 at 20:20

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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