Come utilizzare estensioni SQLite personalizzate in Capacitor
SQLite standard funziona per la maggior parte dei compiti. A volte ne serve di più.
Potresti aver bisogno di un tokenizer personalizzato per lingue specifiche. Potresti aver bisogno di funzioni matematiche personalizzate o di un'elaborazione del testo speciale. Queste vengono chiamate estensioni caricabili (loadable extensions).
Il plugin Capacitor SQLite supporta queste funzionalità su Android e iOS.
Perché utilizzare le estensioni?
- Tokenizer FTS5 personalizzati: controlla come il testo viene suddiviso per la ricerca.
- Funzioni SQL personalizzate: esegui logiche complesse vicino ai tuoi dati.
L'implementazione varia in base alla piattaforma.
Android
SQLite di sistema Android non supporta il caricamento diretto delle estensioni. Devi utilizzare il backend requery.
- Abilita l'opzione
requerynel tuo filevariables.gradle. - Aggiungi il repository JitPack al tuo file
build.gradle. - Compila il tuo codice C in librerie native (file
.so) per ogni architettura CPU. - Posiziona questi file nella cartella
jniLibs. - Usa l'opzione
androidExtensionsquando apri il database.
iOS
Le app iOS non possono caricare librerie dinamiche a runtime. Devi collegare la tua estensione staticamente.
- Aggiungi il tuo file sorgente C al progetto Xcode.
- Imposta il flag del compilatore
-DSQLITE_COREper quel file. - Dichiara la funzione
initnel tuo bridging header. - Registra l'estensione nel tuo
AppDelegateutilizzandosqlite3_auto_extension.
Il codice C per la tua estensione rimane lo stesso. Cambiano solo i passaggi di build e registrazione.
Una volta caricata, la tua estensione personalizzata funziona proprio come una funzione integrata di SQLite. Puoi utilizzare il tuo nuovo tokenizer o la tua nuova funzione nelle tue istruzioni SQL immediatamente.
Le estensioni personalizzate ti offrono la potenza del codice nativo all'interno del tuo database mobile.
Fonte: https://dev.to/capawesome/how-to-use-custom-sqlite-extensions-in-capacitor-l5k