Bagaimana Tokopedia mengembangkan web dan aplikasinya?
Dalam ajang START Summit Extension kali ini, tim engineer Tokopedia mengajak para pegiat teknologi untuk berdiskusi dan mempelajari lebih dalam tentang pengembangan sebuah platform.
Dalam ajang 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 diketahui, 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 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 mengembangan 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 development-nya 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 layout-nya sudah benar, maka tinggi cell akan mengikuti.
Tiara Freddy Andika, 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.
Unlocking New Capabilities for the Web
Sesi kedua 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.
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.









