in serata verra rilasciata una nuova versione di RSReport con una importante novità.
Per chi non avesse seguito finora le evoluzioni del soggetto, riassumo brevemente le caratteristiche del progetto.
RSReport è una engine per dispositivi iOS in grado di produrre report in formato PDF partendo da un’entità CoreData. La logica di funzionamento è basata sulle bande.
Continue reading »
Buona notte a tutti,
è con piacere che vi comunico che è stato appena rilasciato un nuovo aggiornamento per la libreria RSComponents.
RSComponents è una libreria di componenti e classi da adoperare all’interno dei progetti iOS che offre una serie di integrazioni non disponibili nell’SDK standard. Attualmente si compone di una classe RSDateHelper che integra alcune funzioni di gestione delle date e due componenti dedicati uno all’inserimento di date il cui nome è RSCalendar e l’altro dedicato all’inserimento di numeri denominato RSNumberPad.
Continue reading »
Una delle più importanti rivoluzioni inserite nell’XCode 4.2.x è, unitamente al passaggio quasi obbligato ad LLVM (compilatore alternativo a GCC), l’adozione dell’Active Reference Counting, ARC in breve.
Farò una breve introduzione, semplificata al massimo, per spiegare le basi di questa tecnologia. Quando si sviluppava un’applicazione con XCode in Objective-C ad ogni oggetto allocato venita assegnato un contatore di istanza, ovvero ogni volta che si adoperava un’istanza di quell’oggetto veniva incrementato il contatore del numero di utilizzatori, ogni volta che si smetteva di adoperarla il contatore andava decrementato. Quando il contatore raggiungeva lo zero la memoria veniva liberata.
Per compiere questa operazione di adoperavano principalmente le parole chiave retain e release, per incrementare il contatore si adoperava la prima, per decrementarlo la seconda. Il rilascio della memoria, tramite dealloc, avveniva automaticamente quando il contatore si azzerava.
Questo meccanismo, pur se molto efficiente, introduceva (come per i puntatori in C) il rischio di lasciare reference valide degli oggetti che a lungo andare avrebbero esaurito la memoria disponibile.
Continue reading »
i lavori su RSReport sono ripresi a pieno regime e vedranno nei prossimi giorni una serie di rilasci che ne arricchiscono le funzionalità.
Durante la notte è stata rilasciata una nuova versione Alpha, la 0.2.0a di RSReport con diverse novità vediamole insieme.
Continue reading »
Buongiorno a tutti,
questa notte è stato rilasciato un aggiornamento di RSComponents con l’aggiunta della classe RSDateHelper che, nel tempo, sarà arricchita delle funzionalità necessarie per snellire l’elaborazione, il confronto e l’usabilità delle NSDate all’interno delle applicazioni iOS.
Continue reading »
Buongiorno a tutti,
con oggi inauguriamo lo Store Online di HTMedia, attraverso il sito potrete acquistare prodotti informatici e non.
I prodotti appartengono ad alcune categorie ben specifiche difficilmente reperibili e dedicate principalmente all’interfacciamento con i dispositivi mobile.
Partiamo subito con i lettori BarCode della Koamtac compatibili con i dispositivi mobile della famiglia iOS ed Android.
Continue reading »
Lo sviluppo di applicazioni per il sistema operativo made in Apple è sempre più diffuso e le possibilità di sviluppare applicazioni di successo sono ancora alte.
Quando si affronta lo sviluppo di un’applicazione, però, ci si trova spesso a dover affrontare la necessità di dover svolgere compiti, spesso noiosi o che richiedono molto tempo, che purtroppo non sono stati previsti all’interno dell’SDK.
Ad esempio potrebbe essere necessario inviare un’email dall’interno della propria applicazione, parsare in modo efficace un file JSON (anche se con iOS 5 il parsing di questo formato è stato integrato), dover leggere un RSS feed e tanto altro ancora.
Questi compiti sono spesso ripetitivi e fanno perdere molto tempo nello sviluppo di un’app. Fortunatamente esistono degli sviluppatori che hanno permesso di alleviare una parte di queste fatiche sviluppando codice adatto a questi scopi ed ampiamente riutilizzabile.
Continue reading »
Rispetto alle prime versioni di iOS una delle innovazioni più importanti è stata l’introduzione di CoreData. Esso è un approccio attraverso il quale è possibile creare un sistema di archiviazione complesso di dati all’interno della propria applicazione. Gli argomenti relativi a CoreData sono estremamente complessi e non possono essere esauriti all’interno di un singolo suggerimento, anzi riguardano concetti teorici talmente profondi da meritare di ricevere una piccola pubblicazione.
Una cosa che però salta subito all’occhio è che CoreData pur usando delle strutture simil SQL non è SQL, quindi l’interrogazione di tabelle attraverso JOIN o altri metodi non può essere preso in considerazione. Bisogna seguire le regole imposte dal sistema affinchè tutto funzioni regolarmente. Se non si preferisce adattarsi a queste regole bisogna scrivere il database di sana pianta così come i sistemi di interfacciamento ad esso.
Qualcuno, fino alla versione 5.0 (esclusa) spesso aggirava l’ostacolo iniettando delle istruzioni SQL all’interno del codice. Questo, oltre che una pratica discutibile, è anche molto rischiosa in quanto potrebbe andare in conflitto con i thread di gestione del sistema stesso. Forse anche per prevenire questo (oltre che per incrementare la sicurezza in virtù dell’adozione di iCloud) dalla versione 5.0 del sistema operativo iOS i database creati con CoreData sono criptati, o comunque protetti.
Se è pur vero che CoreData non permette di usare istruzioni in SQL puro, è anche vero che per molte cose semplifica il compito non di poco.
Uno degli aspetti su cui si notano tali semplicificazioni sono le selezioni di entità in base alle date.
Continue reading »
I dispositivi iOS hanno dimostrato che adoperare un cellulare o un tablet per connettersi ad Internet non solo è possibile ma anche utile. Infatti verificando le statistiche di accesso si nota che tali dispositivi sono sempre i primi nell’accesso alla rete.
Anche io, personalmente, annovero i software che si connettono a servizi esterni, tra quelli più usati sui miei dispositivi.
Anzi posso tranquillamente affermare che il 90% degli applicativi da me scritti finora realizzavano una connessione ad internet per inviare e ricevere i dati sotto varie forme. Tali connessioni sono rivolte principalmente alla chiamata di servizi secondo i protocolli più disparati (sia standard che meno), di conseguenza nel codice sorgente mi sono trovato spesso a dover passare farametri di chiamata sia in formato GET che POST appropriatamente elaborati per poter essere trasferiti.
Tale operazione di codifica viene definita, generalmente, URLEncode e consiste nel sostituire determinati caratteri di una stringa nel loro equivalente esadecimale precedendoli con il simbolo di % (per esempio il carattore ‘ ‘, spazio, viene tradotto in %20, ovvero il 32 decimale che nel set di caratteri standard ASCII o UTF8 identifica appunto lo spazio). Tali caratteri verrano poi ricondotti alla loro forma normale direttamente dal webserver che riceverà la chiamata.
Continue reading »
Il nostro lettore Mattia Cardazzi scrive in una sua email:
Salve, ho acquistato il suo libro e lo uso da diverso tempo.
C’è un grosso problema di crash con la guida di pag 108 per inviare un’email dentro l’app.
Il problema è che il metodo funziona su ipad 1, iphone 3gs e 4 con iOS 5 ma crasha cu ipad 2 e iphone 4s con iOS 5.
Ha trovato per caso una soluzione, sa darmi dei consigli.
Grazie molte per l’aiuto.
Innanzitutto ringrazio Mattia per aver acquistato il libro. e gli chiedo scusa se soltanto oggi riesco a postare la risposta alla sua richiesta. Purtroppo diversi intoppi hanno rallentato l’attività del sito e quella mia personale.
Il codice presente sul libro è valido anche per la versione 5 di iOS e funziona correttamente sia con iPad che con iPhone 4S. La differenza fondamentale risiede nel come viene aggiunto il framework MessageUI a quelli adoperati dall’applicazione. Il procedimento corretto è descritto in questo articolo.
Ma onde evitare dubbi ho provato a riscrivere una breve applicazione di esempio che permetta di inviare l’email con la tecnica illustrata. Per far questo però, ho preferito creare un’App Universal e visto che si parla di iOS 5, adoperando anche ARC.
Continue reading »




