>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Kotlin

Come Costruire il Tuo PDF Powerhouse in Kotlin Senza Inviare Dati al Cloud

Recentemente, avevo bisogno di comprimere rapidamente un documento PDF pesante sul mio smartphone. Ho aperto Google Play, ho digitato nella ricerca, e... mi sono scoraggiato. La maggior parte delle app sono sepolte sotto la pubblicità, richiedono un abbonamento, o — peggio di tutto — inviano i tuoi file a qualche server di terze parti per l'elaborazione. Per documenti con dati personali o report di lavoro, questo semplicemente non è un'opzione.

Su GitHub, mi sono imbattuto nel progetto PDF Toolkit dello sviluppatore Karna14314. È un'utilità completamente offline per Android, scritta in Kotlin e Jetpack Compose. Fa tutto quello che fanno le alternative a pagamento, ma segue un principio privacy-first: niente internet, niente analytics e niente cloud.

PDF Toolkit

Cosa può fare questo coltellino svizzero

L'autore ha inserito praticamente tutte le operazioni di base di cui potresti aver bisogno quando lavori con i documenti nell'app. Se suddividiamo le funzionalità per categoria, otteniamo una lista degna di nota.

Prima di tutto, ci sono le manipolazioni classiche delle pagine. Puoi unire diversi file in uno (Merge) o, al contrario, dividere un documento in parti. C'è un editor visivo dove puoi trascinare le pagine con il dito per cambiarne l'ordine, o semplicemente eliminare quelle che non ti servono. Per i file pesanti, c'è la compressione senza perdita di leggibilità.

Secondo, la conversione. L'app può trasformare le immagini dalla tua galleria in PDF e viceversa — estrae le pagine del documento in formato JPG, PNG o WebP. C'è anche una funzione di scansione integrata: punti la fotocamera, l'app trova da sola i bordi della pagina e crea una scansione ordinata.

Terzo, lavoro sui contenuti e sicurezza. Puoi aggiungere filigrane, impostare password sui file (o rimuoverle se conosci la vecchia) e persino firmare i documenti direttamente sullo schermo. L'OCR — il riconoscimento del testo dalle immagini — merita una menzione speciale.

Interni tecnici

Per gli sviluppatori Android, PDF Toolkit è interessante per la sua architettura. Il progetto è recente, quindi utilizza uno stack moderno:

  • UI: Completamente su Jetpack Compose seguendo le convenzioni di Material Design 3.
  • Architettura: MVVM classico combinato con Clean Architecture. Il codice è organizzato in modo ordinato, la logica di elaborazione PDF è separata dal livello UI.
  • Elaborazione PDF: Usa PdfBox-Android. Questa è una porta della nota libreria Apache che funziona in modo affidabile sotto il cofano del sistema operativo mobile.
  • OCR (Riconoscimento testo): Qui l'autore ha usato una soluzione interessante con i build flavors.

Tre varianti di build sono disponibili nel repository:

  1. Play Store: Usa Google ML Kit per il riconoscimento del testo. Questo rende l'APK più piccolo (circa 40 MB vengono scaricati al primo avvio), ma aggiunge una dipendenza dal servizio proprietario di Google.
  2. F-Droid / Opensource: Queste versioni usano Tesseract (libreria tess-two). Questo è un motore completamente open che funziona al 100% offline. Perfetto per chi vuole la massima indipendenza dal vendor.

Coroutines e Flow sono usate per le attività asincrone e l'archiviazione locale dei dati (come la cronologia delle operazioni) si basa su Room e DataStore.

Perché vale la pena studiarlo

Se scrivi in Kotlin, il progetto è un ottimo esempio di come lavorare con file pesanti e immagini in Android. Nel codice, puoi trovare implementazioni di CameraX per la scansione dei documenti o l'uso di AndroidX Ink per annotazioni e firme.

La gestione delle immagini è implementata in modo interessante. Il progetto usa diverse librerie popolari contemporaneamente: Coil per il caricamento, Glide per compiti specifici e uCrop per ritagliare le immagini prima di inserirle nel PDF.

A chi sarà utile questo progetto

Se stai cercando un'app pronta all'uso per te stesso, PDF Toolkit è uno strumento onesto senza sorprese nascoste. Non chiede l'accesso a internet (il permesso semplicemente non è nel manifest), il che significa che i tuoi file fisicamente non possono lasciare il tuo dispositivo.

Per gli sviluppatori, questo è un template di app pronto all'uso con un'architettura corretta. Puoi fare un fork del repository e aggiungere, per esempio, l'esportazione in altri formati o l'elaborazione di metadati specifici.

Il progetto è attivamente sviluppato, l'autore è aperto alle pull request. L'unica avvertenza: per buildare dal codice sorgente, avrai bisogno di Android Studio Hedgehog o più recente e JDK 17.

Buildare il progetto è semplice:

git clone https://github.com/Karna14314/Pdf_Tools.git
cd Pdf_Tools
# Если нужен полностью открытый вариант без Google-сервисов:
./gradlew assembleOpensourceRelease

Alla fine, abbiamo un solido progetto open source che risolve un vero problema di privacy. In un mondo dove ogni altra app cerca di raccogliere dati su di te, utility come questa sono un respiro di aria fresca.

Progetti correlati