ton-society / grants-and-bounties

TON Foundation invites talent to imagine and realize projects that have the potential to integrate with the daily lives of users.
https://ton.org/grants
285 stars 129 forks source link

Dart/Flutter SDK for TON #224

Closed novusnota closed 1 year ago

novusnota commented 1 year ago

Summary

The Dart language is primarily used alongside the Flutter framework to build natively compiled, multi-platform applications from a single codebase. And it's best at making cross-platform mobile apps.

The ecosystem around this language can greatly benefit from a dedicated SDK to work with TON Blockchain, as there are many web3 developers who currently only interact with other blockchains for their apps. Developing this SDK will attract more developers to the TON ecosystem, expanding its reach and utility. This proposal outlines a development plan to create a comprehensive Dart/Flutter SDK for TON Blockchain.

Context

At the moment there are no libraries to work with the TON blockchain using Dart/Flutter. To address this problem, the following features are planned to be developed as a part of the footstep:

Goals

Deliverables

Definition of Done

Reward

Total: $3500

Oriental Release Date

I'm ready to work on this and deliver results until 14.05.2023

delovoyhomie commented 1 year ago

@novusnota, Great! Let’s lower the reward to $2,500, because now there are a lot of examples and the work has become not as difficult as it used to be.

novusnota commented 1 year ago

@delovoyhomie sure thing! I've updated the proposal and starting to work on it today.

Also, if at some point there would be any need in additional tutorials on using TON in Dart/Flutter ecosystem, I'm ready to help with those as well 🤗

novusnota commented 1 year ago

Progress update!

Done:

Left to do:

Although there were examples of SDKs in different languages, working with Dart imposed its own challenges of implementation, such that it's own ecosystem didn't have any other examples of interacting with TON Blockchain or Ecosystem at all.

And for this exact reason I'm also making a small video series of concrete and clear tutorials on real-world usage of my Dart/Flutter SDK when building apps relying on TON Ecosystem. They will be published the same day I release this SDK, approximately on 14th of May.

Considering all that, I think the reward should be increased from $2,500 to $3,500. What do you think, @delovoyhomie?

delovoyhomie commented 1 year ago

@novusnota, very good to see that you're making productive progress and keeping us informed, we appreciate that! What do you think, does the Dart language contribute significantly in terms of product scale? We try to support many languages, but we focus on the most popular and, most importantly, frequently used ones: Python, JS, TS. If you believe that Dart will have its future and that it will be necessary for people to use, just like videos, then I am open to your suggestions.

novusnota commented 1 year ago

@delovoyhomie, yes! And the main reason being its most common use-case: the Flutter framework.

At the moment, two most viable solutions for rapid development of cross-platform and performant mobile apps are Flutter and React Native. While the latter provides the means of re-using some of your React.js code and skills, the former gives more streamlined experience out of the box with great attention to native performance. And that may surprise some, but Flutter does actually have ~30k more questions on StackOverflow, compared to React Native: 161k v.s. 131k.

Not only one can create beautiful and useful apps targeting TON ecosystem with Flutter, it also has a mature game engine which integrates smoothly with existing Flutter interfaces, so play-2-earn and any other types of blockchain-related games are also possible. I think all that can help significantly contribute to TON product scale and usage of TON components, such as: Proxy, Payments and Storage.

And as a P. S. I'd mention the very recent (dated May 10th) and much awaited release of Dart 3.0, bringing the sound null safety and much more, making the language, tooling and ecosystem more robust, easy and pleasant to use.

delovoyhomie commented 1 year ago

@novusnota, Alright, let's do this! For the future: please, do not adjust the footstep issue and certainly do not change the size of the reward without my confirmation.

delovoyhomie commented 1 year ago

@novusnota, any updates?

novusnota commented 1 year ago

@delovoyhomie yes! I've done those as well:

And I'm finishing the last couple of things, which are: "Workings with Jettons and NFTs", publishment and extra test coverage (I've already did some).

I was way off in my previous time estimates, but now I'm pretty sure that I'll finish working on this footstep this week and move to #196 :)

novusnota commented 1 year ago

Done with the last feature on the list:

Now I'm wrapping it all up, polishing and publishing the SDK on next Monday-Tuesday (had little to no time this week)

novusnota commented 1 year ago

@delovoyhomie Done! Huge thanks for the patience and sorry for all the delays. Looking forward to see projects built with my SDK :)

Results achieved:

TON wallet address for reward: EQDew1rvHuMmMkmxG_fQahGymzIOF2_9TpgLftMUuxpKLE_u Name for the Hall of Fame: Novus Nota

novusnota commented 1 year ago

Oh, and I also did track the timeline of changes in the CHANGELOG.md — this can serve as a roadmap for aspiring developers of TON libraries in other languages, telling where to start and what to build first, second, etc. :)

P.S.: Two videos (with Dart and Flutter examples) are already uploading to YouTube, but with my connection speed it may take some time.

UPD: @delovoyhomie videos are uploaded! i.e. fully complete :)

novusnota commented 1 year ago

@delovoyhomie Added an extra video on Flutter usage to the playlist. It won't change the remuneration, but I just felt like it would be helpful for people using my library :)

novusnota commented 1 year ago

Hey, wanted to ask: If you've checked the SDK, could I submit it to awesome-ton now?

delovoyhomie commented 1 year ago

Hey, wanted to ask: If you've checked the SDK, could I submit it to awesome-ton now?

@novusnota, sure!

delovoyhomie commented 1 year ago

Rewards sent! Thank you for the contribution.

delovoyhomie commented 1 year ago

Hey, wanted to ask: If you've checked the SDK, could I submit it to awesome-ton now?

Please send a Pull Request to the repository.

novusnota commented 1 year ago

Please send a Pull Request to the repository.

Sure, here it is: PR