Come accennato nel suggerimento precedente i dispositivi iOS permettono una piena integrazione con i servizi di comunicazione verso il mondo esterno. I servizi privilegiati sono, ovviamente quelli che passano attraverso la rete di Internet.
Esiste, però, un’altra categoria di servizi che comunica con il mondo esterno, quelli relativi alla telefonia. Purtroppo tali servizi non funzionano sugli iPod Touch e, almeno sulla versione attuale, sugli iPad, ma sono utilissimi da integrare all’interno delle proprie applicazioni sugli iPhone. Ovviamente con l’arrivo di iOS 5 e di iMessage le cose sono cambiate anche se questo sistema funziona solo tra dispositivi iOS.
Lo stato di implementazione attuale dei servizi di telefonia all’interno di iOS è un pò più limitato, ma i passi compiuti in avanti in relazione alla loro implementazione sono notevoli.
Continue reading »
I device Android presenti sul mercato sono molti e sono sempre più in crescita, sia come tipologia che come quantità.
Molto spesso le applicazioni che si andranno a sviluppare richiedono una connessione bidirezionale, con server esterni (o magari con altri device). Spesso poi questa comunicazione è bidirezionale. Come fare quindi a identificare qual’è il device che si sta collegando in quel momento in modo da effettuare alcune operazioni come ad esempio l’aggiornamento di stato?
Il primo pensiero corre all’IMEI, purtroppo tale soluzione non è sempre percorribile. Sono molti di dispositivi che non hanno connettività 3G e, di conseguenza, sono anche privi del codice IMEI. Fortunatamente ogni dispositivo ha un proprio numero identificativo univoco che può essere adoperato per un’eventuale identificazione.
Continue reading »
In attesa di proseguire con il corso per lo sviluppo di videogames per il quale sto impostando tutta la parte grafica, riprendiamo con le tips, oggi dedicate alle applicazioni Android. L’argomento è la creazione di un Option Menu all’interno della propria applicazione.
L’Option Menu è quello che compare nel momento in cui si preme il pulsante menu sul dispositivo Android. Esso ha la caratteristica di poter essere contestuale all’Activity in quel momento in esecuzione, ma permette di accedere anceh a funzioni non strettamente legate al normale workflow dell’applicazione stessa.
Esso può essere adoperato per accedere alle activity che si occupano della configurazione dell’applicazione o forniscono i credits della stessa.
Il vantaggio è indubbio in quanto non è necessario rinunciare a porzioni di schermo per accedere a queste funzioni poichè il menu è a scomparsa, inoltre la selezione di alcune voci può essere adoperata come un switch (attivo disattivo).
Gli Option Menu possono permettere l’accesso a dei sottomenu ramificando ulteriormente le funzioni. La loro creazione è gestione è relativamente facile, come quasi tutto in Android, di seguito vedremo come procedere.
Continue reading »
In questo post vedremo come è possibile disegnare linee tratteggiate adoperando CoreGraphics.
Iniziamo con un pò di teoria spicciola parlando di CoreGraphics, quest’ultimo è il framework che si occupa di disegnare all’interno delle nostre view esso è in piena compatibilità con il linguaggio C, il che implica due fattori principali:
- Lo stile di chiamata di funzione è nomefunzione(tipo var1, tipo var2, …)
- L’allocazione e deallocazione delle risorse è sempre e comunque a nostro carico (niente autorelease)
Essendo scritto in C non prevede classi ma il classico paradigma procedurale.
Continue reading »
I timer costituiscono un elemento importantissimo nello sviluppo delle applicazioni di media o alta complessità. La possibilità di eseguire operazioni temporizzate è molto importante ad esempio per riallinerare i dati contenuti nell’applicazione o verificare se su un server remoto sono presenti dei dati aggiornati. In realtà con la programmazione ad eventi i timer hanno occupato un importanza minore rispetto a quella che avevano un tempo.
Prima, infatti, il metodo adoperato principalmente dalle applicazioni era quello definito come Polling, ovvero ciclicamente l’applicazione controllava se erano disponibili informazioni da elaborare (tasti premuti, orientamento del device, dati disponibili in rete) e quindi provvedeva a scodarle ed elaborarle.
Questo metodo permetteva di verificare a cicli fissi le informazioni e quindi in modo deterministico, di contro, però, si rischiava di avere un insieme di informazioni da elaborare che erano parcheggiate per un tempo relativamente lungo, con il rischio che, in caso di informazioni complesse o urgenti, queste venissero elaborate in ritardo o che a causa della loro complessità ritardassero l’avvio del ciclo temporizzato successivo.
Oggi invece la struttura delle applicazioni è ad eventi, ovvero le elaborazioni sono elaborate non appena disponibili, spesso in modo asincrono, in questo modo l’applicazione non ha cicli morti e può girare in un ambito multitasking rilasciando il controllo al sistema operativo fino a riprenderlo non appena una nuova informazione è disponibile.
Ci sono cose, però, che la programmazione ad eventi non permette, difatti non è possibile programmare l’accadere di un evento ci si può limitare esclusivamente ad elaborarlo quando esso accade, quindi, quando è necessario che l’attività venga svolta in un determinato momento, si ricorre ai timer.
Continue reading »
Continue reading »
I dispositivi mobile hanno raggiunto uno stato evolutivo estremamente avanzato, al punto di essere scelti al posto di player portatili di DVD o, in alcuni casi, TV portatili.
Se a questo aggiungiamo l’uso nel mondo dei videogames di tali dispositivi, emerge chiaramente la necessità di poter effettuare il play di suoni e video dall’interno di una propria applicazione.
Il S.O. Android permette di eseguire tali contenuti sfruttando diversi canali, sia precaricandoli in memoria, sia in streaming (scelta consigliata se si devono visualizzare contenuti di grandi dimensioni o presenti su siti web esterni).
I formati supportati sono molti ed un loro elenco è disponibile a questo link.
Una delle caratteristiche delle applicazioni per i dispositivi iOS è quella di poter adattare la visualizzazione delle View in base all’orientamento del dispositivo. A volte, però, si è costretti a progettare le applicazioni in modo che supportino solo uno degli orientamenti disponibili.
I dispositivi iOS supportano una visualizzazione per ogni lato per cui il dispositivo è appoggiato, in teoria, pertanto, è possibile creare view apposite per ogni lato. Nella realtà, fondamentalmente, i tipi di orientamento sono essenzialmente due e prendono il nome dalle controparti fotografiche, anche se in inglese, esse sono Portrait e Landscape.
Continue reading »
Si spera sempre di non dover mai scrivere su questi argomenti, non solo per la tristezza che portano nel riportare una brutta notizia, ma anche perchè la persona a cui si fa riferimento è una vera e propria icona del proprio mondo.
Purtroppo durante la notte si è spento Steve Jobs, una delle persone che ha rivoluzionato il mondo dell’informatica di consumo e che ha contribuito a far entrare la microelettronica nelle nostre vite.
Da parte mia posso solo dire una cosa, riportando un episodio di quando ero a scuola. Ero in terza superiore, era il 1988, durante l’ora di italiano la nostra professoressa ci affibia un piccolo tema in classe dal titolo (più o meno): “Qual’è la figura storica, politica o culturale a cui vorresti somigliare?”, provai un grande imbarazzo nello scrivere quel tema, perchè, sinceramente, non avevo mai sentito la necessità di somigliare a qualcuno o a cui ispirarmi. Completai il tema in un buon italiano, ma dal contenuto pessimo (d’altronde la traccia partiva dall’assunto che ci si dovesse necessariamente ispirare a qualcuno).
Oggi, a distanza di tanti anni, saprei a chi dedicare quel tema.
Grazie per aver aperto la via Mr. Steve Jobs.
Roberto S.



