-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Dart GSoC 2020 Project Ideas
A list of Google Summer of Code project ideas for Dart, students are obviously invited to invent additional proposals.
Potential mentors
alan.knight@gmail.com
bkonyi@google.com
dacoharkes@google.com
jonasfj@google.com
redbrogdon@google.com
Remark, dedicated chat rooms and mailinglist will be created later.
-
Possible Mentor(s):
dacoharkes@google.com
- Difficulty: Medium
- Skills: Dart programming skills; C programming skills.
Description:
Write a (Dart) program that generates dart:ffi
bindings from a .h-file.
A possible approach could be to use the FFI to bind to clang.
This would greatly reduce the amount of effort developers using dart:ffi
would have to do. For more info dart-lang/sdk#35843.
-
Possible Mentor(s):
redbrogdon@google.com
- Difficulty: Medium
- Skills: Dart, Flutter coding skills.
Description: One area in which the Flutter samples repo is lacking is automated testing. We've always wanted a sample app set up to demonstrate the proper techniques for testing Flutter apps -- not so much the testing philosophy involved, but the tech that powers Dart and Flutter's testing architecture. This project would involve creating a simple sample application for the repo, and include unit, widget, and integration tests as the real prize.
-
Possible Mentor(s):
redbrogdon@google.com
- Difficulty: Advanced
- Skills: Dart programming skills; C programming skills.
Description: The Flutter samples repo has a few apps that touch on platform channels, but nothing dedicated to the topic. A sample app that showed event channels, method channels, moving structured data, and other related topics would be a welcome addition to the codebase.
-
Possible Mentor(s):
jonasfj@google.com
- Difficulty: Easy to medium
- Skills: Parsing; abstract-syntax-trees; programming skills in Dart or similar language.
Description:
Write a Dart package for programmatically modifying a YAML file while
preserving comments. Figuring out the exact data structure and API for
modification is part of this project, though inspiration may be drawn from
package:yaml. The goal is to use this
for implementing a pub add <package>
command, which modifies the
pubspec.yaml
without throwing away comments.
Stretch goal might be to preserve as much whitespace and YAML style as possible.
-
Possible Mentor(s):
jonasfj@google.com
- Difficulty: Advanced
- Skills: Dart programming skills; reading binary data; man files.
Description:
Write a Dart package for reading tar archives as a stream of objects, similar
to the golang API, and ideally being
able to read the same test cases.
This involves reading man-files,
and figuring out how to represent all objects (or throw them away).
A stretch goal would be to replace the use of native tar
in pub
for reading and writing tar-files. This would naturally include being
able to read all packages on pub.dev.
-
Possible Mentor(s):
jonasfj@google.com
- Difficulty: Medium
- Skills: Dart programming skills; text parsing.
Description:
Write a Dart package for detecting SPDX license from a LICENSE
file following
the SPDX License List Matching Guidelines.
A goal would be properly represent the license of a package on pub.dev with an
SPDX identifier.
Stretch goal might be to handle LICENSE files with multiple licenses and display
an SPDX license expression on pub.dev.
- Possible Mentor(s): ?
- Difficulty: Advanced
- Skills: Dart programming skills; C programming skills
Description: Embed WASM runtime (wasmer.io for example) into the Dart VM to allow running of WASM-compiled module along side Dart code.
## **Idea:** {{title}}
- **Possible Mentor(s)**: `{{email}}`
- **Difficulty**: {{easy | medium | advanced}}
- **Skills**: {{keyword}}; ...
**Description**:
{{description}}
----
Important
The wiki has moved to https://github.com/dart-lang/sdk/tree/main/docs; please don't edit the pages here.