flutter/packages/flutter_tools/templates
Kristen McWilliam ea3c3e719e
fix(Linux): specify application id (#154522)
This change sets the program name to the application ID, which helps various
systems like GTK and desktop environments map this running application to its
corresponding .desktop file. This ensures better integration by allowing the
application to be recognized beyond its binary name.

Notably, this is necessary on Wayland to map the running application window to
the desktop file, and therefore apply the correct icon.

I've tested that this works in both GNOME & KDE Wayland sessions.

Partially addresses https://github.com/flutter/flutter/issues/53229

Resolves https://github.com/flutter/flutter/issues/154521

## Icon Association

### Task switcher

The task switcher shows the application's icon in the bottom-middle. Before it only showed a generic Wayland icon.

| Before 	| After 	|
|--------	|-------	|
| ![before1](https://github.com/user-attachments/assets/6f9392f3-c6ff-4ea4-b71b-7186949e2afd) |![after1](https://github.com/user-attachments/assets/e70d394a-a880-42c9-8409-6b975fb59ce1) |

### Window Decorations

KDE shows the application's icon on the window decorations, at the top-left.  Before it only showed a generic Wayland icon.

| Before 	| After 	|
|--------	|-------	|
| ![before2](https://github.com/user-attachments/assets/8076ccf8-79c7-4a60-b12b-2fe1ccf9c393) | ![after2](https://github.com/user-attachments/assets/7a96def2-030c-45c4-9c3f-403256b5da07) |
2024-09-12 20:52:50 +00:00
..
app Switch to more reliable flutter.dev link destinations in the tool (#150587) 2024-06-26 23:30:39 +00:00
app_integration_test/integration_test Switch to more reliable flutter.dev link destinations in the tool (#150587) 2024-06-26 23:30:39 +00:00
app_shared fix(Linux): specify application id (#154522) 2024-09-12 20:52:50 +00:00
app_test_widget/test
cocoapods Set template and migrate apps to iOS 12 minimum (#140823) 2024-01-03 00:47:40 +00:00
module Fix flutter build aar for modules that use a plugin (#154757) 2024-09-10 16:42:22 +00:00
package [tool] Update .gitignore templates to include .flutter-plugins files (#152950) 2024-09-04 20:54:24 +00:00
package_ffi [tool] Update .gitignore templates to include .flutter-plugins files (#152950) 2024-09-04 20:54:24 +00:00
plugin Switch to more reliable flutter.dev link destinations in the tool (#150587) 2024-06-26 23:30:39 +00:00
plugin_cocoapods Add PrivacyInfo.xcprivacy to plugin template (#148485) 2024-05-16 19:58:11 +00:00
plugin_ffi Switch to more reliable flutter.dev link destinations in the tool (#150587) 2024-06-26 23:30:39 +00:00
plugin_shared [tool] Update .gitignore templates to include .flutter-plugins files (#152950) 2024-09-04 20:54:24 +00:00
plugin_swift_package_manager Add PrivacyInfo.xcprivacy to plugin template (#148485) 2024-05-16 19:58:11 +00:00
skeleton Switch to more reliable flutter.dev link destinations in the tool (#150587) 2024-06-26 23:30:39 +00:00
xcode/ios/custom_application_bundle Migrate Xcode projects last version checks to Xcode 15.1 (#140256) 2024-01-03 23:05:46 +00:00
README.md
template_manifest.json Add PrivacyInfo.xcprivacy to plugin template (#148485) 2024-05-16 19:58:11 +00:00

This directory contains templates for flutter create.

The *_shared subdirectories provide files for multiple templates.

  • app_shared for app and skeleton.
  • plugin_shared for (method channel) plugin and plugin_ffi.

For example, there are two app templates: app (the counter app) and skeleton (the more advanced list view/detail view app).

  ┌────────────┐
  │ app_shared │
  └──┬──────┬──┘
     │      │
     │      │
     ▼      ▼
┌─────┐    ┌──────────┐
│ app │    │ skeleton │
└─────┘    └──────────┘

Thanks to app_shared, the templates for app and skeleton can contain only the files that are specific to them alone, and the rest is automatically kept in sync.