Contributing to the ownCloud mobile apps

The Android app
The Android app

The source code of the ownCloud iOS app was made available under the GPL this past November. The Android app has been open source for a while and managed to build up a healthy community.

Unfortunately, there have yet to be many contributions to the iOS app, but there too, the availability of the code means people can step up if they want to improve it! In this blog we’ll discuss the state of both apps and how you can to contribute to them.

Activity in the Android and iOS apps

The ownCloud Android app has been open source for a long time and a lot is going on. The most prolific contributor would have to be Tobias Kaminsky who is working his way to 30 pull requests, with over 20 merged (note: many went in through other pull requests). Altogether, though, 37 people have contributed to the Android app already.

The iOS app, having just been open sourced, has not seen that much help yet from outside our ream of ownCloud, Inc. employees.

How to get your code in?

So let’s assume you have a change you’d like to see in the Android or iOS app and you have some experience with Android or iOS development — or at least the languages they are written in. Here is what you can do:

  • Read up on contributing to ownCloud with our general guidelines and our code of conduct, as well as about the specific apps : iOS, Android.
  • Decide if you’d like to sign the contributor agreement or contribute your code under the MIT license.
  • Then it is time to check out the code, get building, and code what you’d like to have. It is recommended that you create an issue to announce you’re working on this, that way you get feedback, UI suggestions from our interaction design team and, once you have a basic prototype, perhaps help and reviews early!
  • It is key to keep changes proposed for inclusion separate and small. The bigger and more hairy a pull request (PR) grows, the harder it is to get it in. So split things up where you can into smaller changes — if you need a small improvement like an API addition for a big feature, get the API change in via a small PR first rather than adding it to the big piece of work.
  • Note that both mobile apps develop against the develop branch, where we keep a master copy of the code published on the app markets. So fork over the develop branch and get coding there!
  • Once your code is in shape people will be looking at it. Ask questions and answer them, even ping people by name if you’d like them to review your code! After two positive reviews one of the maintainers will merge the code. Sometimes it has to be reworked a bit and a maintainer will take it to another pull request, but you will figure it out — we talk plenty on github!

For example, see how LukeOwncloud fixed a problem that got merged: on downgrading upload db, delete and re-create #798

Even if things are sometimes a little more complicated, as in this case of a nice new feature by Tobias Kaminsky, we all work together to get improvements integrated: Thumbnail for upload #746

As you can see, “together” is the keyword. We like to help each other out and you are always free to ask questions if you have any!

The iOS app
The iOS app

Junior Jobs

If you’d like to try your hand on something relatively simple at first, consider one of the Junior Jobs for iOS or Android.

A Junior Job is a task which the maintainers have deemed relatively simple. That doesn’t mean it’s just a five minute job, especially if you’re unfamiliar with the code base, you’ll still busy for a good while! However, going through the process is a great way of finding out how it all works and getting yourself prepared for a bigger task.

Of course, you’re also very much welcome to ask for help, ideas, and mentoring. You can ask questions on our IRC channel or on the development mailing list!

Building a third party app

If instead you’d like to build an app that can use ownCloud to store and sync data, the iOS and Android libraries are at your disposal! These are very permissively licensed and can thus be included in your app, which takes care of the talking to the ownCloud server. You can find the ios-library here and the android-library here.

Both have a simple example use case of the library, the OCLibraryExample for iOS and the sample_client for Android. Documentation for developing an app with the client libraries is available for iOS and Android and you won’t be the first – see for example Crypto Cloud and Cloud Music for iOS.

Are you app for it?

Contributing to an open source project isn’t the easiest thing in the world but, as Lukas notes in his blog about contributing to open source projects:

“You too can be one of those hidden heroes ensuring that open-source rocks the world”

3 Responses to “Contributing to the ownCloud mobile apps”

  1. Jos

    Well, granted, most of the deep discussions in ownCloud take place on github, rather than on the mailing list. Took me a bit to get used to as well, but thinking about it – it has advantages too, as it keeps conversations a bit more focused. A downside is that it is easy to miss conversations that are important, people have to @mention you if you don’t follow all pull requests and issues (and who can?).

  2. David A. Velasco

    We are, mainly, in Github, where most of the action happens 😉

    Nevertheless, we understand your disappointment due to the lack of activity in other channels. We are actively working to improve it. Recently we sent our first message in the mailing list to ask for opinions about private storage in Android, and probably we will use this channel more often in the immediate future.

    IRC is a bit more difficult due to the time differences, but we won’t give up with it either.

    So please, don’t give up. Any contribution, no matter its size, is fundanmental for the ownCloud ecosystem.

  3. Sudhir Khanger

    The Android mailing list has never seen any mails. The #owncloud-android channels is very very silent. I have rarely seen any chatter there. Where do these guys hang around?

Comments are closed.