-
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
Remark, dedicated chat rooms and mailinglist will be created later.
-
Possible Mentor(s):
[email protected]
- 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):
[email protected]
- 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):
[email protected]
- 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):
[email protected]
- 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):
[email protected]
- 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):
[email protected]
- 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):
[email protected]
- Difficulty: Medium
- Skills: Dart, Java / Kotlin, Objective-C / Swift, Flutter programming skills; Android / iOS native development experience
Description: The Flutter repository is lacking any example applications which perform tasks that require background execution. There have been multiple requests for a sample media player application, which would involve building an audio player plugin for both Android and iOS in addition to a UI in Flutter.
## **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.