iOS Tutorial 01 : Mencoba fitur accelerometer

Untuk tutorial saya yang pertama ini, mari kita mencoba membuat aplikasi sederhana yang memanfaatkan fitur accelerometer.  Bagaimana jika gerakan device yang terdeteksi oleh sensor accelerometer kita manfaatkan untuk menampilkan warna?  Nantinya warna yang akan ditampilkan tergantung dari posisi device kita🙂

Perlu anda ketahui, accelerometer pada iPhone/iPod dapat mendeteksi dalam 3 sumbu, yaitu sumbu x, sumbu y dan sumbu z seperti pada gambar berikut :

Sumbu x, sumbu y dan sumbu z

Dokumentasi lebih lengkap tentang accelerometer dapat anda baca pada dokumentasi yang disediakan oleh Apple.

Apa hubungan ketiga sumbu dengan warna? Ingat, warna RGB tersusun dari tiga komponen juga, yaitu Red, Green dan Blue.  Objective-C menyediakan class UIColor untuk merepresentasikan warna.  Kita dapat memanfaatkan class ini untuk membuat representasi warna RGB.  Masing-masing nilai R, G dan B akan kita dapatkan dari hasil membaca accelerometer pada sumbu x, sumbu y dan sumbu z.

Berikut adalah contoh pemakaian UIColor untuk membuat sebuah object warna :

[codesyntax lang=”objc”]

UIColor *currentColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];

[/codesyntax]

Perhatikan, untuk menginisialisasi sebuah object UIColor kita membutuhkan 4 parameter, yaitu tingkat warna merah, warna hijau, warna biru dan opacity.  Nilai yang dapat diterima antara 0.0 sampai 1.0.

Kembali ke accelerometer.  Pembacaan accelerometer akan menghasilkan angka -1 sampai 1 untuk semua sumbunya.  Dari sini kita perlu merumuskan kaitan antara angka hasil pembacaan accelerometer dengan tingkat warna yang akan dihasilkan.  Untuk merubah pembacaan accelerometer menjadi angka representasi salah satu komponen warna (misalnya merah) dapat menggunakan rumus berikut :

nilai merah = (nilai sumbu x + 1) /2
nilai hijau = (nilai sumbu y + 1)/2
nilai biru = (nilai sumbu z + 1)/2

Ok, kita sudah merumuskan hubungan antara pembacaan nilai accelerometer dengan nilai-nilai warna.  Mari kita memulai pembuatan programnya.  Pertama kali tentu saja anda perlu membuka XCode.  Buat project baru, pilih View Based Application, lalu simpan dengan nama yColorMove (simpan pada tempat yang anda inginkan).

Pilh View Based Application

Tambahkan delegate event UIAccelerometerDelegate pada deklarasi interface yColorMoveViewController.h.  Hal ini dimaksudkan untuk mendaftarkan aplikasi kita agar mendapatkan notifikasi bila ada nilai pembacaan accelerometer yang baru.  Tambahkan tiga variabel untuk menyimpan hasil pembacaan accelerometer pada setiap sumbu (x, y dan z).  Berikut adalah hasil dari interface yColorMoveViewController.h :

[codesyntax lang=”objc”]

@interface yColorMoveViewController : UIViewController <UIAccelerometerDelegate> {
	UIAccelerationValue xAxis;
	UIAccelerationValue yAxis;
	UIAccelerationValue zAxis;
}

[/codesyntax]

Class untuk mengakses accelerometer adalah class UIAccelerometer, tapi kita tidak dapat membuat instance dari class tersebut.  Yang harus kita lakukan adalah menggunakan static instance sharedAccelerometer yang telah disediakan.  Kita harus menginisialisasi nilai interval update pembacaan accelerometer.  Selain itu kita juga perlu mengeset delegasi method pembacaan nilai accelerometer.  Untuk inisialisasi tersebut harus dilakukan pada method viewDidLoad(), yang artinya akan dijalankan setelah view selesai diload.  Buka file yColorMoveViewController.m, ubah bagian method viewDidLoad() dengan kode berikut:

[codesyntax lang=”objc”]

- (void)viewDidLoad {
    [super viewDidLoad];
	[[UIAccelerometer sharedAccelerometer] setUpdateInterval:0.2];
	[[UIAccelerometer sharedAccelerometer] setDelegate:self];
}

[/codesyntax]

Update interval diset ke 0.2 detik (200 ms). Pembacaan ini akan kita lakukan pada class yColorMoveViewController, sehingga kita set delegasi ke self.  Setelah mengeset delegasi ke self, berarti kita harus melakukan implementasi method accelerometer:didAccelerate.  Berikut adalah method accelerometer:didAccelerate yang harus anda tambahkan pada yColorMoveViewController.m :

[codesyntax lang=”objc”]

- (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
	xAxis = acceleration.x;
	yAxis = acceleration.y;
	zAxis = acceleration.z;

	double red = (xAxis + 1)/2.0;
	double green = (yAxis + 1)/2.0;
	double blue = (zAxis + 1)/2.0;

	UIColor *currentColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
	self.view.backgroundColor = currentColor;
}

[/codesyntax]

Build dan transfer aplikasi ini ke iPhone atau iPod Touch anda untuk mencobanya🙂.  Sampai jumpa pada tutorial berikutnya.

2 thoughts on “iOS Tutorial 01 : Mencoba fitur accelerometer”

  1. mas,mau nanya …kalo misal mau bikin aplikasi di android yang berbasis accelerator ,,,nah ,ntr pas pengetesanya pake emulator di laptop bisa gak ya?putriafebriana@@gmail:disqus .com  makasih

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s