• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

T#052 – Creiamo un client Twitter per iPhone (Parte 3)

By Andrea Busi | on 16 Giugno 2010 | 2 Comments
Senza categoria

Logo Twitter Eccoci giunti con l’ultimo appuntamento dei nostri tutorial dedicati alla realizzazione di un semplice client per Twitter. Vi ricordo che trovate qui la prima parte, metre qui la seconda.

In questa terza (ed ultima) parte vedremo come utilizzare la classe NSUserDefault, che ci permetterà di salvare delle informazioni relative alla nostra applicazione. Quello che andremo a salvare sarà la data in cui è stato eseguito l’ultimo refresh, che mostreremo all’avvio all’utente.

Ovviamente questa è una semplificazione, in applicazioni più complesse potremmo avere molte più informazioni da memorizzare (ad esempio dei settaggi come l’autorefresh, il nome utente o la password).

Prenderemo quindi in esame solo il salvataggio di un parametro, ma vedrete che non sarà nulla di difficile!

1. Inseriamo la label per mostrare la data

La prima cosa da fare è inserire una label in cui venga visualizzata l’ultima data in cui è stato eseguito un refresh della nostra timeline.

Nel file “SampleTwitterClientViewController.h” inseriamo la seguente dichiarazione (righe 12 e 24):

#import 
#import "MGTwitterEngine.h"
 
@class Tweet;
@class TabellaTwitterViewController;
 
@interface SampleTwitterClientViewController : UIViewController <MGTwitterEngineDelegate> {
 MGTwitterEngine *twitterEngine;
 NSMutableArray *listaTweet;
 
 IBOutlet UIActivityIndicatorView *spinner;
 IBOutlet UILabel *labelUltimoRefresh;
 
 TabellaTwitterViewController *tabellaTwitterViewController;
}
 
-(NSString*)getMessaggio:(NSDictionary*)element;
-(NSString*)getUser:(NSDictionary*)element;
-(NSURL*)getUrlImage:(NSDictionary*)element;
 
@property (nonatomic, retain) NSMutableArray *listaTweet;
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *spinner;
@property (nonatomic, retain) IBOutlet TabellaTwitterViewController *tabellaTwitterViewController;
@property (nonatomic, retain) IBOutlet UILabel *labelUltimoRefresh;
 
@end

Salviamo il file e apriamo “SampleTwitterClientViewController.xib”, che aprirà IB. Inseriamo una o due label (a vostro piacere), io ho fatto così:


Creare un client twitter per iPhone (parte 3) - 01

La seconda label (quella che contiene il testo “Label”) sarà quella che visualizzerà la data dell’ultimo refresh della timeline. Selezioniamo ora “File’s Owner” e colleghiamo l’elemento “labelUltimoRefresh”, che abbiamo appena definito, con la label in questione. Se avete eseguito il collegamento in maniera corretta avrete il seguente risultato:


Creare un client twitter per iPhone (parte 3) - 02

Abbiamo così completato questo primo step. Possiamo salvare tutto e chiudere Interface Builder.

2. Gestiamo il caricamento/salvataggio dei dati

Ora possiamo occuparci del codice che ci interessa, che andrà inserito nel file “SimpleTwitterClientViewController.m”.

Prima di fare qualsiasi cosa, ricordiamoci di importare la property definita in precedenza, tramite la seguente istruzione (dovete solo aggiungere “labelUltimoRefresh”, le altre le avete già definite):

@synthesize listaTweet, spinner, tabellaTwitterViewController, labelUltimoRefresh;

Possiamo passare alla parte più importante. Vediamo, quindi, come salvare i valori che ci interessano. Come abbiamo già detto, dobbiamo salvare la data dell’ultimo refresh che l’applicazione ha eseguito.

Il punto migliore per eseguire il salvataggio è dopo la creazione della lista con i vari tweet, che avviene nel metodo “statusesReceived: forRequest:”. Ecco, quindi, il codice da inserire in tale metodo:

[spinner stopAnimating];
 
NSData *dataCorrente = [NSDate date];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:dataCorrente forKey:@"data"];
[defaults synchronize];
 
[self presentModalViewController:self.tabellaTwitterViewController animated:YES];

Le istruzioni alle righe 1 e 8 le troviamo già (le abbiamo inserite nei precedenti tutorial), dobbiamo quindi inserire solo le restanti. Alla riga 3 abbiamo istanziato un elemento di tipo NSDate, richiamando poi il metodo “date”, che ci restituisce la data e l’ora corrente. Abbiamo ottenuto, quindi, la data dell’ultimo refresh.
Alla riga 4 e 5 eseguiamo il salvataggio vero e proprio: prima viene istanziato un oggetto di tipo NSUserDefault, poi si salvano al suo interno i valori desiderati. Ci sono vari metodi che devono essere utilizzati per salvare le variabili, a seconda del loro tipo. Nel nostro caso abbiamo utilizzato “setObject”, in quanto NSDate è un oggetto generico. Eccovi altri esempi di metodo per il salvataggio di variabili:

  • [defaults setInteger:5 forKey:@”numeroIntero”];
  • [defaults setBool:YES forKey:@”valoreBooleano”];
  • [defaults setFloat:0.24 forKey:@”numeroFloat”];

Come potete notare ci sono vari metodi, a seconda del tipo di variabile. Li trovate tutti, comunque, nella documentazione.

L’ultima istruzione è alla riga 6, ovvero la chiamata del metodo “synchronize”. Non fateci troppo caso, inseritela. Chi di voi svilupperà applicazioni con multithread o accesso a risorse condivise dovrà sviluppare questo aspetto, per gli altri non è nulla di importante.

Ora non ci resta che inserire il codice che deve occuparsi della lettura del valore salvato. Tale lettura va eseguita, ovviamente, all’avvio dell’applicazione. Nel metodo “viewDidLoad”, quindi, aggiungiamo il codice seguente (dalla riga 14 alla 19):

-(void)viewDidLoad{
 
 // Qui vanno dichiarati username e password per accedere a Twitter
 NSString *username = @"nome_utente";
 NSString *password = @"password";
 
 // Create a TwitterEngine and set our login details.
 twitterEngine = [[MGTwitterEngine alloc] initWithDelegate:self];
 [twitterEngine setUsername:username password:password];
 
 // Get updates from people the authenticated user follows.
 [twitterEngine getFollowedTimelineFor:username since:nil startingAtPage:0];
 
NSDate *dataUltimoAgg = [[NSUserDefaults standardUserDefaults] objectForKey:@"data"];
 if (dataUltimoAgg == nil) {
     labelUltimoRefresh.text = @"nessun refresh precedente";
 }else{
     labelUltimoRefresh.text = [[NSString alloc] initWithFormat:@"%@",dataUltimoAgg];
 }
 
 [spinner startAnimating];
}

Come potete vedere, abbiamo definito un oggetto di tipo NSDate, che dovrà contenere il valore della data che leggeremo dai salvataggi. Per leggere tale valore, utilizziamo un metodo appropriato, nel nostro caso “objectForKey”. Se, invece, avessimo dovuto leggere un numero intero avremmo utilizzato il metodo “integerForKey”. Sono speculari, insomma, a quelli visti per il salvataggio dei dati. Nella documentazione, comunque, trovate tutti i metodi disponibili.
Abbiamo poi eseguito un controllo su tale valore: nel caso l’oggetto sia nullo (quindi non è stato letto niente), vuol dire che l’applicazione è avviata per la prima volta, quindi scriviamo un testo appropriato. In caso contrario, inseriamo nella label la data letta.

Abbiamo concluso anche il salvataggio dei dati!


Creare un client twitter per iPhone (parte 3) - 03

Se avete problemi con il tutorial, questo è il nostro file di progetto.

Con questa terza parte si chiude il tutorial dedicato alla creazione di un semplice client per Twitter. Spero che l’idea vi sia piaciuta, se avete altre idee da proporre, da sviluppare in maniera simile a questa non esitate a contattarci!

Share this story:
  • tweet

Tags: client TwitterNSDateNSUserDefaultsetObjectTutorial Pratici

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Author Description

23 anni, è studente di Ingegneria Informatica presso l’Università di Bergamo (laurea Magistrale). Appassionato d’informatica sin da bambino, conosce molto bene il C++, Java e l'ObjectiveC, con cui ormai programma con successo da qualche anno. Ha già scritto un ebook “Tutorial pratici per iPhone SDK”, che ha avuto un ottimo successo, e gestisce da quasi due anni BubiDevs, un piccolo blog che ha dato l’ispirazione anche a devAPP.

2 Responses to “T#052 – Creiamo un client Twitter per iPhone (Parte 3)”

  1. 29 Giugno 2011

    Installoso Appsinco

    Installo subito westo progetto

  2. 7 Aprile 2013

    DevTutorial #23 – Creiamo il nostro client per Twitter! (Parte 3) - Bubi Devs

    […] Leggi il tutorial completo su devAPP […]

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO