We‘re Working on a Brand-New iOS App and SDK
Join us as we take a tour of the upcoming, completely rewritten iOS app and SDK. Learn everything about its architecture, security focus, cool new features – and how you can get early access to the beta!
It‘s not quite done yet, but several months after kicking off the development of the new iOS app and SDK, It‘s time for a sneak preview.
New App Features
The new app will take advantage of modern iOS features to give you more options to work with your files and deliver an all-around great user experience.
If you’re a fan of Apple’s Files app, you’ll be pleased to hear about the new File Provider extension. It will enable you to access and work with your files in Apple’s Files and many other apps.
Using an iPad? Then you can look forward to a productivity boost – thanks to support for iPad Multitasking features like split screen or slide-over. With the planned drag & drop support, you will be able to move files from other apps into ownCloud, by dragging them right into the app – just as you would do on the desktop.
Built on Apple’s Auto Layout, the new app will adapt well to different languages and screen sizes. And – thanks to the new themeing support – even your personal taste! Part of that is made possible by Themeable Vector Graphics (TVG) – a new format created specifically for the new app. Based on SVG, it will deliver razorsharp images with support for dynamic color changes.
Advances in background connectivity and planned offline capabilities will provide you with a better user experience around downloads, uploads, and working with your files while you don’t have Internet connectivity.
Advances in Security
If you encounter potential security issues – such as a TLS certificate failing validation or a redirect during authentication – the app informs you about these issues. You can then decide whether you want to trust the connection regardless and continue – or stop at that point.
Unlike most other iOS apps, the new ownCloud app provides you with a detailed, meaningful summary of TLS certificates, so that you can really establish their authenticity and make an informed decision on whether you want to trust them.
If you trust a TLS certificate that failed validation, your decision is saved alongside a timestamp for later reference. A dedicated certificate management section in the new app‘s settings will allow you to review your past decisions – and revoke trust if necessary.
- the new app supports password managers like 1Password, making it easier to use strong passwords.
- OAuth2 authentication now uses SFAuthenticationSession, following RFC 8252 best practices.
- once you have switched to another app, the app appears blurred in iOS‘ app switcher.
- you can protect access to the app with a passcode, Touch ID or Face ID.
More information on the security considerations that go into the new iOS app is available in this document. Feedback welcome!
A Modern Foundation: The New SDK for the iOS App
The new app is built on a new, modern foundation: the new ownCloud iOS SDK. The new SDK is fully asynchronous, highly modular, extensible and tuned for security, privacy and performance.
But best of all: it‘s not hard to use, so apps can easily tap its power.
For starters, it‘s really easy to add to projects, since it has no external dependencies. To make this possible, we rolled our own SSL/TLS certificate management, extensible authentication method infrastructure, SQLite library, MDM integration, XML parser and composer, Logging, Keychain and Reachability wrappers.
And since no one size fits all, the SDK provides both: a low-level interface for directly talking to ownCloud servers – and a high-level interface that makes implementing clients really easy.
Automated testing is key to identify many issues early – before they ship. So in addition to covering the majority of the SDK with unit tests, the SDK also provides mocking APIs. This makes it a lot easier to write unit tests for apps that use our SDK.
Want to Start Contributing?
The development of the new iOS app and SDK happens on GitHub, so you can contribute directly to our efforts:
Interested in using the SDK in your own app? The SDK is licensed under GPLv3, but third-party developers are welcome to reach out if they need it under a different license.
Do you have questions or ideas after reading this blog post? Let us know in the comments below – or share it on social media: