Mengenali iOS Application Lifecycle

Di postingan kali ini kita akan membahas bagaimana aplikasi Hello World di postingan sebelumnya dapat bekerja pada iOS. Jika kita mengikuti postingan sebelumnya harusnya sih begitu mudah membuat aplikasi, saya harap pembaca juga menikmati tutorial ini.

iOS Application Lifecycle

Sebelum kita melanjutkan explorasi iOS SDK, mari kita berhenti sesaat untuk melihat lebih dekat aplikasi Hello World yang telah dibuat sebelumnya. Ini bertujuan untuk mempermudah pemahaman dasar dari bahasa pemograman Swift dan juga bagaimana aplikasi tersebut dapat bekerja pada sistem operasi.

Sejauh ini kita telah mengikuti tahap demi tahap tutorial pembuatan aplikasi Hello World. Mungkin pernah terlintas di benak kita untuk bertanya :

  • Bagaimana View Controller yang ada di Storyboard terhubung dengan class ViewController di swift ?
  • Apakah maksud dari method showMessage() ? Bagaimana method tersebut dapat memberitahu sistem operasi iOS untuk menampilkan pesan Hello World ?
  • Apa arti dari @IBAction ?
  • Apa yang sebenarnya terjadi ketika menekan tombol “Hello World”? Bagaiman bisa tombol tersebut dapat mendeteksi tap gesture dan memberi tahu method showMessage() ?
  • Bagaimana cara kerja tombol Run yang ada di Xcode ? Apa arti dari compile app ?

Disini kita harus fokus untuk meng-explore Environment Xcode, jadi kita tidak akan mencari tahu lebih lanjut pertanyaan diatas. Memang hal tersebut perlu dimengerti oleh setiap developer, seperti bagaimana cara kerja dibelakang code dan konsep pemograman iOS.

Contoh remote tvOk, untuk memperjelasnya mari kita ambil contoh dalam kehidupan nyata. Misalnya sebuah remote TV, remote dapat mengatur volume TV tanpa menggunakan kabel. Untuk mengganti channel kita hanya perlu menekan tombol angka. Untuk menambahkan volume suara kita hanya perlu menekan tombol +.

Tau kah Anda apa yang terjadi di belakang sistem ketika kita menekan tombol pengeras suara atau mengganti Channel? Tentunya tidak. Saya percaya kebanyakan dari kita tidak akan tahu bagaimana itu bekerja.

Nah di contoh ini, tombol berinteraksi dengan kita dalam bentuk karakter yang sudah memiliki interface. Nah interface inilah yang berkomunikasi dengan modul implementasi melalui sebuah pesan.

Konsep ini juga sama dengan dunia pemograman iOS, Dimana User Interface yang ada di storyboard merupakan sebuah interface, sedangkan code adalah modul implementasinya. Elemen dari User Interface seperti tombol nantinya berkomunikasi dengan code melalui sebuah pesan. Nah jika kita kembali ke project Hello World, tombol yang telah kita tambahkan di view adalah interface. Method showMessage() dari class ViewController merupakan implementasinya. Ketika seseorang menekan tombol, hal itu akan mengirimkan pesan showMessage ke ViewController untuk selanjutnya dikerjakan oleh method showMessage().

Nah apa yang telah kita lihat pada gambaran diatas merupakan salah satu konsep penting yang ada didunia Object Oriented Programming atau yang biasa dikenal dengan Enkapsulasi.

 

Behind the Touch

Nah sekarang kita telah mengerti bahwa tombol yang ada di User Interface dapat berkomunikasi dengan code melalui sebuah pesan. Sekarang mari kita lihat apa yang sebenarnya terjadi ketika User menekan tombol “Hello World”?

Bagaimana tombol Hello World memberitahu method showMessage() untuk memulai eksekusi ?

Masih ingatkah Anda bagaimana membuat koneksi antara tombol “Hello World” dengan event showMessage di Interface Builder? Pertama buka Main.storyboard  dan pilih tombol Hello World. Klik icon Connection Inspector yang ada di area Utility. Dibawah nya terdapat bagian Send Event, nah harusnya terdapat sebuah daftar dari event yang tersedia berupa method yang cocok untuk digunakan. Seperti yang terlihat digambar dibawah, event “Touch Up Inside” telah terhubung dengan method showMessage().

Hell World iOS

Di iOS, setiap aplikasi dasarnya terdiri dari event-driven programming. Mau itu object system atau UI object. Nantinya itu akan digunakan di beberapa event untuk menentukan alur dari aplikasi. Untuk sebuah UI object seperti tombol, hal ini memungkinkan untuk penggunaan touch event yang spesifik. Ketika event dipicu, object akan memanggil method sebelumnya yang sejenis dengan event.

Di aplikasi Hello World, ketika user mengangkat jari dari tombol, event “Touch Up Inside” akan bekerja. Dan selanjutnya hal itu akan memanggil method showMessage() untuk menampilkan pessan “Hello World”. Kita nantinya akan lebih sering menggunakan event “Touch Up Inside” dari pada “Touch Down” hal in dikarenakan agar terhindar dari kesalahan sentuhan tombol. Ilustrasi dari penjelasan ini dapat dilihat pada gambar dibawah.

iOS Lifecycle

 

Memahami method showMessage

Mungkin setelah mengikuti beberapa tutorial sebelumnya kita akan sedikit memahami pemograman iOS. Tapi bagaimana dengan metohd showMessage()?

Pertama yang perlu kita cari tahu, apa itu method ? Seperti yang telah disebukan sebelumnya, di beberapa code yang ada di aplikasi ini memiliki hubungan dengan beberapa jenis object. Setiap object memiliki fungsi dan tugasnya (seperti contohnya menampilkan pesan ke layar). Fungsi yang ada di code ini dinamakan method.

Sekarang mari kita lihat lebih dekat tentang method showMessage() tersebut.

method showMessage

Di Swift, untuk mendeklarasikan method di sebuah class kita harus menggunakan func. Kata setelah func meruapakan nama dari method tersebut. Nama ini mengindentifikasi method dan membuatnya menjadi mudah diidentifikasi karena dengan memiliki nama method dapat di panggil kembali di code manapun. Umumnya method menggunakan paramter sebagai inputannya. Parameter tersebut didefinisikan dengan tanda kurung. Nah di contoh project yang sedang kita kerjakan, method yang ada tidak membutuhkan parameter. Karena dalam kasus ini, kita hanya menulis program sederhana.

Oya, ada satu lagi method yang belum kita diskusikan, yaitu @IBAction. Keyword ini memperbolehkan kita untuk menghubungkan source code ke object user interface di Interface Builder. Ketika itu telah di masukkan ke dalam method, maka ini menyatakan bahwa method dapat digunakan di Interface Builder. Inilah kenapa event showMessage akan muncul di pop-over ketiika kita menghubungkan antara tombol Hello World dengan code di pembahasan sebelumnya.

Ok, mungkin cukup disitu kita membicarakan tentang method declaration, selanjutnya kita akan membahas code block. Code block merupakan implementasi yang sebenarnya dari tugas yang dilakukan oleh method. Ketika mengembangkan aplikasi iOS, kita tidak perlu menulis semua fungsi dari awal. Contohnya, kita tidak perlu belajar bagaimana untuk menggambar alert box di layar. Kita bisa menggunakan class yang telah disediakan oleh iOS SDK seperti halnya yang dilakukan oleh framework. Karena di iOS SDK telah memiliki banyak framework yang dapat mempermudah kita selama pengembangan. Contohnya framework UIKit menyediakan class untuk membangun dan mengatur tampilan aplikasi.

Disini kita akan menggunakan UIAlertController untuk membuat pesan Hello World. Object UIAlertController akanmenampilkan alert message ke user. Dibaris pertama dari code membuat object UIAlertController.

Nah setelah kita membuat object UIAlertController, kita panggil method addAction untuk menambahkan action ke dalam peringatan yanga akan di tampilkan di tombol “OK”. Di Swift kita bisa memanggil sebuah method dengan menggunakan syntax dot.

Kita mungkin heran bagaimana kita bisa menemukan method dengan kondisi sedang digunakan dan tidak sedang digunakan didalam sebuah class. Di Xcode, kita bisa menemukannya dengan menekan dan menahan tombol option, arahkan cursor mouse ke nama classnya (contohnya UIAlertController) di code lalu klik. Akan tampil sebuah pop-over yang menjelaskan classnya. Disini kita bisa mendapatkan informasi lebih detail tentang class yang digunakan.

UIAlertController

Setelah object UIAlertController dikonfigurasi, baris terakhir dari code kita adalah menampikan pesan peringatan ke layar.

Di Swift, kita menggunakan property self untuk menujukkan contoh atau object sebelumnya. Untuk menampilkan pesan, kita minta view controller sebelumnya untuk memberikan alertController dalam bentuk animasi.

 

Hubungan Antara Controller dengan Class

Bagaimana Xcode tahu bahwa View Controller yang ada di Interface Builder terhubung dengan class ViewController yang ada di ViewController.swift ?

Mungkin pertanyaan tersebut terlihat sepele, padahal sebenarnya tidak. Masih ingatkah Anda dengan template project yang kita pilih ketika membuat project Xcode ?

Ya, kita menggunakan “Single View Application”. Ketika kita menggunakan template ini, itu akan otomatis membuat view controller di Interface Builder dan membuat file ViewController.swift juga. Dan secara langsung juga itu terhubung dengan class ViewController yang ada di file swift.

Pindah ke storyboard, pilih view controller. Di area utility, pilih icon Identity Inspector dan kita akan menemukan custom class bernama ViewController. Inilah contoh bagaimana object yang di Interface Builder terhubung dengan class yang ada di code Swift.

Interface Builder

Tentang Tombol Run

Topik terakhir yang akan kita bahas adalah tombol Run. Ketika kita mengklik tombol Run, Xcode secara otomatis menjalankan Simulator dan aplikasi kita.

Tapi apa yang sebenarnya terjadi di belakangnya ? Sebagai developer, kita harus mengetahuinya secara lebih detail.

Karena semua proses pengembangan bisa gagal dalam tiga fase berikut :

  • Compile : – Kita mungkin sudah sedikit memahami tentang Swift code. Tapi kenyataanya, iOS hanya akan membaca code mesin. Swift code hanya code yang di tulis dan dibaca oleh developer. Untuk membuat iOS mengerti source code dari aplikasi kita, itu harus melalui proses translasi dari Swift code ke code mesin. Proses inilah yang dinamakan dengan “compile”.
  • Package : – Satu lagi di source code, setiap aplikasi umumnya berisikan file seperti gambar, file teks, file suara, dsb. Semua resource ini nantinya di bungkus untuk membuat aplikasi final. Kita menamakan proses ini dengan proses “build”.
    package
  • Run : – Ini merupakan tahap terakhir dimana Simulator digunakan untuk menjalankan aplikasi yang telah kita kembangkan.

Jadi kesimpulannya persentase kemunculan pesan error saat menekan tombol Run sangat tinggi, karena kemungkinan terjadi masalah saat menerjemahkan code kita kedalam bahasa mesin, atau saat membungkus file file project kita. Well tidak ada program yang benar-benar sempurana, karena program sempurna berawal dari kesalahan.

Well, semoga informasinya bermanfaat guys!! See yaa 😉

Iklan

Good People write good comments ..

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s