Last updated a year ago
Flutter is the fastest growing mobile app developer community but currently there's no Flutter library support in the Cardano ecosystem.
Open-source Flutter SDK - Support ongoing work to add smart contract features, APIs, data structures, tutorials and community requested features. Slow but steady funding model: $15K/fund.
This is the total amount allocated to Flutter SDK.
SDK Recap
Having completed a prototype application in Fund 5, this project is currently undergoing a complete re-write with the goal of creating a production quality off-chain, Flutter SDK. This open-source SDK is hosted on github.com and published on Flutter's library repository, pub.dev. It includes good documentation, best-practices architecture, significant test coverage and a Flutter sample app demonstrating how to obtain balances and send transactions. However, what makes this SDK a truly first class Cardano client library is that it's written in 100%-pure Dart code, resulting in a superior developer experience, no duplicated code or linking problems and, most importantly, it guarantees this complex cryptographic code will work seamlessly on all of Flutter's mobile, desktop and web platforms.
What is Flutter?
Flutter (flutter.dev) is a Google-backed, cross-platform mobile development environment. Often described as Unity for applications, using a single code-base, developers can deliver native apps for both iOS, Android and web platforms. With the recent release of Flutter 3, native Windows, MacOS and Linux apps are also now fully supported on the desktop. Flutter's other strengths include fast, fluid, pixel-perfect user interfaces, rapid prototyping, excellent developer tooling and a modern, user-friendly, statically-typed, null-safe programming language. Finally, Flutter offers a better developer experience, with a simplified UI model and lack of legacy headaches (having published both native Android and iOS apps, the author experienced this first hand).
SDK Status
As of this writing (June 2022) the low-level CBOR and cryptographic base layers are over half finished. This Fund 7 work includes supporting native scripts, enterprise addresses, minting, an account-based architecture, a reduction in third party libraries (internalized mnemonics, etc.) and the low-level infrastructure needed for smart contracts. The CBOR 4.0 to 5.0 library upgrade forced a complete re-write of the blockchain code, but that has now been completed. Fund 8 resources will largely go towards higher level smart contract support, with the ultimate goal of an initial beta release.
Fund 9 Goals
After the first beta release, its anticipated project momentum will increase with new users starting to leverage the SDK in their projects. Fund 9 will ensure there are resources for support, adding requested features, bug fixes and expanding documentation and tutorials. With a project this scope, there will undoubtedly be many features still to be added and refined. A Fund 9 grant will provide an additional 300 hours of work, ensuring the projects momentum is not lost and the budding Flutter community is not abandoned.
Having a off-chain library written in 100% Dart will give the Flutter community a much needed on-ramp to the Cardano ecosystem. Likewise, the Cardano community will gain the single code base leverage that Flutter provides to clients targeting mobile, web and desktop applications.
Duplicating Haskell's off-chain blockchain and smart contact support in Dart is an ambitious project. The main risk is not having enough time to complete the work and therefor funding is critical. Learning from Fund's 6 failure, reducing the requested funds by half in Fund 7 succeeded and this will be the strategy going forward, small fund requests in each fund round.
The elephant in the room for all alternative langue SDKs, is Lace, Cardano's official light wallet offering. However, Lace is not suited for custom stand-alone clients or for that mater, any application in which blockchain access is a secondary feature. Flutter is also a superior cross-platform mobile apps platform over JavaScript alternatives, and depending on the use-case, will often be the better choice.
Feasibility
The Fund 5 prototype proved that Dart is a very capable candidate for writing off-chain clients, so feasibility is no longer an issue.
High-level Timeline
2022-12-31 - Fund 7: complete production quality blockchain foundation code*
2023-03-31 - Fund 8: deliver first beta release with smart contract support
2023-06-31 - Fund 9 deliver 1.0 release, community support, tutorials
*Fund 7 work may be competed in Q3, 2022, accelerating the other release dates.
Fund 9 Task Breakdown
(refer to the next section)
Task Breakdown
The overall goal of Fund 9 will be to publish a stable 1.0 release. Some details may change based on community input and the evolving Cardano ecosystem. Each 50 hour block represents $2,500 of work. Verification of features and bug fixes will be in the form of passing unit tests.
Smart contracts (50 hours). - Ongoing tooling, new features and high-level APIs for common use-cases.
Bug fixes, upgrades (50 hours) - It's important to fix bugs as quickly as possible to keep a project viable. Likewise, Cardano is an evolving standard, in particular when CIPs are adopted, they need to be included in the SDK. Also upgrading third-party library dependencies is an ongoing task, requiring careful consideration and testing.
Community Feature Requests (50 hours) - In the early stages of a new project, being responsive is critical to building a community. Once the community is established, work can be delegated to stake holders.
Community Support (50 hours) - Answering questions, pointing users to specifications and resources and suggesting implementations.
Tutorials (50 hours) - Write SDK usage tutorials and publish on GitHub. Time-allowing, publish video equivalents and include additional features in the example Flutter wallet app.
Alternate Backend Support (50 hours) - In addition the existing Blockfrost adapter, one additional backend will be implemented, who's choice will be determined by community traction and utility. Possible candidates are: cardano-db-sync, cardano-graphql, Mythril or Lace (assuming they publish there native service API).
Time Allowing - Other features on our radar are: a code audit, dApp browser linking, a higher level NTF API, Atala PRISM and Hydra support.
Richard Easterling, senior project lead, architect and developer.
As explained before, the lesson from Fund's 6 failure had been to reduce the requested funds by half in Fund 7 and Fund 8 and this will be the strategy going forward, small fund requests in each fund round. This also provides more accountability.
The popularity rating on https://pub.dev/packages/cardano_wallet_sdk will continue to be the primary metric. However, as the SDK matures, user likes, bug reports and pull requests numbers should start to raise.
Many users of the SDK as reflected in likes on github and pub.dev.
Fund 7 - https://cardano.ideascale.com/c/idea/400720 - SUCCESSFUL
Fund 7 - https://cardano.ideascale.com/c/idea/381288 - SUCCESSFUL
Fund 6 - https://cardano.ideascale.com/c/idea/368970 - FAILED
Fund 5 - https://cardano.ideascale.com/c/idea/352623 - SUCCESSFUL
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
Fund 5, Fund 7 and Fund 8 Recipient
4 years Flutter/Dart
10 years iOS/Android
25 years Server-side Java
6 years tooling/code generation
Plutus Pioneers 3rd Cohort