diff --git a/README.md b/README.md new file mode 100644 index 00000000..431b79a7 --- /dev/null +++ b/README.md @@ -0,0 +1,122 @@ +# Cartographer +_An experimental mobile web browser_ + +> Note: Cartographer is a very early work in progress, so approach with caution. + + + +Cartographer is an experimental web browser, technology demo and user interface/experience playground. +It's focus will be on supporting distributed, decentralised and peer to peer technologies such as Ethereum, IPFS and Hypercore. + +It's mostly being built because: building things is fun. + + + Illustrative screen capture of Cartographer running on iOS, browsing between webs sites, tabs and the settings screen, which displays an Ethereum wallet balance + + +[Video - Duration: 54 seconds (YouTube)](https://youtu.be/6MmmjcFzU44) + +  + + +If you're looking for more mature, feature rich web browsers that support distributed and decentralised web technologies, please see our [P2P Web Browsers](./docs/p2p-web-browsers.md) document. + + + + +## Download + +Interested in testing Cartographer on iOS but not comfortable with compiling from source and/or don't have the tools? + +Then [leave a comment on this issue](https://github.com/localhost-international/cartographer/issues/2) and we'll get you added to TestFlight. + +Interested in running on Android? [See this issue](https://github.com/localhost-international/cartographer/issues/1). + +## Development + +### Building + +For instructions on building Cartographer, please see [BUILDING.md](./BUILDING.md). + +### Testing and Linting + +> TODO - Build out snapshot tests for components + +* `yarn lint` +* `yarn test` + +  + +### Contributors + +We're polite and inclusive, and it'd be great if you are also. +[Non-violent Communication](https://www.cnvc.org/learn-nvc/what-is-nvc) is key. + +  + + + +## Features + +Currently, the browser is very **very** (*very*?) rudimentary, but will support the following features: + +#### Browser + +- [x] Navigation +- [x] Tabs +- [x] Native sharing +- [ ] Home screen +- [ ] Private browsing +- [ ] Default browser (iOS 14) +- [x] Search from address bar +- [ ] History + +#### Protocols + +- [x] `http` +- [x] `https` +- [x] `web3` _Pre-alpha_ +- [ ] `ipfs` +- [ ] `hyper` +- [ ] `dat` + +#### Settings + +- [ ] Persistence +- [ ] Search engines +- [ ] Clear history +- [ ] Clear website data +- [ ] Ad blocker + +#### UI/UX + +- [x] App Icon _Temporary_ +- [x] Dark/light mode +- [x] Pull to refresh +- [x] Landscape mode +- [ ] Animations + + +#### Platforms + +- [x] Android +- [x] iOS +- [ ] iPadOS + + +#### Project + +- [ ] Branding +- [x] Unit Tests _Partial_ +- [ ] CI +- [ ] Decentralised source control (e.g. Radicle) +- [ ] Project roadmap 🙃 + + +  + + +## License + +[GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.en.html). + diff --git a/rn-cli.config.js b/rn-cli.config.js new file mode 100644 index 00000000..f42e993c --- /dev/null +++ b/rn-cli.config.js @@ -0,0 +1,8 @@ +module.exports = { + getTransformModulePath() { + return require.resolve('react-native-typescript-transformer'); + }, + getSourceExts() { + return ['ts', 'tsx']; + }, +};