Flutter SDK
current project status
Current Project Status
in_progress
Total
amount
Received
$3188
Total
amount
Requested
$15000
Total
Percentage
Received
21%
$3188 Received out of $15000
Solution
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.
Problem
Flutter is the fastest growing mobile app developer community but currently there's no Flutter library support in the Cardano ecosystem.
Impact alignment
Feasibility
Value for money

Équipe

This proposal was approved and funded by the Cardano Community via Project F9: Developer Ecosystem Catalyst funding round.

  • download
  • download
  • download
  • download
  • download
  • download
  • download
  • download
  • download
  • download

[IMPACT] Please describe your proposed solution.

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.

[IMPACT] Please describe how your proposed solution will address the Challenge that you have submitted it in.

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.

[IMPACT] What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?

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] Please provide a detailed plan, including timeline and key milestones for delivering your proposal.

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)

[FEASIBILITY] Please provide a detailed budget breakdown.

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.

[FEASIBILITY] Please provide details of the people who will work on the project.

Richard Easterling, senior project lead, architect and developer.

[FEASIBILITY] If you are funded, will you return to Catalyst in a later round for further funding? Please explain why / why not.

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.

[AUDITABILITY] Please describe what you will measure to track your project's progress, and how will you measure these?

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.

[AUDITABILITY] What does success for this project look like?

Many users of the SDK as reflected in likes on github and pub.dev.

[AUDITABILITY] Please provide information on whether this proposal is a continuation of a previously funded project in Catalyst or an entirely new one.

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

Avis des conseillers communautaires (1)

Comments

Monthly Reports

Other obligations left little time for Catalyst work this month. I expect to have much more free time in December. Blockfrost update broke SDK transactions. I’m working on a fix. Ongoing work to covert Coin types to BigInteger. User support, GitHub Issue 18

Disbursed to Date
$3,188
Proposal
Flutter SDK
Status
Still in progress
Completion Target
3. In the next 6 months
Attachment(s)
Comments 0

Login or Register to leave a comment!

This moth I've been working through prerequisites for first smart contract test, including Blockfrost code, stand-alone FeeCalculationService, Certificate and it's many subclasses and supporting unit tests.

Disbursed to Date
$3,188
Proposal
Flutter SDK
Status
Still in progress
Completion Target
3. In the next 6 months
Attachment(s)
Comments 0

Login or Register to leave a comment!

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3 min 24 s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4 min 3 s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3 min 48 s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2 min 16 s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3 min 14 s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3 min 19 s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4 min 59 s
    Darlington Kofa
0:00
/
~0:00