Berdiskusi Tentang Praktik Terbaik Dalam Mengembangkan Sebuah Platform Bersama START Summit Extension

0
561

Pada START Summit Extension kali ini, tim engineer Tokopedia mengajak para pegiat teknologi untuk berdiskusi dan mempelajari lebih dalam tentang pengembangan sebuah platform. Dengan mengangkat tema Tokopedia Front-End Journey: Democratizing Commerce through Web & Native Platform, acara yang diadakan setiap bulannya dengan mengangkat berbagai macam topik menarik seputar perkembangan teknologi ini menghadirkan empat orang pembicara yang merupakan pakar di bidang masing-masing. 

Seperti yang kita ketahui, mobilitas di era serba praktis ini telah menjadi faktor penting dalam setiap lini kehidupan. Dengan bantuan teknologi, kita dapat dengan mudahnya mengakses apapun, dimanapun dan kapanpun tanpa adanya batasan ruang dan waktu. Oleh karena itu, Tokopedia sebagai perusahaan teknologi yang selalu berevolusi untuk dapat terus meningkatkan dan menjawab setiap kebutuhan pengguna tentunya harus berkembang tidak hanya dalam bentuk website, namun juga aplikasi mobile baik untuk iOS maupun Android. 

Melalui START Summit Extension yang disaksikan oleh lebih dari 12,000 penonton melalui Tokopedia Play pada 20 Oktober 2020, tim iOS dan Web Platform Tokopedia membawakan presentasi yang dibagi ke dalam dua sesi, yakni iOS UI Development at Scale dan Unlocking New Capabilities for The Web. Lantas, praktik apa saja yang dibagikan oleh para expert Tokopedia? Simak rangkumannya berikut ini!

Pada awal sesi presentasi START Summit Extension edisi Oktober, terdapat dua Nakama yang merupakan tim iOS Tokopedia. Samuel Edwin sebagai Technical Architect – iOS Tokopedia membagikan praktik dan pengalamannya soal membangun iOS dari sisi UI atau User Interface, dimana untuk mendevelop UI, samuel memulainya dengan penjelasan dari sudut pandang teknikal, yaitu penggunaan UIKit dan Auto Layout.

iOS UI Development at Scale

Samuel membagikan pengalamannya dalam menggunakan Auto Layout, dimana Samuel tidak merekomendasikan untuk menggunakan UIStackView berlebihan pada layout yang sangat kompleks. Hal ini dapat berpengaruh terhadap mobile phone yang memiliki spesifikasi lama. Selanjutnya, masalah lain dari penggunaan Auto Layout adalah perubahan versi OS yang tidak terduga, dimana Auto Layout memiliki perbedaan implementasi  di setiap versi iOS dan penggunaan UICollectionViewCell yang kerap sulit diatur tingginya pada sebuah halaman. 

Berdasarkan pengalamannya menggunakan Auto Layout, Samuel lantas membagikan solusi yang digunakan oleh tim Tokopedia, yakni dengan mengadopsi Texture. Texture merupakan kerangka yang menggunakan UIKit, namun tidak menggunakan Auto Layout dan developmentnya menggunakan full coding. Lalu, seberapa andalkah kerangka ini? 

Jika sebelumnya kebanyakan developer menggunakan UIView, dengan kerangka Texture tim iOS Tokopedia menggunakan ASDisplayNode yang dapat mudah digunakan. Pada ASDisplayNode, komponen-komponen yang dibutuhkan sudah tersedia, baik itu untuk menampilkan gambar, button, scrollview, ataupun text field, sehingga semua item sudah memiliki pengganti masing-masing dari yang tersedia pada UIKit. 

Layout pada Texture tidak menggunakan Auto Layout, melainkan Flexbox, dimana ini digunakan untuk Web development. Secara performa, dengan menggunakan Texture, tampilan UI menjadi jauh lebih smooth, terlebih ketika pengguna melakukan scrolling halaman. Tinggi cell pun juga akan menyesuaikan layout, dimana ketika layoutnya sudah benar, maka tinggi cell akan mengikuti. 

Jika sesi pertama membahas seputar sudut pandang dari sisi teknis, maka sesi berikutnya akan dilanjutkan dengan membahas dari sudut pandang manusianya atau tim yang berada dibalik iOS. Tiara Freddy Andika selaku Principal Engineer – iOS menjelaskan bahwa Tokopedia mengadaptasi struktur organisasi tribe, dimana tribe ini terdiri dari lebih dari 20 anggota tim dengan fokus yang berbeda-beda. Setiap tribe memiliki UI Designer dan Developer masing-masing, sehingga tidak menutup kemungkinan adanya perspektif desain app yang berbeda yang kemudian berpengaruh terhadap alur pengembangan suatu fitur. 

Untuk mengatasi itu, tim iOS membuat suatu kerangka yang bernama SharedUI, dimana ini adalah suatu kerangka yang dibuat dengan menggunakan Texture untuk menyediakan UI komponen untuk setiap aplikasi iOS Tokopedia. SharedUI dibuat dengan beberapa cara, yaitu dengan mengidentifikasi komponen berdasarkan penggunaan, behaviour, anatomi, dan penempatannya. 

Proses pembuatan komponen SharedUI sendiri dibagi ke dalam beberapa tahap, yaitu:

  1. Pengumpulan kebutuhan komponen dari setiap UI designer pada setiap tribe yang dilakukan oleh Tim Core Design
  2. Pembuatan komponen spesifikasi oleh tim Core Design, sambil berdiskusi dengan tim iOS Core mengenai kemungkinan yang terjadi dari spesifikasi yang dibuat
  3. Pengembangan komponen yang memudahkan developer dalam mengembangkan sebuah fitur yang dilakukan oleh UX engineer.

Dipaparkan lebih lanjut oleh Tiara, SharedUI membagi desain sistem ke dalam tiga bagian yaitu color, typography, dan component. Color yang digunakan pada aplikasi ditentukan melalui Color Token, dimana saat ini aplikasi Tokopedia telah mendukung dark mode, sehingga semua warna akan ditentukan ke dalam dua versi yaitu light dan dark. Hal ini memudahkan developer agar tidak perlu menggunakan beberapa Color Token untuk dua mode tampilan.

Selanjutnya untuk typography, developer dapat dengan mudah membuat suatu teks dengan hanya melihat tipe tipografinya saja, serta dapat pula menentukan warna serta format dari setiap tulisan. 


Bagian terakhir yaitu component, tim Core Design telah membuat spesifikasi komponen seperti component toaster yang digunakan untuk memberi feedback secara instan kepada pengguna setelah melakukan action tertentu. Feedback tersebut dapat berupa pesan positif ataupun pesan negatif, tergantung pada action yang dilakukan oleh pengguna agar pengguna mengetahui dampak  dari action yang dilakukannya, serta mengetahui apa yang harus dilakukan selanjutnya.

Setelah membahas seputar spesifikasi, Design System component juga dibagi berdasarkan fungsinya, yaitu Base Component, Actions, Navigation, User Guide/ Information Display, serta User Input. Hal terakhir yang dibagikan oleh Tiara adalah soal keuntungan menggunakan kerangka SharedUI. Keuntungan yang pertama adalah dari segi kecepatan pengembangan yang akan jauh lebih cepat, dan yang kedua adalah dari sisi user experience yang konsisten pada setiap halaman aplikasi. 

Unlocking New Capabilities for the Web

Selanjutnya sesi ke dua akan membahas tentang kemampuan baru yang dapat diimplementasikan di Web, dan bagaimana tim Web Platform mengadopsinya. Sesi ini dibuka oleh pemaparan dari Dendi Sunardi, yang merupakan Engineering Manager Web Platform Tokopedia. 

Dendi menuturkan bahwa di industri e-commerce, Web merupakan hal yang penting, karena sebanyak 35% pengguna menghabiskan waktunya di platform Web, baik itu mobile web atau desktop web. Apabila dibandingkan dengan Apps, sebanyak 51% pengguna tidak mengunduh aplikasi setiap bulannya, sehingga dari sini kita bisa melihat bahwa peluang web untuk berkembang masih sangat terbuka lebar. 

Yang kedua adalah soal tantangan e-commerce yang memiliki tiga hal utama, yaitu Acquisition, Conversion, dan Retention. Peran Web yang paling besar terdapat pada Acquisition, yaitu bagaimana kita mendapatkan user-user baru, mengingat Web memiliki kemampuan aksesibilitas yang lebih tinggi dan universal jika dibandingkan dengan platform lainnya. 

Ketiga adalah fakta bahwa Tokopedia mencintai web. Lebih lanjut, Dendi menjabarkan beberapa alasan mengapa Tokopedia sangat serius dalam membangun sebuah Web. Beberapa diantaranya adalah karena adanya kemudahan dalam mendistribusikan aplikasi, kemudahan akses untuk dari device apapun, ataupun kemampuan untuk selalu up to date ketika suatu fitur baru dirilis, yang memungkinkan para pengguna Tokopedia untuk langsung menikmatinya saat itu juga. Selain itu, Web juga memiliki tautan yang sangat mudah untuk dibagikan oleh pengguna, serta sifatnya yang universal. 

Lantas, Bagaimana tim Web Platform Tokopedia dapat meningkatkan kemampuan Web atau Web capability? Penjelasan berikut ini dipaparkan oleh Irfan Maulana selaku Principal Engineer Web Platform. Di Tokopedia sendiri, sudah banyak mengimplementasikan Web capabilities, yang pertama adalah service worker yang merupakan ‘tulang punggung’ bagi Web Tokopedia untuk menerapkan berbagai peningkatan secara progresif. Service worker memberikan kemampuan pada Web, salah satunya untuk melakukan penyimpanan sumber daya yang membantu mempercepat waktu muat bagi pengguna yang datang berulang kali.  Teknik ini juga membuka kesempatan bagi Tokopedia untuk menyajikan pengalaman berbeda ketika pengguna sedang dalam keadaan offline.

Berikutnya adalah push notification yang dapat membantu kita dalam mengirim pesan penting yang relevan dengan pengguna Tokopedia. Kemampuan push notification ini dapat menjadi pengganti bagi pengguna yang tidak memasang aplikasi Tokopedia di device mereka. Lalu, ada pula contact picker yang dapat membantu pengguna dalam menginput nomor handphone tanpa perlu mengetiknya lagi. Kemudian, ada pula WebShare API yang memungkinkan pengguna untuk membagikan satu pesan ke berbagai platform media sosial melalui dialog box, seperti yang biasa dijumpai pada aplikasi Native. 

Masih menjelaskan seputar Web capabilities yang diimplementasikan Tokopedia, saat ini tim Web platform dapat mengetahui kondisi jaringan internet dari pengguna melalui Network Information, sehingga konten yang dikirimkan dapat menyesuaikan kondisi dari jaringan tersebut. Web OTP juga merupakan bagian dari Web capabilities yang berfungsi untuk mempermudah pengguna dalam menuliskan kode OTP, tanpa perlu lagi melihat isi dari SMS yang dikirimkan. Yang terakhir adalah content indexing, dimana konten yang dirasa bermanfaat akan dikirimkan ke pengguna untuk disimpan ke dalam device mereka, sehingga dapat dibaca meskipun pengguna dalam keadaan offline. 

Sesi ini ditutup dengan penjelasan seputar Web capabilities yang sedang dalam tahap pengembangan oleh tim Web Platform Tokopedia, yakni Badging App Icon, Background Sync API, dan Web NFC. 

Kedepannya, START Summit Extension akan terus diadakan setiap bulannya sebagai komitmen dari Tokopedia yang merupakan perusahaan teknologi untuk memberikan wadah belajar bagi para talenta digital masa depan agar dapat berkontribusi dalam kemajuan industri teknologi di Indonesia.

Media Partner START Summit Extension (Edisi October 2020)

Daily SocialIDN TimesKataData, Uzone.id,

InfoKomputerProgateTek.id, Gizmologi.id,

Nextren.comTechnologueMedcom.id