Ubuntu Touch OS Development
I'm new to Ubuntu Touch, but I've been really intrigued with the project. I'd be interested in considering the possibility of becoming a developer / contributor for Ubuntu Touch itself. It seems like a neat project. My primary interest would be in developing for the UI and middleware layers, rather than just building 3rd-party applications. That all said, I'd like to set up a development environment and poke around a bit before making a long-term commitment to the project. I was browsing the documentation on docs.ubports.com, but it didn't seem obvious to me what I would need to do to setup a development environment for Ubuntu Touch itself... app development is described, but core development doesn't seem to be. Is that documented anywhere? Did I just miss it? Can anyone offer any hints on getting setup?
I don't yet have a suitable hardware device yet to run Ubuntu Touch on, is there a way to run it in an emulator or VM? Or is most development done on-device?
Also, are there any developer docs anywhere, such as a roadmap, bug tracker, wiki, design documentation, etc.?
Lakotaubp last edited by
@gauge Have a look through these links they are by no means extensive. I'm sure someone else will have a more accurate list.
Do you have more of an idea of what specifically you want to work on? For the most part, development is done no differently than how things are developed for Ubuntu in a more general sense.
Flohack last edited by
@dobey wants to say that there are a lot of single projects, where again in turn some of them are unmodified from Ubuntu upstream, in fact we are more like a distro (=collection of independent stuff) with a very special twist to support the phone hardware. Sometimes we replace the upstream package with a different version, and sometimes we add new packages. But a lot of code is identical to desktop actually.
If you talk about middleware layers, are you talking about daemons providing APIs to clients, the shell itself (which is unity8 and consists also of a ton of code :))? Its a wide area of stuff you can work on, yes.
Thanks. I suppose I probably should have started with a different question:
Do you know what parts of Ubuntu Touch were abandoned by Canonical when development of Ubuntu Touch stopped? Did they only stop the packaging aspect of the project? Or did they also stop development of other core pieces of technology (e.g. Unity, Mir, Wayland, middleware layers, etc)? I suspect that since the newest Ubuntu release no longer features Unity, that development on Unity might have been stopped as well (or at least the Convergence feature of it), but this is purely a guess. Does anybody know for sure?
If all they did was stop the packaging aspect, well, that might change my answer to your questions a bit... I suppose I was starting from the assumption that some of the software that's needed to make Ubuntu Touch work was likely abandoned when Ubuntu Touch was. That could have been incorrect.
Anyways, to answer your questions, if any of the UI parts were abandoned (Unity, mobile UI features, etc) then I'd probably be most interested in working on that. Though I also wouldn't mind getting involved with middleware or backend stuff either. I've heard rumors that the Ubuntu Touch emulator no longer works, if that's still the case, I think that would also be interesting to try and fix.
I have 13 years of experience with C, C++, Python, Qt, and Gtk, but no real experience yet with kernel/driver programming.
Anyways, perhaps someone can provide some insight as to what the needs are on the project, what software (if any) was abandoned by Canonical when Ubuntu Touch was, etc. I'd certainly be interested to hear the scoop.
Flohack last edited by
Abandoned is the right word. We also use dropped sometime - Well yes, a ton of things was left behind: unity8, all phone-specific packages (see our Github org https://github.com/ubports), the SDK + emulator (but maybe not worth fixing, was always broken a bit), the UI toolkit, the click store, the update system, the push server, translation service on top of all, god where I stop? Its not a packing aspect, it was a damn we are left with tons of code and dont know where to start aspect.
Also we had to set up infrastructure as fast as we could, and some things are still not perfect. But improving daily...
Well our tracker shows all that we know whats not ok: https://github.com/ubports/ubuntu-touch/issues - feel free to lurk around. Plus all core Apps (= apps that we want to maintain) have their own tracker, just search for -app in the repo search for our Org.
Other than that we got a thriving Telegram community: https://t.me/ubports - from there you will get instructions to different subgroups.
Welcome, welcome. The rabbit hole runs deep I used to say.
Wow. Well that explains why there are nearly 400 repositories under the ubports github account. That's a lot of repositories.
Do we know how many developers canonical had working on this before it was abandoned?
I'll be playing 'catch up' for a bit, having no prior familiarity with the touch project, it's software architecture, nor ubuntu/ubports' specific development processes.
But like I said, I'm eager to poke around and learn about the project. Are there any other resources that you might suggest I check out? I just found the ubports channel on YouTube, I'll probably watch some of those to get a feel for the state of things.
There were around 200 full time people working on all these parts, when Canonical dropped Unity and phones. That includes developers, designers, QA, product/project managers, architects, etc…
Canonical still develops Mir, but that's it.
That was a much larger effort than I had realized.
So what are the biggest needs for the project? Developers? Money? Hardware? Infrastructure setup? Something else?
I looked up UBPorts on Liberapay and Patreon, and it seems like there is some monetary support coming from the community. Though it looks like something happened near week 130 (according to the Liberapay history) that resulted in a significant drop in income.
@gauge I'd say at this point, money/developers would help the most.
RE: Liberapay, they had an unexpected turn of events where the payment processor they were using suddenly dropped them, so getting money into/out of Liberapay was hectic for a while. That's resolved now and they've switched to allowing Stripe and PayPal, just like Patreon does.
You can support UBports through either one (or a few other ways to donate via https://ubports.com/donate ).
You can also support some individual developers on Patreon/Liberapay. Myself and a few others also have pages set up there. It would certainly be nice if I could get enough funding from there to work on UT related projects in anything close to full time capacity, but that's unlikely.
Is there a list of current developers (and their patreon/librapay links) anywhere?
Also, what are the biggest "developer wishlist" items right now (e.g. those things that you all would really like to have solved, but don't seem likely to get to soon because of more pressing issues)? For example, one of the recent YouTube videos mentioned that an easy-to-install dev environment would be nice to have. Anything else? Is there any chance of putting up a prioritized developer wishlist somewhere?
Are there any issues with using the 'ubuntu' name in 'ubuntu touch'? I presume that's probably trademarked by Canonical or something.
A lot of questions, I know. But thanks for all the answers by the way, this thread has provided some great insights into the project.
advocatux last edited by
@gauge hi, no there isn't such a list but maybe it would be a good idea to set one with all the core + app developers and the way to sponsor them. There are individual developers pages though.
About the SDK, Rodney is working on that precisely
No, there isn't any problem for us using the word 'ubuntu', we have the permission from Canonical to use it.
If you have more questions or want to get an answer directly from the top, this Saturday is going to be a Q&A. You can ask here https://forums.ubports.com/topic/1769/q-a-38-this-saturday-13-10-18-at-19-00-utc