Promia Jepang | Facebook dan Teknologi Mobile
310
post-template-default,single,single-post,postid-310,single-format-standard,ajax_fade,page_not_loaded,,qode-title-hidden,qode_grid_1300,footer_responsive_adv,qode-content-sidebar-responsive,qode-theme-ver-10.1,wpb-js-composer js-comp-ver-5.0.1,vc_responsive

Facebook dan Teknologi Mobile

Ditulis oleh Riza Alaudin Syah *)

Awal bulan lalu, tepatnya tanggal 7 Mei 2013, penulis berkesempatan mengikuti event yang digelar oleh Facebook di Seoul, Korea selatan. Ya, Facebook… raksasa jejaring sosial dengan 1 milyar pengguna aktif ini mengadakan even untuk para pengembang aplikasi berbasis mobile. Event bertajuk Facebook mobile devcon 2013 ini diselenggarakan di 3 kota secara berurutan, New York (18 April), London (2 Mei) dan Seoul (7 Mei).

Perusahaan besutan Mark Zuckerberg ini menargetkan para pengembang aplikasi mobile  untuk dapat mengenal lebih dekat dengan Facebook Application Programming Interface (API) baik yang berbasis web maupun platform natif (iOS dan Android). Acara ini juga menyediakan sesi untuk para manajer produk yang lebih fokus pada strategi, tips-tips dan success story dari para pengembang yang telah sukses mengintegrasikan facebook API ke dalam mobile apps miliknya.

Pada tulisan kali ini, saya akan lebih fokuskan kepada topic tentang bagaimana aplikasi mobile (iOS dan Android) Facebook dibuat. Sesi ini dipresentasikan oleh Prashant Sridharan dan Bear Douglass (Facebook Developers Advocate).

Sejarah dan transformasi Facebook menjadi Mobile First Company

Seperti yang ketahui bersama, Facebook merupakan Web Company, orientasi utama mereka adalah platform web browser di desktop maupun laptop. Teknologi berbasis web begitu lekat dengan tim Engineering Facebook, sehingga pada awalnya mereke mengembangkan Facebook for mobile mengacu pada teknologi-teknologi berbasis Web seperti HTML5, JavaScript dan sebagainya.

Produk yang dihasilkan saat itu memiliki arsitektur sebagai berikut:

  1. Halaman web yang sudah dikustomisasi untuk layar smartphone
  2. Aplikasi natif hanya sebagai wrapper atau pembungkus aplikasi mobile yang ditampilkan dalam komponen browser pada masing-masing platform
  3. Bergantung penuh pada komponen-komponen integrasi yang telah dikembangkan dan digunakan oleh Facebook (kompone peng-upload foto, browser foto dan lain sebagainya)
  4. Dari arsitektur di atas, keunggulan yang diperoleh di antaranya :
  5. Instant Update (Dapat melakukan pembaharuan secara cepat tanpa harus melalui proses update applikasi natif)
  6. Dapat menerapkan A/B Testing (sebuah metode testing yang biasa diterapkan perusahaan web untuk memperoleh data pemakaian pengguna)
  7. Hanya membutukan 1 kode sumber untuk beragam mobile platform.
  8. Namun, hasil analisa pasca rilis, tim Facebook mendapati berbagai masalah teknis dan respon yang kurang baik dari para pengguna setia mereka. Adapun masalah teknis dari platform HTML yang mereka hasilkan diantaranya :
  9. Sering terjadi permasalahan pada penurunan performance (kurang responsif)
  10. Tidak adanya strategi untuk coherent multithreading (pemrosesan paralel secara koheren) di Web HTML
  11. Sulitnya pengaturan memori yang efisien
  12. Sulitnya melakukan debugging
  13. Keterbatasan efek visual dan animasi

Seiring dengan berkembang pesatnya smartphone dan tuntutan untuk memperbaiki posisi facebook pada pengguna mobile, Tim teknis memutuskan untuk beralih pada platform natif dengan iOS sebagai pijakan pertama. Kurang lebih pada pertengahan tahun 2012, Facebook memperbaharui aplikasi iPhone di Apple apstore sebagai hasil dari perubahan arsitektur dari Web ke natif SDK. Dan hasilnya, sangat sukses dengan indikasi review positif dari media dan naiknya rangking Facebook apps di iTunes app store sampai sempat mencapai nomor 1.

icon-facebook-versi-beta

Jalan berliku dalam proses pembuatan Facebook Apps

Prashant memaparkan, proses pembuatan apps untuk iOS tersebut bukan hal yang mudah untuk Facebook. Dengan latar belakang sebagai Web company, tentunya mayoritas programmernya ahli di ranah Web namun sangat sedikit yang memiliki kemampuan pemrograman di Objective-C (bahasa pemrograman yang dipakai untuk membuat applikasi iOS).

Dalam prosesnya, tim pengembang facebook memutuskan menulis ulang semua kode sumber namun tanpa merubah tampilan yang signifikan. Tim kecil ini (sekitar 12 orang) langsung dipantau oleh Mark Zuckerberg sendiri. Ada cerita menarik yang disampaikan oleh Prashant untuk melukiskan betapa berlikunya proses pembuatan apps ini, Tim kecil tersebut ditempatkan pada sebuah ruangan yang terisolasi dari tim lain dan bekerja secara marathon sampai produk siap dikapalkan tanpa boleh meninggalkan ruangan tersebut!! mereka menyebutnya ‘War room’ . Sebuah totalitas dan etos kerja yang sangat tinggi terbukti menghasilkan produk yang berkualitas.

Strategi rilis dan siklus produksi

Sebelumnya, Facebook menerapkan metode perilisan produk yang mengacu pada fitur dan parameter estimasi waktu. Sebagai contoh, rilis produk X yang memiliki fitur A,B,C dalam waktu sekian bulan. Metode ini merupakan hal yang umum terutama pada perusahaan software yang berorientasi proyek. Namun, metode ini tidak cukup cepat mengakomodir kebutuhan Facebook yang ingin bergerak lebih cepat dibanding para kompetitor.

Mengambil beberapa strategi yang diterapkan oleh Mozilla (beberapa manager Facebook merupakan ex pekerja di Mozilla), Facebook menerapkan strategi Fixed release. Tim ditargetkan untuk rilis dalam waktu kurang lebih 4 minggu, apapun yang terjadi.

Selanjutnya, Bear Douglass menjelaskan mengenai ‘Kill switch’, yang merupakan sebuah cara untuk menonaktifkan fitur yang akan dirilis sehingga apabila ada sesuatu yang dirasa bermasalah.  Bear mencontohkan sebuah fitur pembaharuan untuk tampilan ‘Like Bar’ di iOS App, pada awalnya fitur dirilis tanpa masalah, namun di kemudian hari ditemukan bug yang terkadang membuan tampilan ‘Like Bar’ menjadi kurang rapi. Hal ini diketahui oleh Mark, sang CEO menilai kalau hal ini tidak layak untuk dirilis ke user, segera ‘matikan’ dan perbaiki, kalau sudah siap baru rilis kembali. Dengan adanya mekanisme ‘Kill Switch’, tim dengan mudah menonaktifkan fitur tanpa harus melakukan banyak perubahan.

Proses pengembangan mobile apps dan Tools-tools opensource

Salah satu yang menarik dari sesi ini adalah pemaparan tentang bagaimana proses pembuatan applikasi mobile di Facebook. Facebook juga meng-opensourcekan tools-tools yang mereka pakai dalam pengembangan mobile-apps. Aspek-aspek yang mendasari proses pengembangan software di Facebook diantaranya :

  • Engineer melakukan perubahan di lokal komputer masing-masing
  • Submit perubahan untuk di-review
  • Saat di submit, sistem internal facebook melakukan pengecekan secara otomatis dan melakukan unit testing
  • Tim review memeriksa kualitas kode dan hasil builds
  • Apabila telah lolos review, makan akan di gabungken ke master

Adapun tools-tools yang digunakan oleh tim pengembangan mobile app Facebook diantaranya :

  1. Git source code management (www.github.com)
  2. Phabricator (http://phabricator.org/)
  3. XCtools (https://github.com/facebook/xctool)
  4. Buck (https://github.com/facebook/buck)

Tools-tools di atas tersedia secara gratis dan open-source, XCtools dan Buck merupakan tools internal facebook yang kemudian diunggah source code nya ke repositori publik (github).

Referensi

Artikel ini direview oleh M. Ashari Hadianto

*) Penulis adalah iOS Software Engineer pada Kii Corporation Japan (http://www.kii.com) yang menempuh pendidikan terakhirnya di Politeknik Elektronika Negeri Surabaya (PENS-ITS)

No Comments

Post A Comment