# Durin ###### tags: `durin` `mobile` `ios` `ipfs` App Store URL: https://apps.apple.com/us/app/durin/id1613391995 TestFlight URL: https://testflight.apple.com/join/GY08lwLf Github Repo: https://github.com/ipfs-shipyard/Durin Design: https://www.figma.com/file/TL1T4zNGe88YJNgfNrV5tp/Durin?node-id=11%3A46 ## V2 Notes 4/24/2023 After returning from IPFS Thing, we have some ideas to choose from for next features. These need to be explored and architected before making the decision, there will be a document linked for each idea that goes more in depth. - Light Client for interacting with trustless gateways, written in HeliaJS - Sending files as blocks over Share Nearby / Airdrop, so they can be verified on the other side - integration of wnfs and UCANS with odd.dev (from fission), this work would more than likely happen with Hugo - IROH integration - NABU integration https://github.com/Peergos/nabu ## MVP TODO Aim to announce with blogpost before December 20. - ~~Chore: write blogpost (1 hour)~~ [Dave] - ~~Chore: Set up feedback mechanism (4 hours) [Dave]~~ - ~~Public slack channel, github issue template link~~ - Chore: [add feedback link in settings page](https://github.com/ipfs-shipyard/Durin/issues/3) - ~~Chore: fixup README for public consumption (1 hour)~~ [Dave] - Chore: document process for publishing to app stores (1 hour) [Dave] - investigate what can be automated - ~~Bug: link handling on android generating broken url~~ (1 hour) [Trigram/Eric] - ~~Bug: link handling on android with intents (4 hours)~~ [Trigram/Eric] ## V1 TODO - Feature: Allow app to be a [share target](https://github.com/marwonline/capacitor-share-target) (8 hours) [Trigram/Eric] - ~~Bug: When ipfs:// link from QRcode is opened on ios "no usable data is found" message is displayed (2 hours)~~[Dave] - ~~Feature: Design and UI/UX pass, create visual assets (16 hours)~~[Trigram/Adam] - ~~Feature: Settings page (8 hours)~~[Trigram/Adam] - ~~show nodes and speeds (add icons for node type local/remote)~~ - ~~checkbox next to a specific gateway to force it to use that one~~ - ~~"only use local gateways" option~~ - ~~Feature: Add mimetype to uploader to allow audio recording option on iOS (1 hour)~~[Trigram/Adam] - ~~Feature: Generate QR code for sharing (show in upload success state) (2 hours)~~ [Trigram/Adam] ## Known Limitations - Mobile Chrome (iOS + Android): Typing ipfs:// (or any non-http protocol) into the address bar will kick you to Google - Local Node: Local nodes do not have intranet accessible gateways enabled by default ~~- send PR to go-ipfs to default the Gateway to /ip4/0.0.0.0/tcp/8080~~ This is a no-go https://filecoinproject.slack.com/archives/C02EQ3ELFBQ/p1659460752938759 ## Peer to Peer sharing ### Phase 1: :warning: __NOTES FROM SLACK, NEED TO REVIEW__ :warning: * User can “Archive” a CID when viewing it * User can view a list of CIDs they have archived * User can delete a CID from their archive * User can airdrop a CID from their archive to another person, if they have Durin or not. Users with Durin are known as “Receiver”. * Receiver can be notified of files via airdrop, and accept or decline * Receiver who accepts a file via airdrop will have its CID validated and placed into their Archive page * Receiver who accepts a file over a size threshold (100mb?) where validation is costly will be prompted to optionally manually verify the contents cid validation: * convert file to [car file](https://github.com/web3-storage/ipfs-car) * send over airdrop ("nearby share" on android) * receiver unpacks car file and validates cid ### Phase 2: * BLE * Requesting files * Support a public file directory, viewable to peers ## Future Ideas - Feature: Add iroh gateway [example](http://g1.n0.computer:9050/ipfs/bafybeiasqzewvgyqjzy2kcagyn6q5ssqr2lzqf4qlxht55nfji5sgoy4wy/31F1C6E0-6116-4101-A560-6848F65FBD75.jpeg) [Iroh](https://github.com/n0-computer/iroh) is the rust implementation of [kubo](https://github.com/ipfs/kubo). - Feature: Ability to use your own token to upload files - Feature: Show previous browsing history on browse page (with remove and share option on swipe) - a new history page might be warranted here - Feature: Implement in-app browser as the default - Add a toggle to settings page to use system browser - Feature: Automatically back up photos/files to IPFS - Feature: Encrypted file sharing (put a password on it, or use a wallet signing key) - RND: Use proximity APIs - RND: Integrate with glif - is this useful? - yes, worth articulating some use-cases - Publish a JS module that exposes the useful features - Publish app template that uses capacitor and IPFS - Feature: Generate QR code for sharing (show qr code in slider and in upload sheet) - maybe we can have certain qr code links open automatically in durin ## Extra * in case helpful, here's the language from the ffmpeg integration - things like error strings, etc. https://hackmd.io/qy9PQyiJQSq8n7xHOlgAFw ## Open Questions - Contra, can you make a note of exactly what happens with chrome mobile not handling protocol handlers? I want to make an issue/comment. The only existing issue is specific to android https://bugs.chromium.org/p/chromium/issues/detail?id=178097&q=protocol%20handler%20mobile&can=2