Skip to content

Dart GSoC 2024 Project Ideas

Liam Appelbe edited this page Jan 30, 2024 · 20 revisions

A list of Google Summer of Code project ideas for Dart.

For GSoC related discussions please use the dart-gsoc group.

Potential mentors

Project Application Process

All projects assume familiarity with Dart (and sometimes Flutter). Aspiring applicants are encouraged to learn Dart and try to write some code.

Applicants are welcome to find and fix bugs in Dart or some of the packages written by the Dart team. However, getting reviews can take a long time as code owners may be busy working on new features. So instead of requiring applicants to fix a good first bug, we suggest that applicants write a working code sample relevant for the proposed project.

The code sample can be attached to the application as a secret gist (please use secret gists, and do not share these with other applicants). Suggested ideas below includes proposed "Good Sample Projects".

Do not spend too much energy on this piece of sample code, we just want to see that you can code something relevant -- and that this sample code can run and do something non-trivial. Be aware that we have a limited number of mentors available, and will only be able to accept a few applicants.

Applications can be submitted through the summerofcode.withgoogle.com website. Applicants are encouraged to submit draft proposals, linking to Google Docs with permission for mentors to comment. See also the contributor guide on writing a proposal.

IMPORTANT: Remember to submit final proposals before the April 2nd deadline.

Idea: FFIgenpad

  • Possible Mentor(s): @dcharkes
  • Difficulty: Hard
  • Project size: Large (350 hours)
  • Skills: Dart, Dart FFI, Web

Description: (TODO)

Original idea: https://github.com/dart-lang/sdk/issues/54505#issuecomment-1875349949 (TODO)

Good Sample Project: (TODO)

Idea: Swift/ObjC compatibility tool

  • Possible Mentor(s): @liamappelbe
  • Difficulty: Hard
  • Project size: Large (350 hours)
  • Skills: Swift

Description:

package:ffigen allows Dart to interact with ObjC. Swift modules can be invoked from ObjC (and Dart through ffi), but only if the classes and methods have been annotated with @objc. So if a user wants to interact with a Swift module they don't own from Dart, they need to write a wrapper module that mirrors the API, but has @objc annotations.

It should be possible to write a tool that can automatically generate this ObjC compatibility wrapper. The official Swift parsing library is written in Swift, so the tool should probably also be written in Swift. In fact, the candidate doesn't even really need any Dart experience, just Swift and maybe a little bit of ObjC.

Good Sample Project: Use the Swift parsing library to load a module and print some of its metadata (e.g. print a list of the classes in the module).

Template:

Copy this template.

Idea: ...

  • Possible Mentor(s):
  • Difficulty: Easy / Hard
  • Project size: Small (90) / Medium (175 hours) / Large (350 hours)
  • Skills: ...

Description: ...

Good Sample Project: ...

Clone this wiki locally