NativeScript / NativeScript/android

[FR] Customize metadata generation to avoid adding unnecessary unused JS wrappers

Aperta
#1,485 6 commenti 5 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

feature optimization
Lingua principale
C++
Stelle
563
Fork
144
Merge medio
10h 46m
PR unite (30g)
14

Descrizione

Is your feature request related to a problem? Please describe.
Currently, the whole Android SDK and all native libraries used in a {N} app are included in the metadata binary files. In order to reduce app size and improve startup performance, we should allow app/plugin developers to specify which entities (e.g. Java packages) need to actually be accessible from JavaScript.

Additional context
Things to consider:

  • This will be a breaking change because every plugin and every app which directly call into native code will need to start stating their native dependencies
  • Multiple such dependency lists coming from all plugins and the app should be merged. Maybe some changes in the CLI will be necessary as well.
  • There should be a way to allow everything to be included (like it's been before this feature)

An idea for UI which helps generate these lists from @shirakaba: Polyfill.io shows one user interface by which one could generate a package by specifying only the libraries that one needs. Maybe something like this could be applied to the NativeScript runtimes: https://polyfill.io/v3/url-builder/

Corresponding feature request in iOS runtime is: https://github.com/NativeScript/ios-runtime/issues/1209

Implemented in {N} CLI with: https://github.com/NativeScript/nativescript-cli/issues/5220

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Non vengono indicati file Android, test o punti di ingresso. Inizia dal issue #5220 di NativeScript CLI collegato e dal corrispondente issue #1209 del runtime iOS, quindi determina in che modo la generazione dei metadati Android dovrebbe utilizzare gli elenchi uniti delle dipendenze dell’app e dei plugin. L’implementazione completata deve includere un modo opt-in per limitare le entità esposte e un modo per preservare il comportamento esistente che include tutto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
android, javascript
Ambito
build-system, mobile-dev
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.