Flutter is the fastest growing mobile app developer community but currently there's no Flutter library support in the Cardano ecosystem.
Publish an open-source Flutter library to encourage mobile app development in the Cardano ecosystem.
This is the total amount allocated to Cardano Wallet Flutter SDK
## Project Deliverables:
* https://github.com/reaster/blockfrost_api - Dart binding to BlockFrost Cardano REST API.
* https://github.com/reaster/cardano_wallet_sdk - A Cardano wallet library written in Dart.
* https://flutter-cardano-wallet.web.app/ - A live Flutter wallet app built on the cardano_wallet_sdk. TRY ME!
## Why Flutter?
Flutter is a cross-platform mobile framework that allows you to develop one code-base that runs on both iOS and Android devices.
Flutter is known for its beautiful user interfaces, simplicity, speed, modern design and ROI value. As a developer who has maintained both iOS and Android versions of the same app, I can attest that Flutter is more productive than either platform, meaning you get more than two for the price of one. Despite only being around for 4 years, it's
already caught up to market leader, React Native. Finally, with the full backing of Google, it won't be going away anytime soon. For further reading:
## Why a Wallet?
A wallet is a foundational component of any app that wishes to interact with the Cardano ecosystem by allowing the sending and receiving of ADA to the Cardano blockchain. Having an open-source wallet allows developers to build value on top of this basic functionality.
## Cardano Adoption Accelerant
As with most digital technologies, public adoption of Cardano will occur largely on mobile platforms. Inspiring and facilitating the Flutter developer community could double the Cardano mobile apps published in the coming years.
## Goals and Scope
## Deliverable Breakdown
Serving as the means of communication with the Cardano blockchain, this component is largely a code generation artifact produced from the OpenAPI BlockFrost REST specification (https://docs.blockfrost.io). It should be 90% completed before this project is funded.
A full wallet SDK is a complex piece of software, adhering to the highest levels of security and at a mimimum, requires the following functionality:
* list, create, update, or delete wallets
* create, submit or track transactions and their fees
* create, import and manage wallet addresses
* manage and communicate with various networks
* manage private and public keys
* sign and validate messages
* collect, store and manage user information
* BlockFrost account setup
* list transactions using the BlockFrost API
* implement cryptographic functionality on an as-needed basis
* implement CBOR binding based on shelley.cddl and validate functionality with tests
* implement ADA receive transaction
* implement ADA send transaction
* implement a price oracle (optional)
* generate and store public/private keys (optional)
* implement wallet generation (optional)
Staking, native tokens, token exchange, smart contracts and other features are beyond the scope of this project.
To lower the scope and cost of this project, it was decided to not open source the UI component at this time. Instead, this will be publicly accessible as a live demo project on the web. (Did I mention Flutter 2.0 now supports web deployments?)
In addition to demonstrating and validating functionality, a working UI keeps the use cases focused, improving SDK design.
Inspired by the MetaMask wallet design, this app will initially use mock data which will gradually be replaced by cardano_wallet_sdk provided (testnet) data as each function is completed. The UI layout should be 90% finished before this project is funded and development will not be billed to this project. If the community shows interest in supporting this app, it will be offered as a project in a future funding round.
## Roadmap and Performance
Code will be continually pushed to GitHub throughout the duration of the project and catalyst funded work should be completed 2 months after the start date.
Future work will be driven by community interest and developer adaption.
Performance indicator (KPI) will be downloads and developer involvement in these Github libraries. Any downloads in the first two months would be a good short-term indicator. Longer term, having a few serious developers contribute or fork these libraries, or seeing competing Flutter Cardano modules developed would be cause for celebration.
The budget is for 100 hours of development time at $100 USD/hour. Hours will be tracked in a Google spreadsheet and made available on request. The UI work will not be billed to this project unless reviewers want it included, in which case I'd request another 100 hours.
The entire outcome of this project will be open-sourced under Apache License 2.0.
2.5 years Flutter/Dart
10 years iOS/Android
25 years Server-side Java
9 years FinTech
6 years tooling/code generation
3 months Haskell