Common Fitures When You Build Desktop App

Leave a comment

March 21, 2013 by andez

Saya akan coba menjabarkan hal-hal / fitur (secara garis besar) yang biasa kita kerjakan ketika membangun sebuah software. Dalam hal ini aplikasi yang kita bangun berada dalam lingkungan pc/komputer atau istilah keren nya desktop based. Isi dari post kali ini adalah hasil pemikiran dan hasil pengalaman saya tentunya. Di kemudian hari saya akan coba mengupdate tulisan ini jika ada hal-hal baru yang saya temui atau sedang jalani. 🙂

Berikut fitur-fitur tersebut:

Storage / Persistent

Aplikasi tanpa data adalah bullsh*t. Bahkan aplikasi tidak serius, seperti game, sampai aplikasi yang paling sering kita hindari yaitu virus mempunyai data. Data ini nantinya atau baiknya akan disimpan di sebuah tempat diluar dari aplikasi kita. Tempat penyimpanan yang umum adalah database, file dan sebagainya. Kita bicara penyimpanan secara persistent (tetap), sehingga penyimpanan di memori / non persistent tidak saya sebutkan 🙂

Ukuran data yang disimpan bisa sangat beragam. Bisa simple sampai sangat kompleks level 7 :D, tergantung dari besarnya aplikasi. Aplikasi juga tidak tertutup kemungkinan terkoneksi ke satu storage/database saja. Banyak aplikasi yang terhubung dengan banyak database. Skenario yang umum terjadi adalah saat aplikasi yang kita bangun mempunyai data dengan skala yang besar atau aplikasi kita membutuhkan database lain yang sudah “jadi” atau sudah ada sebelumnya.

Untuk beberapa case, penyimpanan data bisa cukup dilakukan ke dalam file saja. Bisa file teks biasa, xml, file berbasis office (word, excel) sampai file dengn format yang telah kita customize sebelumnya. Contoh yang sering digunakan tentu ke dalam file teks. Contoh yang sering saya lakukan, saya menggunakan file teks untuk menyimpan konfigurasi aplikasi dan isi dari penjelasan dari fitur “help” di aplikasi

Authentication / Login

Aplikasi pada umumnya mempunyai user. Loh jadi ada ya aplikasi yang tidak mempunyai “user”? Tentu ada. Contohnya aplikasi yang berjalan di background (tidak terlihat langsung oleh pengguna), aplikasi sebagai service di Sistem Operasi kita, aplikasi virus/malware dll. Maksud user disini adalah kita sebagai pengguna / manusia (bukan aplikasi/sistem lain) yang nantinya dapat mengoperasikan aplikasi itu sendiri.

Nah biasanya user-user ini akan diberikan autentikasi untuk masuk ke aplikasi kita. Di sini nanti kita akan menjumpai istilah semacam “hak akses”, “user profile”, “user permission”,  dst. Mohon maaf saya tidak menjelaskan istilah-istilah itu karena istilah tsb. tentunya sudah kita semua ketahui 🙂 kemana arah pengertiannya.

Yang kira-kira terjadi bisa sebagai berikut : Administrator bisa melakukan task tertentu, bisa cetak report, bisa melihat isi tabel A, bisa mereset password semua user dsb. User dengan permission tertenu hanya bisa melakukan fungsi view, tidak bisa melakukan proses add/edit/delete data di sebuah tabel dsb. Saat “Guest” masuk ke dalam aplikasi hanya mendapatkan beberapa common fitur dsb. dan sebagainya dan sebagai nya 😀 Tentu ini cuma contoh, hal yang kita buat nanti tentu tergantung dari requirement aplikasi.

CRUD

Sebenarnya semua aplikasi mempunyai fungsi CRUD ini. Apa itu CRUD? CRUD merupakan istilah untuk Create Read Update Delete. Apa yang di-CRUD kan???? Tentu data pada aplikasi kita. Data ini biasanya disimpan secara persist atau di luar aplikasi. Tentu paling umum kita menyimpannya ke dalam database. Without at least these four operations, the software cannot be considered complete. Because these operations are so fundamental. 

Reporting

Hal yang sering kita jumpai juga… Jika aplikasi kita berdasarkan pada proses CRUD di atas, pasti biasanya aplikasi nanti mempunyai fitur reporting. Pada umumnya format report kita adalah PDF (Portable Document Format). PDF menjadi standar untuk dokumen, diperjelas disini SO 32000-1:2008 – Document management — Portable document format — Part 1: PDF 1.7″.

Export / Baklup Data

Hampir sama seperti reporting sih. Intinya kita mencoba menulis ulang data aplikasi kita kedalam format dan struktur yang diinginkan (baca: sesuai requirement). Cuma pada kebanyakan aplikasi data yang kita export atau backup lebih besar ukuran nya dari report. Format file untuk export/backup yang sudah saya pernah kerjakan berupa excel dan cvs.

Background Proses

Ini juga menjadi fitur yang sering kita kerjakan juga. Tergantung bisnis proses sih dan aplikasi yang kita bangun. Tidak semua proses cocok untuk dibuatkan sebagai background process. Biasanya kita memilih melakukan background process berdasarkan pertimbangan berat nya proses, lama eksekusi, proses tsb. memang tidak perlu dibuatkan interface nya, atau pun karena proses kita tidak ingin menggangu proses utama di aplikasi. Contoh : Aplikasi untuk email. Di sini background process akan dijalankan untuk mengecek apa ada email masuk ke account kita misalnya dan jika ada maka tabel inbox kita akan terupdatedengan message baru dst.

Upload / Download File

Kejadian yang paling sering kita temukan : untuk profil image dari user. Ya tentunya kita harus menyiapkan fitur upload image ke aplikasi dong.

Ada lagi seperti ini yang saya temui. Saya tangkap bahwa user pasti meminta hal-hal yang gampang dan customizable. Dari pengalaman, saya mendapatkan case dimana template untuk beberapa laporan, user minta bisa dicustomisasi. Jadi user nantinya dapat mendownload file yang berisi template laporan di aplikasi, melakukan edit semaunyaseperlunya kemudian mengupload kembali file tsb. Disini file untuk template tsb bertipe Microsoft Word (.doc).  Kemudian laporan di aplikasi sudah terupdate format dan struktur nya sesuai yang dikehendaki user.

Read / Send Email

Maksud email disini adalah email yang disediakan oleh beberapa provider email besar dan banyak penggunanya seperti yahoogmailhotmail dll. Untuk java kita bisa menggunakanjava mail api sedangkan di dotnet kita bisa menggunakan Mail Message class

Jadi dari aplikasi kita dapat membaca dan mengirim email menggunakan account yang kita daftarkan sebelumnya.

Animation

Aplikasi kurang sreg kalo ga ada animasinya kan… 😀 Banyak user yang cerewet. Mereka sering minta (misalnya) saat ngeload data dibuatkan animasi mutar2 gtu. Pada saat pindah form, ada efek transisinya. Atau saat aplikasi launch mereka minta dibuatkan splashscreen. Ini salah satu fitur dimana saya kita sering akan mencomot code penyelesaiannya dari tempat lain 😀

Ok, bagi yang belom mari kita siapkan code maupun pengetahuan untuk penyelesaian semua fitur diatas sebagai senjata persiapan kita membangun aplikasi desktop.  Terima kasih.

R.F.

Advertisement

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 )

Facebook photo

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

Connecting to %s

%d bloggers like this: