Material Design and File Copy in the Latest ownCloud Android App – a Tale of Community
We just made the ownCloud Android Client version 1.8 available on the Google Play Store and other stores, see our website. This new version introduced three major new features: Material Design, the file copy feature and a text file preview function. Besides that, there are several bug fixes and smaller features like an update to […]
We just made the ownCloud Android Client version 1.8 available on the Google Play Store and other stores, see our website. This new version introduced three major new features: Material Design, the file copy feature and a text file preview function. Besides that, there are several bug fixes and smaller features like an update to the latest ownCloud Server share API and many other user interface improvements and performance enhancements.
To celebrate this release, we’ve asked some of the most active community contributors to share what they have been working on and how it will impact your experience with the app.
Starting with the new design of the app, we asked AndyScherzinger for his thoughts. His work on Material Design, the new ‘design language‘ for Google’s Android platform, was his first contribution to ownCloud and he was glad to give some deeper insight in what was achieved. The description of the new features below comes directly from him! Click on the screen shots to see full versions.
Action bar and drawer
The first obvious part that shows you the newly added material design is the new action bar and its drawer.
Besides the general style we introduced two minor changes here, showing the user of the active account and adding icons to support the identification of the different actions.
The revamped dialogs are simply a design change from a visual point of view. We restyled all dialogs throughout the app which means we had to work on the alert dialogs, pop-ups and so on. For the file menu we did not just materialize the style but also added the file name so you can identify the file for which you are about to choose an action and it also brings the dialog in line with the iOS app.
With this release we ship an all new icon set for the general icons within the app (e.g. on the action bar) and also the new icons introduced in ownCloud 8.2. These icons keep the app visually consistent with the web front-end and also add to the overall Material Design.
Development Challenge: Dialogs and Buttons
So that is it for the visual changes. Since I worked on the code changes needed to move to Material Design I would now like talk about the challenges we faced during this process and share with you the things we learned down the road.
We integrated the latest version of Google’s AppCompat library which offers you the ability to implement features of newer Android versions in a backwards compatible way. So the first thing we did after integrating the new library version was switching to the AppCompat theme to have material design activated for all the Android versions we support (Ice Cream Sandwich onwards). Testdriving the change on a device running lollipop seemed fine but checking out the new design on a non-Lollipop version showed the buttons in a non-material design and also the dialogs were not rendered correctly, see screen shot.
You won’t see these glitches in our release. We had to re-implement the dialogs and buttons using the AppCompat provided button and dialog implementation to get this issue solved.
Further things to come & Call to actions
We aren’t finished with our work on materializing the app’s design. So you can expect further changes. Things we are currently working on are:
- floating action button
- highlighting the primary action button
- visually consistent style of the check boxes through out the app
These are just some things to expect in the future Material wise and like mentioned before this has been my first contribution. During the time we moved to Material Design I had a lot of support from the community and the ownCloud team – being it discussions with other developers and designers, test support from QA or prioritization and feedback from scrum masters. I was just looking for self hosted cloud storage solution that also offers mobile clients and both the Open Source Approach and the support from the community gave me a change to give back and say thank you by contributing to its development.
This won’t be my last contribution (see bullet list above) and due to my experience during my first contribution I can only recommend to everyone who is thinking about it to visit the issue trackers on Github, start a discussion and give it a try.
So have fun with this new release and stay tuned for the things to come in the future!
File Copy and text file preview
The second major feature in this Android App release is the File Copy feature. This allows you to copy files around in ownCloud from within the client. This was developed by stoyicker, initially as part of a project for his masters at University. We’ll let him describe how he got involved and why:
I began collaborating to ownCloud for Android along some friends for one of the subjects in my master program. We began by studying, among others, the Google Play entry and the GitHub Issues section to create somewhat of a set of features and fixes to find items to work on.
After completing our first item, we showed our scrum board to some people in ownCloud and got positive comments. Things went on, and we merged things like a Gradle build script (conversation here).
With time, the subject finished but I decided to stick around for a little bit longer to finish merging some of the items that I had developed and were still hanging, like text file preview or file copy.
You can see the pull request for file copy here – it was a large piece of work and took quite a while to be reviewed, tested, improved and included.
As mentioned by Jorge, besides the file copy feature, he contributed also to the text file preview function which is part of this release.
We want to thank both Andy and Jorge for their contributions – and, of course, the many other contributors who make the ownCloud Android client as awesome as it is, including another regular contributor, tobiasKaminsky who has no less than 14 open and 32 closed pull requests on his name…
The upcoming ownCloud Android Client release is slated for shortly before the end of the year and will include some more major contributions by community members. Among them some significant improvements to the auto-upload feature (based on work by LukeOwncloud) and updates to the synchronization capabilities of the client.
You can see what is planned here and the team is always looking forward for more input. Also, I’d like to point out that testing and reviewing are actually serious bottlenecks in getting improvements in the Android client. There are no less than 35 open pull requests at the time of this writing. Some of those are quite technical improvements from new contributors (like these) and testing such takes time.
You’ll understand that help with reviewing, catching bugs and testing of the many improvements is very much appreciated! Even if you’re not a super experienced Android developer, it is very helpful to look at the code proposed in the pull requests and just ask questions about pieces you find odd or where you suspect a problem might hide. Questions are never stupid and every problem found by re-examining the code saves time testing and reviewing for final inclusion.
But besides that, the team also very much welcomes small papercuts and visual improvements to the Android app. The smaller a PR is, the easier it is to review and get it merged quickly – something to keep in mind for any new contributor!
The team has designated over a dozen items as “contributions are welcome“. These are great to get started with and we certainly look forward to your pull requests!