Saatnya bagi komunitas untuk membangun Blackberry UI framework

Diakui atau tidak, permasalahan tersulit yang dialami programmer Blackberry profesional (maksud saya programmer Blackberry yang bekerja full time coding Blackberry termasuk freelancer, bukan part time) adalah membangun user interface. Tidak ada maksud untuk under-estimate terhadap programmer Blackberry part time, awalnya saya juga part timer.

Pada mulanya saya sendiri sulit mempercayai ketika saya bertanya kepada seorang rekan yang sudah lebih dulu bekerja di perusahaan yang membangun software Blackberry (sebutan ini akibat statement dari pemilik perusahaan yang menyatakan bahwa XXX bukan software house). Pertanyaan saya sederhana saja, “Mas, apa sih masalah tersulit yang mas alami ketika programming Blackberry?”. Jawabannya adalah, “User Interface”. Pada saat itu saya mengharapkan jawaban mengatur multi threading, atau socket programming atau hal-hal yang sulit lainnya. Ternyata jawabannya di luar dugaan, User Interface. Pada waktu itu, bagi saya masalah terbesar adalah bagaimana agar saya bisa konek dengan BIS (karena saya tidak tahu connection suffix yang harus digunakan, :(( ).

Rupanya benar, begitu saya join ke perusahaan tersebut, saya disodori rancangan user interface sebuah aplikasi yang menurut saya gila. Desain ini dibuat oleh desainer profesional (bukan programmer ataupun desain dari client). Jauh dari komponen standar yang dipakai. Meskipun sebelumnya saya sudah relatif lama berkecimpung di J2ME, termasuk Blackberry development, tetap saja rancangan itu terlihat sulit diwujudkan. Sebelumnya, ketika mengerjakan proyek part time saya, saya sudah cukup banyak menggunakan teknik-teknik untuk menggambar background dan rounded border sederhana dengan menggunakan drawImage(), drawBitmap(), fillRoundRect(), dan drawRoundRect(). Tapi rancangan yang disodorkan ke saya tersebut, benar-benar jauh berbeda. Bahkan tidak pernah menggunakan ButtonField standar.

BackgroundFactory dan BorderFactory jelas tidak bisa dipakai karena akan menyebabkan backward incompatibility dengan device-device tempoh doeloe (kita tahu, saat ini masih banyak yang memakai seri 8300 ke bawah).

Dari sini lah saya mulai mencoba meng-extends Field dan Manager, bermain dengan paint(), paintBackground(), layout(), sublayout(), dll. Akibatnya, satu hari habis hanya untuk membuat satu atau dua screen yang sesuai desain. Untuk sistem yang kompleks, pada awalnya saya membutuhkan 2 minggu hanya untuk membangun user interface-nya.

Kemudian muncul ide untuk mengusulkan pembuatan framework untuk memudahkan kita membangun aplikasi. Awalnya ide ini saya usulkan ke boss saya. Usul ini kemudian dengan perdebatan yang tidak begitu sengit, dipatahkan dengan argumen, “Kita nggak punya waktu dan tenaga. Proyek yang lain masih banyak yang menunggu untuk dikerjakan!”. Damn! Benar juga sih, memang masih ada lebih dari 20 project yang belum dikerjakan. Padahal saya pikir, jika ada framework maka development time untuk tiap aplikasi akan berkurang, mungkin hingga satu minggu. Ok, saat itu (hingga saat ini) saya menerima argumen itu, tetapi saya pikir pembuatan framework harus terus berjalan. Akhirnya disepakati bahwa yang akan kami lakukan adalah mengumpulkan komponen-komponen reusable dalam 1 tempat agar bisa dipakai kembali oleh yang membutuhkannya.

Rupanya, hingga kini, strategi semacam ini pun masih belum berhasil. Sebabnya:

  1. Setiap kali projek, client meminta user interface yang benar-benar jauh berbeda dengan projek lainnya
  2. Setiap kali coding satu projek, kami (developer di perusahaan XXX) selalu menemukan cara baru yang lebih canggih, sehingga komponen reusable hampir tidak pernah dipakai kembali
  3. Tidak ada training maupun dokumentasi. Beberapa waktu yang lalu ada seorang developer baru yang bergabung dengan kami. Programmer ini terhitung sudah senior baik sebagai programmer bahasa pemrograman lain, J2EE maupun Blackberry application sendiri. Tapi begitu melihat requirement yang ada, juga pendekatan yang dilakukan oleh saya dan rekan kerja yang berbeda-beda, dia merasa hampir putus asa karena bingung harus mengikuti saya, mengikuti cara B atau cara C. Atau menggunakan caranya sendiri.

Yang saya ceritakan di atas mungkin juga dialami rekan-rekan pembaca. Oleh karenanya, saya mengajak teman-teman untuk menggagas sebuah framework untuk Blackberry Development. Ya, saya sadar bahwa saat ini mungkin ada persaingan antar perusahaan. Tapi saya yakin, hasil dari framework ini akan baik untuk kita semua.

Lalu, seperti apa framework yang saya usulkan? Framework yang saya usulkan adalah seperti Cocoa di iPhone development. Cocoa dibuat berdasarkan Apple Human Interface Guidelines. Jika rekan-rekan amati, tentunya akan melihat keseragaman antara software iPhone yang satu dengan yang lainnya. Itulah yang saya ingin kita (komunitas Blackberry Developer Indonesia) buat.

Jika rekan-rekan berminat, silakan berikan usul, komponen apa yang akan kita buat melalui komentar di post ini. Nanti akan sama-sama kita buat. Saya sendiri mengusulkan untuk memulai dari membuat substitut komponen-komponen standar dari RIM. Kenapa?

  1. EditField yang ada sekarang jelek sekali, tidak ada border, tidak bisa di-set font color-nya, padahal banyak client meminta bentuk seperti itu
  2. ObjectChoiceField tampil jauh berbeda di OS 4.3 dan 4.7 dan 5.0. Sehingga bisa mengacaukan aplikasi yang sudah dibuat.
  3. ButtonField juga serupa.
  4. Dll.

Bagaimana pendapat teman2?

About khalifahkelima
Khalifah Kelima is simply Amri Shodiq

18 Responses to Saatnya bagi komunitas untuk membangun Blackberry UI framework

  1. pandu says:

    setuju… beruntunglah yang projectnya ga minta UI macem2… kemaren aja bikin custom keyword filter field cukup makan waktu (karena mau tampilannya itu beberapa kolom dalam satu baris dan bisa difilter instead cuma satu kolom doang). Kalo para master2 bisa mewujudkan itu kan cukup memudahkan yah🙂

    • Nah begitu deh. Saya rasa temen-temen pasti nemuin masalah yang sama. Saya baru sekali ketemu client yang nggak minta user interface macem-macem. Itu juga orang luar negeri.

  2. manusia biasa says:

    Menurut saya UI framework beserta teknik2nya itu confidential suatu perusahaan. Jd saya rasa jarang sekali yg mau expose. Mungkin termasuk sy juga, krn riset yg dilakukan cukup membuang tenaga, pikiran dan waktu. Sy riset UI hampir 2 thn di BlackBerry. Ini juga merupakan persaingan bisnis🙂

  3. ReverseF says:

    Betul sekali! Susah bikin UI! Soal UI framework, bisa nggak sih kalau kita bikinnya pake LWUIT, kUI atau framework UI untuk J2ME? Biar nggak terlalu “reinvent the wheel” gitu.

    http://www.kobjects.org/kui/index.php
    https://lwuit.dev.java.net/

    *ane masi newbie juga gan. Jadi nggak terlalu ngerti.

  4. manusia biasa says:

    @ReverseF: Menurut saya lebih baik menggunakan API Native BlackBerry supaya hemat resource dan lebih efisien. Tp memang effortnya lebih besar.

  5. @manusia biasa: Sorry agak beda pendapat. Kalau project yang dikerjakan perusahaan memang confidential. I agree. Tapi teknik-teknik seperti itu harusnya nggak rahasia. Justru akan membuat Blackberry industri lebih rame. That’s means more projects. Persaingan bisnis? Ada yang takut bersaing menggunakan jurus yang sama? No offence, tapi that’s not my type.

    @ReferseF: itu kan untuk MIDlet. Kalau di BB-nya bikin MIDlet juga mungkin bisa.

  6. manusia biasa says:

    @khalifahkelima : hmm, jika posisi Anda sebagai dev, itu memang benar tp jika Anda sbg principal atau owner bisa salah langkah. Ingat bisnis itu kejam! Belum tentu semua org didunia ini melakukan bisnis dgn jujur dan fair. RIM sendiri jika ditanya ttg Advance tips dan trik UI mereka enggan untuk expose terang2an. “Ini merupakan kompetisi antar developer jd sengaja kita tidak expose terang2an” itu kira2 pernyataan mereka. Makanya jika Anda liat blog/forum developer RIM banyak yg enggan untuk memberikan solusi.
    Yah…, begitulah latar belakang sy eksplorasi UI sendiri tanpa bantuan siapapun dan punya prinsip agak paranoid. But…, memang hati kecil sy terkadang ingin share apa yg telah sy eksplorasi selama ini, someday I will do it🙂

  7. @manusia biasa: interesting view
    @all: that’s one or two opinion. Ada pendapat lain?

  8. sloekman says:

    Kami mencari: Blackberry Application Developer

    Requirements :
    1. Experience in JAVA Programming (J2ME)
    2. Experience in XML , Web Services
    3. Must be knowledgeable in developing with Blackberry SDK / API
    4. Experience in Microsoft Visual Studio or Eclipse
    5. Project sample are required

    submit Resume with recent Photograph: sloekman@live.com

  9. Untuk lowongan kerja, mungkin ada baiknya dibuatkan post tersendiri saja kali ya.

  10. ibnux says:

    Why not?

    Rezeki sudah diatur yg maha kuasa.

    Mulai dari mana yah ?_?

  11. Kita perlu inventarisasi komponen apa yang paling sering diminta. Kalau saya usul mulai dari:
    – customized button field untuk menggantikan default button field yang ugly
    – bordered and colored edit field (termasuk juga password edit field) untuk menggantikan edit field default yang selalu black and white tanpa border
    – customized list field yang mendukung customizable warna background, warna focus dan image.

  12. Fajar Sylvana says:

    Hallo Para developer BB yg handal. Nama saya Fajar S saya Freelancer Web Designer. tapi saya sering sekali dpt request Job Freelance BB Apps, Andorid Apps dan iPhone apps.
    Biasanya saya hanya mendesign interfacenya saja sisanya saya out source lagi. Disini saya ingin berbagi rezeki dan bekerja sama dgn para developer2 sekalian. kalau berminat tlg emailkan CV-nya ke saya di fajarsylvana@gmail.com dengan subject: Mobile Dev untuk portfolio screenshot blh dicantumkan atau nama Apps blh dicantumkan. Notes: Pekerjaan dari saya adalah Freelance / per Project

    NB : Akan lebih baik apabila anda berdomisili di jakarta. Memudahkan untuk bertemu di meeting nantinya

    Terima Kasih

  13. Saya setuju dengan ide khalifahkelima. Dan sepertinya banyak orang yang mampu membuat ui-framework yang dimaksud, tapi mereka saat ini mengalami kondisi yang sama.. Sibuk terseret arus bisnis.🙂.
    Dan kalo saya boleh ngorek info dikit.. ide bentuk arsitekturnya untuk kebutuhan umum yang mas hadapi sehari-hari seperti apa??
    apakah menyerupai bentuk web page. yang punya css.. atau ada ide lain??

  14. sondang pangaribuan says:

    Bro… Saya visual communication designer profesional… Juga java developer… Aku dukung… Untuk mengembangkan framework ui nya bila butuh desain dan rancangan untuk ui yg flexibel akan saya bantu… Saya beri secara free.. Lepas dari bisnis persaingan dll. Biar indonesia melesat dalam hal teknologi harus jangan pelit… Wong opensourse aja bisa kaya toh…

  15. Amri Shodiq says:

    Thanks Mas Sondang,
    Maaf baru jenguk lagi blog ini, sudah lama nggak jenguk. Berkaitan dengan ini, saya menyadari bahwa gaya developer BB ini masih berbeda2. Tapi gak masalah sebenernya. Kita bisa mulai dari komponen2 yg paling sering dipake, misalnya:
    1. Button
    2. Tab
    3. Header (atau title bar, yg biasa ada di BB app, di bagian atas screen)
    4. Progress bar (yg buat loading di bawah screen)
    5. Background screen

    Ini kalau mas bisa buat PNG contoh-2nya bagus banget. Nanti desainer yg lain juga bakal bisa ngikutin. Jadi gak ada problem nunggu desain karena desainernya belum pernah desain BB app. Saya ngalamin problem ini beberapa waktu yg lalu.

    Coba nanti hari ini saya buat repository-nya dulu di GitHub, lalu nanti saya hubungi Mas Sondang ya. Thanks.

  16. Danang says:

    Saya pikir saya aja yang ngerasa kesulitan dalam hal UI untuk developing Blackberry ehh.. ternyata banyak yang ngerasa gitu tho.. hahaha…

    Iya mas saya setuju, mari kita sama2 membangun Framework UI untuk blackberry ini, jangan sampai kalah sama developer2 luar. Mereka berbondong2 membangun opensource jadi hasilnya bagus2 karena difikir rame2.. Masa kita yang punya prinsip gotong royong malah mikirin diri sendiri…

    Saya siap bergabung di team mas (sekalipun saya sendiri orang baru di BB API hehe…) sudah lama banget saya gak ikut forum indonesia, mudah2an nanti semua anggotanya bisa ngerasa nyaman berfikir dan belajar bareng2 seperti ikut di forum luar. Jangan sampai ketinggalan lagi Indonesiaku….

  17. rois says:

    selamat bekerja, saudara-saudaraku,,!!!

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

%d bloggers like this: