LIT-Protocol / LitGrants

Apply for a Lit grant and be part of the Lit ecosystem!
25 stars 2 forks source link

Open Grant: Flutter SDK #41

Open Alqueraf opened 1 year ago

Alqueraf commented 1 year ago

Open Grant Proposal: Flutter SDK

Name of Project: lit-flutter-sdk

Proposal Category: integration-adoption / grants:devtools-libraries

Proposer: @alqueraf at @levin-riegner

Do you agree to open source all work you do on behalf of this grant and dual-license under MIT, APACHE2, or GPL licenses?: Yes

Project Description

Currently the Lit Protocol only provides the Javascript SDK for implementing the Lit functionality. This makes it difficult for mobile apps to integrate the Lit Protocol.

This proposal aims to provide a Flutter SDK implementing the Lit Protocol, following the guidelines described in the Ecosystem RFP.

Value

By providing a Flutter SDK, developers will be able to easily integrate the Lit Protocol into their cross-platform mobile apps and provide a better experience for their users, increasing the overall adoption of the Lit Protocol.

Not having a Flutter SDK, or a faulty implementation of it, will require developers to implement the Lit functionality themselves, increasing the cost and effort of working with the Lit Protocol.

The development of the Flutter SDK will rely on some third-party libraries maintained by the community. Since the Flutter Web3 ecosystem is not as mature as the Javascript ecosystem, this may create some overhead for the Lit Flutter implementation by having to contribute to or even maintain existing community libraries.

Deliverables

Other non-evm compatible blockchains can be considered in the future to reduce the scope of the project.

Development Roadmap

Milestone 1 — Repository and Project Setup

Ensure the repository is set up as an open source project from the start. This includes creating the monorepo structure, contribution rules, formatting and styleguides, workflows, automated tests, environments, multi-chain design, CI/CD, and other language-specific tools.

1 week 1 Technical Flutter Lead $4,000

Milestone 2 — Features and Design

Create a snapshot of the current Javascript SDK and compile a complete list of functionalities that the Flutter SDK will support. Convert these functionalities into user stories for the following milestones.

Modularize the codebase into different packages, and design the architecture of the SDK. This includes defining the interfaces, classes and methods that will be used to implement the Lit Protocol. The packages, classes and public methods of the Flutter SDK will aim to match the Javascript SDK as much as possible, to make it easier for developers to switch between the two SDKs. Api docs will be generated using Dartdoc.

Further updates to the Javascript SDK from the date of the snapshot will become out of scope for this proposal. Further updates to maintain feature parity are discussed in the Maintenance and Upgrade Plans section.

3 days 2 Senior Flutter Engineers $4,000

Milestone 3 — Web3 Implementation

Implement the shared classes and methods for the Web3 integration, including but not limited to identity, signing and the interactions with the Lit Protocol smart contracts. The implementation will be open to support multiple blockchains in subsequent updates. Existing community libraries such as web3dart will be leveraged to implement the Web3 integration.

1.5 weeks 2 Senior Flutter Engineers $7,000

Milestone 4 — Access Control

Implement all methods related to the Access Control functionality of the Lit Protocol. This includes the basic access control features supported by the existing Javascript SDK around standard smart contract interactions and conditions excluding Lit Actions.

2 weeks 2 Senior Flutter Engineers $10,000

Total Budget Requested

Milestone Cost
Milestone 1 $4,000
Milestone 2 $4,000
Milestone 3 $7,000
Milestone 4 $10,000

We request $25,000 to build the Lit Flutter SDK.

Maintenance and Upgrade Plans

The Flutter SDK will enter the maintenance phase 1 month after its public release.

Maintenance tasks for this project will be grouped into 3 categories:

  1. Security updates and Flutter upgrades: monitor for any required updates to the Lit Flutter SDK and incorporate them as patch releases.
  2. Bug fixes and improvements to existing functionality: created via GitHub Issues, these can be raised at any time by internal or external users.
  3. Feature parity with the Javascript SDK: when new features are stable in the JS SDK, design their counterpart to the Flutter SDK and incorporate them.

Contribution guidelines and a CI process will be available and documented as described in the first milestone to ensure that new updates meet the codebase standards and do not cause issues with existing functionality.

A Changelog and release trail will be available to document the change history and tie them to specific releases.

A separate proposal can be created to discuss the scope of an ongoing arrangement to take over the maintenance plan.

Team

Team Members

Alex Queudot is a Senior Software Engineer with more than 10 years of experience in the industry. He has worked on a wide range of projects, from mobile development to smart contracts. He has been involved in the development of multiple Flutter SDKs, and has contributed to various open source projects.

Javier Torrus has been working with the Flutter framework since its 1.0 release, more than 4 years ago. An early adopter of the technology, he has been involved in the development of multiple award-winning Flutter applications, and is an active member of the Flutter community.

Alex Levin has over 12 years of experience working on digital solutions as a product owner and strategist. Alex founded L+R, a design & technology consulting firm in 2012 working for clients such as Warner Bros. Discovery, Hilton Worldwide, AWS, and LVMH. The company has received such accolades as a Red Dot Design award, 3 Webby Awards, and 2 projects featured on Google’s 2023 Flutter Forward keynote. Alex has worked closely with engineers on both Flutter and blockchain projects.

Team Member LinkedIn Profiles

Team Website

https://levinriegner.com/

Relevant Experience

Levin & Riegner LLC is an international design technology studio with expertise covering creative design, mobile software engineering and strategy consulting. Recently celebrating our 10th year anniversary, we have helped big clients such as Google and Amazon as well as many small/medium-sized businesses to bridge the gap between a powerful innovative technology and a great design and usability.

Balancing the need for a great user experience within web3, we have developed a strong expertise in the blockchain space. We have created multiple blockchain-based projects, and partnered with the Avalanche Foundation, to further develop the Avalanche ecosystem.

Focusing on the intersection of design and technology, we collaborate with the Flutter team at Google to help shape the future of the framework. We have developed multiple award-winning Flutter applications, and host workshops and talks to share our knowledge with the community.

Team code repositories

https://github.com/levin-riegner

Some of our more relevant mobile and blockchain repositories are not open sourced but we are happy to provide access upon request.

Additional Information

Blockworks, Grantfarm. alex@levinriegner.com

debbly commented 1 year ago

Hey @Alqueraf ! Thank you for the grant proposal, as much as we'd like to have a flutter SDK, our grants cap out at ~10k USDC.

If you can scope down the proposal to that amount, please update the proposal!

Alqueraf commented 1 year ago

Hey @debbly, do you have insights on what functionalities the potential Flutter SDK users would be most interested in?

We can start with minimal features and allow other community developers to build upon them.

debbly commented 1 year ago

Hey @Alqueraf - our main requests are around access control, one project asking for this is https://orb.ac/

Alqueraf commented 1 year ago

Hey @debbly, thanks for sharing that project, I updated the issue description scoping down the proposal to cover only Access Control within the context of a scalable Flutter SDK. The budget requested still remains higher than the cap you mentioned. However, dropping the remaining milestones would harm the long-term usability of the SDK and provide little value to the Lit Protocol adoption within the Flutter community.

masehdh commented 1 year ago

We would love to switch from web3auth to lit protocol if there's a flutter sdk!