Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Strategi Jitu Pengembangan Mobile App untuk Startup

91 views

Published on

Apa yang sebaiknya saya pilih untuk pengembangan mobile apps (khususnya dalam konteks startup)? Slide ini berisi beberapa diskusi dan cerita mengenai perjalanan Meeber dari awal hingga saat ini dan Tech-Stack apa yang dipakai

Published in: Mobile
  • Be the first to comment

  • Be the first to like this

Strategi Jitu Pengembangan Mobile App untuk Startup

  1. 1. Strategi Jitu Pengembangan Mobile App untuk Startup! Dony Riyanto Google I/O Extended Depok 2019 Auditorium Gedung Serbaguna PNJ Universitas Indonesia
  2. 2. Perkenalan • Dony Riyanto • CTO PT Meeber Teknologi Indonesia (meeberian.com) • Sebuah platform B2B2C yang mempertemukan kepentingan Resto/Cafe dan Pelanggannya • Sebelumnya pernah terlibat dalam beberapa startup, antara lain Eventalent, iJakarta/iPusnas, Moneta, Nexsi.io, Xentinel, AksiData.com, CodingCamp, Kelase, Schoolmedia, dsb. • Juga kolaborasi/mentoring/juri di beberapa kegiatan hackaton/mentoring/project seperti: Fishackathon, Big Data Week Hackathon, Sci-Fi Hackathon, Hackathon TNI AD, MASTEL, Innovesia, dsb • Konsultan di Kemristekdikti, Balitbang Kemhan, BNN, BASARNAS, TNI AD • Profil: vizualize.me/donyriyanto Slide: slideshare.net/donyriyanto
  3. 3. Pertanyaan • Saya punya ide, dan saya ingin mengembangkan ide tersebut menjadi sebuah startup. Bagaimana dan menggunakan apa sebaiknya pengembangan aplikasi mobile untuk ide saya tersebut? • Apakah Android saja? Atau mau iOS sekalian? • Android nya mau dikembangkan pakai apa? “Native” Java atau Kotlin? Atau pakai ReactNative? Atau Flutter? Atau kita bikin PWA saja dulu nanti kita bikin Web View? • Bagaimana dengan iOS, mau dibikin pakai apa?
  4. 4. Dialog • Saya mulai cerita saya dari beberapa potong screenshot sebuah FB Group • https://bit.ly/2SGoNdA
  5. 5. Intisari • Bahasa asli (native) • Tergantung backend (untuk jml user banyak) • Android -> native, tp iOS-> ReactNative • Ada yang pakai ReactNative trus berikutnya malah ga pakai ReactNative lagi (moving off)
  6. 6. Intisari • “sharing habis interview” • “Bagaimana mendeteksi apps tertentu pakai apa? Reactnative atau native?”
  7. 7. Intisari • ReactNative lemah di fps • Full Android (native) tapi bagian tertentu pakai Web View • “Baru tau kalau sekelas xxx (masih) menggunakan webview” • XXX Pakai RN cuman untuk apps A dan B aja (sisanya pakai native?)
  8. 8. Intisari • “performance problem”
  9. 9. Intisari • “Bagus RN atau Flutter?” • “xxx komunitasnya lebih matang” • “Performance problem” (lagi)
  10. 10. Pertanyaan • Apakah praktik penggunaan webview untuk aplikasi penting semacam mobile banking itu bisa dijamin keamanannya ? • Teknik pembuatan mobile app dengan webview memang solusi yang terbilang cepat, mudah, dan murah, serta cross-platform. Tetapi webview app pada dasarnya adalah web biasa, sehingga menurut saya lebih mudah untuk menemukan celah keamanannya dibandingkan kalau native app. • Sebagai perbandingan, aplikasi penting lainnya yang membutuhkan fokus keamanan yaitu email client dari google yang bernama Gmail itu merupakan native app, meskipun Gmail menampilkan isi email menggunakan webview, tetapi itu tidak bisa dikatakan webview app, karena fitur JS nya tidak aktifkan, hanya fitur HTML+CSS yang diaktifkan untuk menampilkan isi email di dalam aplikasi Gmail, dan hanya itu saja penggunaan webview di dalam aplikasi Gmail, selebihnya adalah native app. • https://bit.ly/32RCb2U
  11. 11. Pertanyaan • Jadi sebaiknya pengembangan aplikasi mobile sebaiknya pakai apa? • Jika tidak pakai native, alternatifnya apa dong? • Kapan saya perlu mempertimbangkan apakah harus pakai native, hybrid, PWA, Ionic, ReactNative, Flutter, atau yang lain? • Bagaimana dengan faktor lainnya, misalnya security?
  12. 12. Meeber pakai apa? Existing: • Ionic • NodeJS (sebagian pakai Loopback) • MongoDB dan PostgreSQL • GCP (VM) • Crashlytics Next release (after 2years+, 8k downloader MeeberLite, 17k Meeberian): • Flutter (+webview), Ionic, Vue • Java (Spring) + sebagian masih NodeJS (loopback tidak dipakai lagi) + Python • PostgreSQL + MySQL • Kafka, Elastic Stack • GCP (VM+DB+API Manager), AWS, local server (for payment services) • Crashlytics & AppsFlyer
  13. 13. Pertimbangan • Pada tahap inisiasi, kami memilih best available resources dan less effort. Pada waktu itu kami memiliki resource yang ready Ionic Programmer, NodeJS programmer. Sebelumnya sempet mencoba ReactNative, tetapi ada masalah internal dan bahkan programmernya kabur/lepas tanggungjawab. • Pertimbangan lain: Ekosistem meeber adalah aplikasi yang kompleks, B2B2C, dimana kami harus bikin platform, sekaligus bikin apps pengganti apps desktop, sekaligus harus bikin aplikasi buat customer. Aplikasi kasir apalagi untuk FnB adalah aplikasi yang sangat kompleks secara fitur dan fungsi: inventory, ingredient, employee management, ordering/transaction/kitchen/receipt/refund/void/ permission, dsb. Kami khawatir jika menggunakan Native akan memakan resources SDM yang besar dan lama pengembangannya, khususnya pada masa inisiasi seperti ini.
  14. 14. Pertimbangan Next Relase: • Membutuhkan tampilan yang lebih segar, performanya lebih bagus, seligus less-effort untuk mendukung perkembangan teknologi mobile apps kedepan. Dan pengembangan aplikasinya juga harus cepat • Membutuhkan sistem transactional yang kokoh, rigid, kuat (setara perbankan jika memungkinkan) • Membutuhkan sistem monitoring yang kompleks namun skaligus flexible
  15. 15. Pro-cons • Flutter terinspirasi dari RN • Tetapi melakukan beberapa perbaikan, antara lain: real native, (optimized) real (built-in) component/features, yang otomatis mengatasi masalah: kompatibilitas dan performance • Hot reload, mempercepat pembuatan aplikasi • Sudah rilis dengan versi >= 1.0 • Dilahirkan dan dimaintain oleh Google sendiri bersama komunitas • Menggunakan bahasa baru (Dart) yang komunitasnya masih bertumbuh (kalah dengan komunitas-komunitas existing) • Pengembangan library pendukungnya masih bertumbuh dan sering pertanyaan (stackoverflow) masih sedikit/belum ada terkait beberapa issue
  16. 16. Pertimbangan • Dibeli dari Apigee 2016 dengan harga fantastis (625 USD) • Apigee sendiri sudah cukup dikenal luas dari fitur dan performance-nya sebelum dibeli Google • Kami mulai membutuhkan monitoring dan mangement yang lebih dalam, baik dari sisi application/sistem layer, maupun data • Solusi lain harganya cukup mahal. Dan yang berbasis cloud rata- rata ada kecenderungan vendor- locked-in • Environment kami banyak yang berada di GCP
  17. 17. Backend Stack • Kami memilih migrasi ke Java Spring karena membutuhkan SDK/lib yang sudah mature di kelas enterprise, dan sudah mulai mampu untuk merekrut programmer Java yan handal (dan resourcenya cukup banyak dari perusahaan2 besar seperti Banking/Insurance/Multifinance, telco) • + AppsFlyer: karena tadinya lebih untuk kepentingan remote debuging, saat ini lebih ke digital campaign dan konversi leads • Meninggalkan MongoDB karena: kami kesulitan resources expert mongo, bisnis kami hampir seluruhnya adalah transactional yang ACID-critical. Kami lebih mudah untuk mendapatkan expert di PostgreSQL (dari enterprise, perusahaan multi nasional, dsb) • Menggunakan Kafka dan Elastic Stack karena sudah membutuhkan Service Bus dan stream processing/analytics
  18. 18. Pertanyaan?

×