
Nella programmazione Android, capita di dover passare oggetti tra Context diversi come quando da un’Activity ne attiviamo un’altra. Nei casi in cui essi presentano una struttura articolata perchè, ad esempio, sono basati su classi definite da noi, è necessario ricorrere alla serializzazione, procedimento col quale si rende lineare l’architettura interna di un oggetto in modo che sia più idonea al salvataggio e alla trasmissione in rete.
In Android si dispone della serializzazione Java la quale però si dimostra dispendiosa in termini di elaborazione essendo basata sul meccanismo della Reflection. Per questo, ne è stata inventata una forma più efficiente basata sull’interfaccia Parcelable la cui implementazione non risulta sempre comoda. In casi simili, per non rinunciare all’efficienza del parcelling Android, ma neanche alla comodità della serializzazione Java, si può ricorrere a librerie come Parceler che con una semplice annotazione rende Parcellable un oggetto:
@Parcel public class Example { String name; int age; public Example(){ /*Costruttore vuoto obbligatorio*/ } /* ulteriori metodi della classe */ }
L’uso della classe sarà poi immediato permettendo serializzazione:
Parcelable wrapped = Parcels.wrap(new Example("Andy", 42));
e la deserializzazione:
Example example = Parcels.unwrap(wrapped); example.getName(); // Andy example.getAge(); // 42
Se la noiosa implementazione di una classe Parcelable vi aveva fatto ricorrere alla più comoda serializzazione Java, ora è il momento di ricredersi: non rinunciate all’efficienza delle vostre app!
Vi lasciamo con il link alla pagina ufficiale di Parceler.
Alla prossima !
No Responses to “Parceler: serializzazione comoda ed efficiente di oggetti Android”