{"id":15879,"date":"2018-11-05T09:51:20","date_gmt":"2018-11-05T08:51:20","guid":{"rendered":"https:\/\/owncloud.com\/?p=15879"},"modified":"2021-02-16T18:06:47","modified_gmt":"2021-02-16T18:06:47","slug":"working-brand-new-ios-app-sdk","status":"publish","type":"post","link":"https:\/\/owncloud.com\/de\/blogs\/working-brand-new-ios-app-sdk\/","title":{"rendered":"We\u2018re Working on a Brand-New iOS App and SDK"},"content":{"rendered":"<p>It\u2018s not quite done yet, but several months after kicking off the development of the new iOS app and SDK, It\u2018s time for a sneak preview.<\/p>\n<p>&nbsp;<\/p>\n<h2>New App Features<\/h2>\n<p>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.<\/p>\n<p>If you&#8217;re a fan of Apple&#8217;s Files app, you&#8217;ll be pleased to hear about the new File Provider extension. It will enable you to access and work with your files in Apple&#8217;s Files and many other apps.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_16022\" style=\"width: 1252px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/owncloud.com\/wp-content\/uploads\/2018\/08\/ownCloud-File-Provider-Files-App-1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-16022\" class=\"size-full wp-image-16022\" src=\"https:\/\/owncloud.com\/wp-content\/uploads\/2018\/08\/ownCloud-File-Provider-Files-App-1.png\" alt=\"ownCloud-File Provider - Files App Integration\" width=\"1242\" height=\"2208\" \/><\/a><p id=\"caption-attachment-16022\" class=\"wp-caption-text\">ownCloud is neatly integrated in the Files App.<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>Using an iPad? Then you can look forward to a productivity boost &#8211; thanks to support for iPad Multitasking features like split screen or slide-over. With the planned <strong>drag &amp; drop<\/strong> support, you will be able to move files from other apps into ownCloud, by dragging them right into the app &#8211; just as you would do on the desktop.<\/p>\n<p>Built on Apple&#8217;s Auto Layout, the new app will adapt well to different languages and screen sizes. And &#8211; thanks to the new themeing support &#8211; even your personal taste! Part of that is made possible by Themeable Vector Graphics (TVG) &#8211; a new format created specifically for the new app. Based on SVG, it will deliver razorsharp images with support for dynamic color changes.<\/p>\n<p>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&#8217;t have Internet connectivity.<\/p>\n<p>Curious? Join our Testflight program, help us test the app and <a href=\"https:\/\/central.owncloud.org\/c\/ios\" target=\"_blank\" rel=\"noopener noreferrer\">give us your feedback<\/a>! <a href=\"https:\/\/testflight.apple.com\/join\/Oktj0iKv\" target=\"_blank\" rel=\"noopener noreferrer\">Open this link<\/a> on an iOS device:<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\">\n  <div class=\"button-block button-block--center\">\n    <a href=\"https:\/\/testflight.apple.com\/join\/Oktj0iKv\" class=\"button button--bright-blue\" target=\"_blank\" rel=\"noopener noreferrer\">\n              <i class=\"fa-sign-in\">&nbsp;&nbsp;<\/i>\n            Join our Testflight program!    <\/a>\n  <\/div>\n\n  <\/p>\n<p>&nbsp;<\/p>\n<h2>Advances in Security<\/h2>\n<p>If you encounter potential security issues \u2013 such as a TLS certificate failing validation or a redirect during authentication \u2013 the app informs you about these issues. You can then decide whether you want to trust the connection regardless and continue \u2013 or stop at that point.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_16020\" style=\"width: 1252px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/owncloud.com\/wp-content\/uploads\/2018\/08\/ownCloud-Add-Server-Security-Warning.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-16020\" class=\"size-full wp-image-16020\" src=\"https:\/\/owncloud.com\/wp-content\/uploads\/2018\/08\/ownCloud-Add-Server-Security-Warning.png\" alt=\"ownCloud-Add Server - Security Warning\" width=\"1242\" height=\"2208\" \/><\/a><p id=\"caption-attachment-16020\" class=\"wp-caption-text\">Review redirects during authentication.<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>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.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_16019\" style=\"width: 1252px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/owncloud.com\/wp-content\/uploads\/2018\/08\/ownCloud-Add-Server-Certificate-Details.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-16019\" class=\"size-full wp-image-16019\" src=\"https:\/\/owncloud.com\/wp-content\/uploads\/2018\/08\/ownCloud-Add-Server-Certificate-Details.png\" alt=\"ownCloud-Add Server - Certificate Details\" width=\"1242\" height=\"2208\" \/><\/a><p id=\"caption-attachment-16019\" class=\"wp-caption-text\">View certificate details in the new ownCloud app.<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>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\u2018s settings will allow you to review your past decisions &#8211; and revoke trust if necessary.<\/p>\n<p>Also noteworthy:<\/p>\n<ul>\n<li>the new app <strong>supports password managers<\/strong> like 1Password, making it easier to use strong passwords.<\/li>\n<li><strong>OAuth2 authentication<\/strong> now uses <a href=\"https:\/\/developer.apple.com\/documentation\/safariservices\/sfauthenticationsession\" target=\"_blank\" rel=\"noopener noreferrer\">SFAuthenticationSession<\/a>, following <a href=\"https:\/\/tools.ietf.org\/html\/rfc8252#appendix-B.1\" target=\"_blank\" rel=\"noopener noreferrer\">RFC 8252<\/a> best practices.<\/li>\n<li>once you have switched to another app, the <strong>app appears blurred in iOS\u2018 app switcher.<\/strong><\/li>\n<li>you can protect access to the app with a <strong>passcode, Touch ID or Face ID<\/strong>.<\/li>\n<\/ul>\n<p>More information on the security considerations that go into the new iOS app is available in <a href=\"https:\/\/github.com\/owncloud\/ios-app\/blob\/master\/doc\/SECURITY.md\" target=\"_blank\" rel=\"noopener noreferrer\">this document<\/a>. Feedback welcome!<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_16021\" style=\"width: 1252px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/owncloud.com\/wp-content\/uploads\/2018\/08\/ownCloud-Security-Privacy-Bluring.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-16021\" class=\"wp-image-16021 size-full\" src=\"https:\/\/owncloud.com\/wp-content\/uploads\/2018\/08\/ownCloud-Security-Privacy-Bluring.png\" alt=\"ownCloud-Security - Privacy Bluring\" width=\"1242\" height=\"2208\" \/><\/a><p id=\"caption-attachment-16021\" class=\"wp-caption-text\">The app appears blurred in the app switcher for privacy reasons.<\/p><\/div>\n<p>&nbsp;<\/p>\n<h2>A Modern Foundation: The New SDK for the iOS App<\/h2>\n<p>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.<\/p>\n<p>But best of all: it\u2018s not hard to use, so apps can easily tap its power.<\/p>\n<p>For starters, it\u2018s 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.<\/p>\n<p>And since no one size fits all, the SDK provides both: a low-level interface for directly talking to ownCloud servers \u2013 and a high-level interface that makes implementing clients really easy.<\/p>\n<p>Automated testing is key to identify many issues early \u2013 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.<\/p>\n<p>&nbsp;<\/p>\n<h2>Want to Start Contributing?<\/h2>\n<p>The development of the new iOS app and SDK happens on GitHub, so you can contribute directly to our efforts:<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\">\n  <div class=\"button-block button-block--center\">\n    <a href=\"https:\/\/github.com\/owncloud\/ios-app\" class=\"button button--bright-blue\" target=\"_blank\" rel=\"noopener noreferrer\">\n              <i class=\"fa-github\">&nbsp;&nbsp;<\/i>\n            Join the development of the iOS app!    <\/a>\n  <\/div>\n\n  <\/p>\n<p>&nbsp;<\/p>\n<p>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.<\/p>\n<p>Do you have questions or ideas after reading this blog post? Let us know in the comments below &#8211; or share it on social media:<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 \u2013 and how you can get early access to the beta!<\/p>\n","protected":false},"author":7,"featured_media":15889,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[48],"tags":[347,412,225,364,351,400,352,220],"class_list":["post-15879","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-app","tag-beta","tag-community","tag-contribution","tag-development","tag-ios","tag-opensource","tag-security"],"acf":[],"_links":{"self":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/15879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/comments?post=15879"}],"version-history":[{"count":1,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/15879\/revisions"}],"predecessor-version":[{"id":59149,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/15879\/revisions\/59149"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media\/15889"}],"wp:attachment":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media?parent=15879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/categories?post=15879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/tags?post=15879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}