# :warning: [DRAFT] Announcing Durin :warning: TODO BEFORE PUBLISH: * add screenshots and logo/header image * Fix all broken links in hackmd, review all links across readmes and app listings * document feedback mechanism * polish pass on app store copy * add durin as share target (contra) :warning: (blog header image - should have Durin logo) Today we are excited to announce a new way to read and share with IPFS on your mobile device - Durin, a native mobile application for iOS and Android. (image which has screenshots of Durin on iOS and Android side by side?) ### Background To date, it's been difficult to access, upload and share IPFS content using a mobile device. This is for a number of reasons, one of which is that [Kubo](https://github.com/ipfs/kubo), the initial implementation of the protocol was simply not built with mobile in mind. We wanted to provide a quick and easy way for users to access basic IPFS features on mobile and set up a testing ground for future explorations. ### Accessing IPFS Content The transport-agnostic nature of IPFS content addresses means there are many ways to find and retrieve content on the IPFS public network. On a mobile device, the best balance of decentralization and device performance is to align with the network model of the device OS - transient connectivity. We do this in Durin by connecting to multiple HTTP gateways to the IPFS network. On app launch, Durin pings a list of public gateways, and determines which route is the most reliable and fastest way to access the network. This approach is functional but not optimal. We're working on specifications for multi-gateway connectivity patterns which balance a number of factors - such as verifiability guarantees, reader privacy, and not overloading gateways. (screenshot of gateway list in Durin) IPFS addresses are not natively supported in most web browsers or any mobile operating systems today. Durin registers as an `ipfs` scheme handler so that addresses are handled when encountered in applications and on the web. For example, when browsing on iOS Safari ([sorry Chrome users](https://bugs.chromium.org/p/chromium/issues/detail?id=178097&q=protocol%20handler%20mobile&can=2)) `ipfs://` protocol links will be redirected to Durin, where the app will translate and redirect the user to the fastest public gateway, making the content available on mobile. (gif of clicking an ipfs link in Safari and being handled by Durin) ## Sharing to IPFS Mobile devices are transiently connected and low power, so do not make good servers. For sharing files and data to IPFS, During uses a remote service to do this on behalf of the user. We currently rely on [web3.storage](https://web3.storage/) for file uploads. `web3.storage` is a service that makes decentralized file storage accessible by hosting data on IPFS for the user, the way a web host does for HTTP today. Durin also saves a local history of uploads already shared. (screenshot) Using a single remote service is a usable first step, but doesn't provide long term user control of the data published. We're looking at tighter integration with local OS data storage, local sharing between devices when possible, and pluggable remote service support. ### Install Durin Durin is available now for mobile phones in the iOS app store and Google Play store. (change links below to the proper ios and android app store buttons) * [App Store](https://apps.apple.com/us/app/durin/id1613391995) * [Google Play Store](https://play.google.com/store/apps/details?id=ai.protocol.durin) ### The Future Durin is an experiment in learning how to expose and integrate IPFS features into mobile operating systems in ways which align optimally with those environments. We'd love to hear your ideas and feedback, and have you participate! * [ipfs-shipyard/durin on Github](https://github.com/ipfs-shipyard/durin) * [HackMd project document](https://hackmd.io/XtxGZoxqQ46X1GO7srrhMQ) * [Feedback link]() Join the #browsers-and-platforms channel which is bridged across the [Filecoin Slack](https://filecoin.io/slack/), [IPFS Discord](https://discord.gg/vZTcrFePpt) and [Element/Matrix](https://matrix.to/#/#browsers-and-standards:ipfs.io).