[Bug]: share_plus decodes full-resolution images on the main thread when preparing iOS share previews
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 45/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- flutter, ios
- Domaine
- mobile, performance
Piste de recherche
Start with the iOS side of share_plus and search for every UIImage imageWithContentsOfFile: call, including the placeholder, thumbnail and link-metadata callbacks. Then read the 120 × 120 drawing in the metadata callback that PR #3320 added. Done means preview images are produced without fully decoding and drawing the original on the calling thread, which you can check by sharing a large photo on an iOS device and watching for main-thread stalls.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Plugin: share_plus 13.3.1
Current stable releases: Flutter 3.47.7 and iOS 27.0.1. These are current-release references; the original report’s exact OS and Flutter versions haven’t been confirmed.
Sharing a high-resolution photo can stall the app while the share sheet prepares its preview. We encountered this with a 48 MP image; the hang trace pointed to synchronous image drawing in the share metadata callback.
The placeholder, thumbnail, and link-metadata callbacks load the original image using UIImage imageWithContentsOfFile:. The metadata callback then draws it into a 120 × 120 context. This limits the resulting preview size, but still requires decoding and drawing the full-resolution source on the calling thread.
PR #3320, which addressed #3322, added that resize. The same implementation remains in 13.3.1 and current main.
Proposed solution
One possible approach is to generate small previews with ImageIO downsampling on a background queue. This could avoid decoding and resizing the full-resolution image inside UIKit’s preview callbacks.
- Langage dominant
- Dart
- Étoiles
- 1.9k
- Forks
- 1.3k
- Merge moyen
- 8 h 43 min
- PR mergées (30 j)
- 13
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de fluttercommunity/plus_plugins
-
enhancement triage
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
fluttercommunity/plus_plugins#4004 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: (share_plus) iOS drops the subject when sharing a uriPeut-être pris @kaluli123123 l’a pris il y a 13 jours. Ouvertebug triage
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
fluttercommunity/plus_plugins#3994 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
[Request]: network_info_plus: use ConnectivityManager for getWifiIP and getWifiGatewayIP from Android 7 (N), so ethernet works below Android 12Peut-être pris @redge-munch l’a pris il y a 11 jours. Ouverteenhancement triage
Difficulté 3/5 Une demi-journée Accessibilité débutants 22/100
fluttercommunity/plus_plugins#3998 ·
Les mainteneurs répondent en général sous 1 jour
-
[package_info_plus]: Use Flutter's compile-time build name/number on web instead of version.jsonPeut-être pris @Ortes l’a pris il y a 18 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 25/100
fluttercommunity/plus_plugins#3989 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement triage
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
fluttercommunity/plus_plugins#3976 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de fluttercommunity/plus_plugins
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
jhomlala/betterplayer#1599 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug] Windows:开启 Flutter windowing 后对话框被提升为原生窗口,首个 ShowWindow 死锁导致整个应用卡死(设置 → 远程访问端口 100% 复现)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
AimesSoft/NipaPlay-Reload#1021 ·
Les mainteneurs répondent en général sous 1 jour
-
agent:ready bug P2 · 中 健壮性 区域: 启动与合规 待验证 隐私与合规
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
ASDW51/DanmuFloat#106 ·
Les mainteneurs répondent en général sous 1 jour
-
c: proposal p: go_router package team-ecosystem
Difficulté 2/5 1-3 heures Accessibilité débutants 60/100
flutter/flutter#194542 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement good first issue help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100