Actualización sin cambiar de app: Share Extension "Quick Update" + clipboard auto-advance
El dolor: para actualizar cada source hay que saltar a la app del banco, copiar/ memorizar el valor y volver. iOS no permite ventanas flotantes editables (PiP es solo vídeo), así que se resuelve con las dos vías sancionadas: Share Extension (target nuevo PortfolioJournalQuickUpdate): - Al compartir texto desde CUALQUIER app aparece "Portfolio Journal": mini-form sobre la app anfitriona con el importe pre-parseado del texto compartido y la siguiente source pendiente del mes preseleccionada. Guardar → sigues en el banco. - Sin Core Data en la extensión: la app publica un espejo de sources activas en el App Group (SharedQuickUpdateSync.refreshMirror) y la extensión encola PendingQuickUpdate; la app los convierte en Snapshots reales al activarse (ingestPending). ExtSharedBridge duplica el contrato (keep-in-sync comentado). - Parser de importes tolerante a locales (12.345,67 € / $1,234.56 / 1234,5). - UI localizada en los 7 idiomas (lproj propios de la extensión). - pbxproj: target app-extension completo (sync group, embed, dependency, configs) replicando el patrón del widget. Entitlements solo con App Group. Clipboard auto-advance en Quick Update: - Al volver a la app con un importe copiado: banner de un tap "Pegar X en <source>" que rellena la siguiente source vacía y avanza el foco a la siguiente. - Badge NEXT en la fila activa; no repite sugerencias del mismo clipboard. Script de upload: -allowProvisioningUpdates + API key también en el archive para que el bundle id nuevo de la extensión se registre automáticamente. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015qUZrBusG82T37R7PeokqJ
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
"ext_title" = "Mise à jour rapide";
|
||||
"ext_cancel" = "Annuler";
|
||||
"ext_save" = "Enregistrer";
|
||||
"ext_amount_section" = "Montant";
|
||||
"ext_amount_placeholder" = "0,00";
|
||||
"ext_source_section" = "Source";
|
||||
"ext_already_updated" = "Déjà à jour ce mois-ci";
|
||||
"ext_saved_title" = "Enregistré !";
|
||||
"ext_saved_body" = "Apparaîtra dans Portfolio Journal à la prochaine ouverture.";
|
||||
"ext_no_sources_title" = "Aucune source";
|
||||
"ext_no_sources_body" = "Ouvrez Portfolio Journal une fois pour que vos sources apparaissent ici.";
|
||||
Reference in New Issue
Block a user