Skip to content

Commit 97772dd

Browse files
dcharkesCommit Queue
authored andcommitted
[doc] Update GSoC projects
Change-Id: I7a267c1c8e2405c62f2651bf0fcaba6394a0d0e7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/408180 Reviewed-by: Hossein Yousefi <[email protected]> Commit-Queue: Hossein Yousefi <[email protected]> Auto-Submit: Daco Harkes <[email protected]>
1 parent f2d70ce commit 97772dd

File tree

1 file changed

+27
-22
lines changed

1 file changed

+27
-22
lines changed

docs/gsoc/Dart-GSoC-2025-Project-Ideas.md

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ For GSoC related discussions please use the [dart-gsoc group](https://groups.goo
1212
* Daco Harkes ([dcharkes](https://github.com/dcharkes)) `[email protected]`
1313
* Hossein Yousefi ([HosseinYousefi](https://github.com/HosseinYousefi)) `[email protected]`
1414
* Liam Appelbe ([liamappelbe](https://github.com/liamappelbe)) `[email protected]`
15+
* Huan Lin ([hellohuanlin](https://github.com/hellohuanlin)) `[email protected]`
16+
* Justin McCandless ([justinmc](https://github.com/justinmc)) `[email protected]`
1517
* More to come!
1618

1719
## Project Application Process
@@ -57,28 +59,6 @@ Try to generalize these test cases to avoid repetitive code, see the existing [T
5759
**Expected outcome**: PRs that land in `package:webcrypto` and increases our confidence in correctness cross-platforms.
5860

5961

60-
## **Idea:** Pigeon generating FFI/JNI code
61-
62-
- **Possible Mentor(s)**: `[email protected]`
63-
- **Difficulty**: Hard
64-
- **Project size**: Large (350 hours)
65-
- **Skills**: Dart, FFI, Java
66-
67-
**Description**: Modify the existing pigeon tool to use dart:ffi through ffigen, jnigen, and swiftgen instead of method channels.
68-
69-
Pigeon should continue to generate interfaces for all languages which the user would have to implement. However, instead of generating method channels for the methods, it will use direct native interop using jnigen, ffigen, and swiftgen tools.
70-
71-
The generation tools should also be slightly modified to generate pigeon compatible bindings, for example data structures and strings should be deeply serialized to Dart data structures and strings similar to how pigeon generates the binding code.
72-
73-
The new version of pigeon can be used as a drop-in replacement without any major work to update all the plugins already using pigeon to use direct native interop.
74-
75-
**Good Sample Project**:
76-
* Take the example from pigeon: https://github.com/flutter/packages/tree/main/packages/pigeon/example .
77-
* Convert one of its platforms to ffigen/jnigen, for example convert Android to use jnigen instead of the default method channels.
78-
79-
**Expected outcome**: A new backend for Pigeon.
80-
81-
8262
## **Idea:** Use an LLM to translate Java/Kotlin tutorial snippets into Dart JNIgen code
8363

8464
- **Possible Mentor(s)**: `[email protected]`, `[email protected]`
@@ -117,6 +97,31 @@ Inspired by this issue: https://github.com/dart-lang/native/issues/1240
11797
**Expected outcome**: A package on pub.dev for increasing test coverage.
11898

11999

100+
## **Idea:** Secure Paste Custom Actions on iOS
101+
102+
- **Possible Mentor(s)**: `[email protected]`, `[email protected]`
103+
- **Difficulty**: Medium
104+
- **Project size**: Medium (175 hours)
105+
- **Skills**: Dart, Objective-C
106+
107+
**Description**: Support custom action items for native edit menu on iOS. It's a pretty impactful project requested by many developers (main issue here: https://github.com/flutter/flutter/issues/103163). This project is one of the key milestones: https://github.com/flutter/flutter/issues/140184.
108+
109+
Project:
110+
* Prepare: Learn basic git commands; Setup flutter engine dev environment; Read style guide, etc;
111+
* Design new dart API for custom items in context menu (Related API: https://api.flutter.dev/flutter/widgets/SystemContextMenu-class.html)
112+
* Design engine <-> framework communication API using method channel
113+
* Implement both framework part (in Dart) and engine part (in Objective-C)
114+
* Go through code review process and land the solution
115+
* The final product should allow developers to add custom items to the iOS native edit menu.
116+
117+
**Good Sample Project**: ...
118+
119+
* Build a sample project in Flutter with a text field that shows custom actions in the context menu. (Hint: use https://docs.flutter.dev/release/breaking-changes/context-menus).
120+
* Build a sample project in UIKit that shows custom actions in the native edit menu (Hint: use https://developer.apple.com/documentation/uikit/uieditmenuinteraction?language=objc). You can either use ObjC or Swift, but ObjC is preferred.
121+
122+
**Expected outcome**: A PR merged in Flutter
123+
124+
120125
## TODO: More ideas as they come!
121126

122127
# Template:

0 commit comments

Comments
 (0)