• 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#006 – Numero casuale con accelerometro

By Redazione | on 9 Novembre 2009 | 12 Comments
Senza categoria

t006IS Oggi creeremo un’applicazione che, sfruttando l’accelerometro integrato nell’iPhone, ci permetterà di generare e visualizzare in una UILabel un numero casuale da 0 a 100 ogni volta che il nostro melafonino viene scosso. Apriamo Xcode e creiamo un nuovo progetto. Dalla schermata contenente i template disponibili selezionate “View-based Application”. Diamo un nome al nostro progetto, ad esempio “accelRandom”, scegliamo la posizione dove salvare e proseguiamo. Nel file di interfaccia “accelRandomViewController.h” aggiungiamo il protocollo “UIAccelerometerDelegate” e creiamo un oggetto IBOutlet UILabel che servirà a mostrare a video il numero casuale generato durante l’esecuzione del programma. Il codice dovrà essere come mostrato di seguito:

#import 

@interface accelRandomViewController : UIViewController  {
	IBOutlet UILabel *lblNumeroCasuale;
}

@end

Apriamo quindi il file di implementazione della nostra classe, “accelRandomViewController.m”, e cerchiamo il metodo “viewDidLoad” al momento commentato. Togliamo i caratteri che commentano il codice e modifichiamolo come segue:

- (void)viewDidLoad {
        [super viewDidLoad];
	UIAccelerometer *accelerometro = [UIAccelerometer sharedAccelerometer];
	[accelerometro setDelegate:self];
	[accelerometro setUpdateInterval:(1.0f/10.0f)];
} 

Con queste poche righe di codice creiamo un oggetto di tipo UIAccelerometer, settiamo il suo delegato a self e impostiamo l’intervallo di tempo che passa da una rilevazione della posizione dell’iPhone ad un’altra. Più è frequente questa rilevazione e più saranno precisi i dati catturati dall’accelerometro a discapito di un maggior consumo di risorse del telefono (tipo la batteria).

Aggiungiamo ora il metodo “accelerometer:didAccelerate:” del delegato che si occuperà di rilevare eventuale movimento dell’iPhone e nel caso in cui questo sia maggiore di alcuni parametri che andiamo ad impostare a breve, genererà un numero casuale e lo mostrerà in una UILabel sul display:

- (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{
	int numeroCasuale;
	numeroCasuale = random() % 100 + 1;
	if (acceleration.x > 1.5 || acceleration.y > 1.5 || acceleration.z > 1.5) {
		[lblNumeroCasuale setText:[NSString stringWithFormat:@"%i", numeroCasuale]];
	}
}

Con il costrutto “if” andiamo a verificare se viene rilevato un movimento maggiore di 1.5 in uno dei 3 assi (x, y, e z) disponibili, grazie all’istruzione “acceleration”. Se questo avviene sarà eseguita la porzione di codice dentro il costrutto, nel nostro caso “[lblNumeroCasuale setText:[NSString stringWithFormat:@”%i”, numeroCasuale]];” che mostra il numero casuale precedentemente calcolato tramite la funzione “random() % 100 + 1;” con cui abbiamo settato la variabile di tipo intero (int) “numeroCasuale”.

Se aumentiamo il parametro 1.5 l’utente dovrà muovere in modo più energico il dispositivo affinchè il movimento sia rilevato dall’accelerometro. Al contrario, se lo diminuiamo, basterà un lieve movimento per generare il numero.

Per quanto riguarda il codice è tutto. Apriamo quindi il file “accelRandomViewController.xib” e disegnamo l’interfaccia grafica. Per questo progetto è sufficiente un oggetto UILabel e se volete qualche “abbellimento” inutile ai fini del tutorial, come mostrato in figura:


t006IB

Cliccate su “File’s Owner” e dalla finestra “Connections” collegate l’UILabel appena inserita con “lblNumeroCasuale” creato da Xcode. A questo punto potete salvare e chiudere Interface Builder. Tornate su Xcode e cliccate su “Build and Run” per testare la vostra applicazione. Ovviamente dovrete installare l’applicazione sul vostro dispositivo anzichè su iPhone Simulator in quanto quest’ultimo, come accennato nei precedenti articoli, ha qualche limitazione. Il risultato finale è quello mostrato qui sotto:


t006IS

Video Tutorial

by David Pollak


Parte 1


Parte 2

Share this story:
  • tweet

Tags: accelerometroObjective-cprogrammazionerandomTutorial PraticiXcode

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

Related Posts

  • Microservizi per logiche applicative di grandi dimensioni

    27 Luglio 2016 - 0 Comment
  • Con Xcode 6.3 arriva il Crash Log Organizer

    26 Febbraio 2015 - 0 Comment
  • Xcode-project-generator: uno script per creare velocemente progetti Xcode

    21 Ottobre 2014 - 1 Comment

Author Description

12 Responses to “T#006 – Numero casuale con accelerometro”

  1. 29 Marzo 2010

    Video Tutorial di programmazione iPhone SDK (in italiano) | devAPP

    […] Oggi creeremo un’applicazione che, sfruttando l’accelerometro integrato nell’iPhone, ci permetterà di generare e visualizzare in una UILabel un numero casuale da 0 a 100 ogni volta che il nostro melafonino viene scosso. (visualizza l’articolo completo) […]

  2. 19 Maggio 2010

    AJFTHEWHO

    Si può agitare in “simulatore iPhone” premendo ⌥⌘Z.. se ricordo bene eh.. 🙂

  3. 12 Settembre 2010

    Lorenzo

    come posso generare due numeri che siano diversi fra di loro?

  4. 14 Ottobre 2010

    » devAPP – Tutorial Set #2

    […] (Vai al tutorial completo) […]

  5. 26 Novembre 2010

    Luca

    Salve, complimenti per le guide che sono veramente ben fatte.

    Volevo solo segnalare 2 cose:

    1) Nel file accelRandomViewController.h la label lblNumeroCasuale non viene dichiarata come proprietà:
    …
    @property (nonatomic, retain) IBOutlet UILabel * lblNumeroCasuale;
    …

    2) Nel file “accelRandomViewController.m” la label lblNumeroCasuale non viene sintetizzata e deallocata.
    …
    @synthesize lblNumeroCasuale;
    …
    – (void)dealloc {
    [lblNumeroCasuale dealloc];
    [super dealloc];
    }
    …

  6. 6 Dicembre 2010

    devAPP – Tutorial Set #2 - iPhone Italia – Il blog italiano sull'Apple iPhone 4, iPhone 3GS e 3G

    […] (Vai al tutorial completo) Tags: Dev, DevApp, Rino Picardi, tutorial set devAPP (14 ottobre 2010 11:16) Condividi tweetmeme_style = 'compact'; L'utilizzo del contenuto di questo articolo è soggetto alle condizioni della Licenza Creative Commons. Sono consentite la distribuzione, la riproduzione e la realizzazione di opere derivate per fini non commerciali, purchè venga citata la fonte. […]

  7. 28 Gennaio 2011

    Alex

    Con l’sdk 3.2.5, a differenza dei precedenti esempi sul simulatore 4.2 a me non funziona nè premendo ⌥⌘Z. (menu hardware – Gesto agita) nè aggiungendo il codice indicato sopra. (Non da errori) . A voi, AJFTHEWHO e Luca, si?

  8. 15 Maggio 2011

    MaveDev

    Grazie per il tutorial funziona perfettamente.
    A me non funziona il comando riportato dal precendente utente per simulare lo scuotimento dell’iPhone nel simulatore, pero’ quando installo la app sul device funziona alla grande 🙂

  9. 29 Maggio 2011

    Andrea

    ciao, come posso riconoscere uno shake debole da uno forte e agire di conseguenza?

  10. 11 Gennaio 2012

    Nicola

    Ciao a me la prima parte del video non funziona…..
    io non riesco a fare la “Connections” tra l’UILabel e “lblNumeroCasuale” creato da Xcode…. volevo verificare dal video come lo avevate dichiarato…. perché a me non funziona….

    Grazie

  11. 11 Gennaio 2012

    Nicola

    ma a qualcuno funziona?

  12. 14 Maggio 2012

    luca

    Mi potresti gentilmente dare il download o mi passi via email il programma? GRAZIE MILLE!
    Mi salvi la vita!

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