SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
Strategi Jitu Pengembangan
Mobile App untuk Startup!
Dony Riyanto
Google I/O Extended Depok 2019
Auditorium Gedung Serbaguna PNJ
Universitas Indonesia
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
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?
Dialog
• Saya mulai cerita saya dari
beberapa potong screenshot
sebuah FB Group
• https://bit.ly/2SGoNdA
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)
Intisari
• “sharing habis interview”
• “Bagaimana mendeteksi apps
tertentu pakai apa? Reactnative
atau native?”
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?)
Intisari
• “performance problem”
Intisari
• “Bagus RN atau Flutter?”
• “xxx komunitasnya lebih matang”
• “Performance problem” (lagi)
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
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?
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
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.
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
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
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
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
Pertanyaan?

Mais conteúdo relacionado

Semelhante a Strategi Jitu Pengembangan Mobile App untuk Startup

RPL-SE-AgileSofwareDevelopment-2017-v1.0.en.id.pdf
RPL-SE-AgileSofwareDevelopment-2017-v1.0.en.id.pdfRPL-SE-AgileSofwareDevelopment-2017-v1.0.en.id.pdf
RPL-SE-AgileSofwareDevelopment-2017-v1.0.en.id.pdfAhmadFairuzabadi1
 
Android umy-yogyakarta
Android umy-yogyakartaAndroid umy-yogyakarta
Android umy-yogyakartaWidy Priasmoro
 
Introduction DSC Universitas Diponegoro and How To Contribute In Open Source ...
Introduction DSC Universitas Diponegoro and How To Contribute In Open Source ...Introduction DSC Universitas Diponegoro and How To Contribute In Open Source ...
Introduction DSC Universitas Diponegoro and How To Contribute In Open Source ...DSCUndip
 
KONSEP PEMEROGRAMAN WEBSITE AAGUS NUGRAHA
KONSEP PEMEROGRAMAN WEBSITE AAGUS NUGRAHAKONSEP PEMEROGRAMAN WEBSITE AAGUS NUGRAHA
KONSEP PEMEROGRAMAN WEBSITE AAGUS NUGRAHAAgusNugraha39
 
Proposal pawaran aplikasi trackit
Proposal pawaran aplikasi trackitProposal pawaran aplikasi trackit
Proposal pawaran aplikasi trackitCahya Adhi
 
Bussiness Opportunity
Bussiness OpportunityBussiness Opportunity
Bussiness OpportunityMoudy Yunora
 
Technical Aspects of Website and Information System Development _Training "IN...
Technical Aspects of Website and Information System Development _Training "IN...Technical Aspects of Website and Information System Development _Training "IN...
Technical Aspects of Website and Information System Development _Training "IN...Kanaidi ken
 
Menuju BUMN Open Source e-Business Cloud v Revisi
Menuju BUMN Open Source e-Business Cloud v RevisiMenuju BUMN Open Source e-Business Cloud v Revisi
Menuju BUMN Open Source e-Business Cloud v RevisiHemat Dwi Nuryanto
 
PENERAPAN KONSEP OPEN SOURCE UNTUK MENINGKATKAN DAYA CIPTA PIRANTI LUNAK DI K...
PENERAPAN KONSEP OPEN SOURCE UNTUK MENINGKATKAN DAYA CIPTA PIRANTI LUNAK DI K...PENERAPAN KONSEP OPEN SOURCE UNTUK MENINGKATKAN DAYA CIPTA PIRANTI LUNAK DI K...
PENERAPAN KONSEP OPEN SOURCE UNTUK MENINGKATKAN DAYA CIPTA PIRANTI LUNAK DI K...fajrillah
 
Pemodelan Perangkat Lunak
Pemodelan Perangkat LunakPemodelan Perangkat Lunak
Pemodelan Perangkat Lunakzachrison htg
 
Technical Feasibility For Product
Technical Feasibility For ProductTechnical Feasibility For Product
Technical Feasibility For ProductYatno Sudar
 
Makalah Mobile Programming
Makalah Mobile ProgrammingMakalah Mobile Programming
Makalah Mobile ProgrammingVicinthia Veren
 
Pertemuan 4 - Scrum.pdf
Pertemuan 4 - Scrum.pdfPertemuan 4 - Scrum.pdf
Pertemuan 4 - Scrum.pdfJulianaMansur6
 
Mekanisme Tata Kelola dan Kecepatan Akses Website
Mekanisme Tata Kelola dan Kecepatan Akses WebsiteMekanisme Tata Kelola dan Kecepatan Akses Website
Mekanisme Tata Kelola dan Kecepatan Akses WebsiteDony Riyanto
 
Sim,ria andriani,prof hapzi,sumber daya komputasi dan komunikasi, universitas...
Sim,ria andriani,prof hapzi,sumber daya komputasi dan komunikasi, universitas...Sim,ria andriani,prof hapzi,sumber daya komputasi dan komunikasi, universitas...
Sim,ria andriani,prof hapzi,sumber daya komputasi dan komunikasi, universitas...Ria Andriani
 

Semelhante a Strategi Jitu Pengembangan Mobile App untuk Startup (20)

RPL-SE-AgileSofwareDevelopment-2017-v1.0.en.id.pdf
RPL-SE-AgileSofwareDevelopment-2017-v1.0.en.id.pdfRPL-SE-AgileSofwareDevelopment-2017-v1.0.en.id.pdf
RPL-SE-AgileSofwareDevelopment-2017-v1.0.en.id.pdf
 
Proposal web
Proposal webProposal web
Proposal web
 
Android umy-yogyakarta
Android umy-yogyakartaAndroid umy-yogyakarta
Android umy-yogyakarta
 
Tugas individu Rekweb 1
Tugas individu Rekweb 1Tugas individu Rekweb 1
Tugas individu Rekweb 1
 
Makalah html5
Makalah html5Makalah html5
Makalah html5
 
Introduction DSC Universitas Diponegoro and How To Contribute In Open Source ...
Introduction DSC Universitas Diponegoro and How To Contribute In Open Source ...Introduction DSC Universitas Diponegoro and How To Contribute In Open Source ...
Introduction DSC Universitas Diponegoro and How To Contribute In Open Source ...
 
KONSEP PEMEROGRAMAN WEBSITE AAGUS NUGRAHA
KONSEP PEMEROGRAMAN WEBSITE AAGUS NUGRAHAKONSEP PEMEROGRAMAN WEBSITE AAGUS NUGRAHA
KONSEP PEMEROGRAMAN WEBSITE AAGUS NUGRAHA
 
Proposal pawaran aplikasi trackit
Proposal pawaran aplikasi trackitProposal pawaran aplikasi trackit
Proposal pawaran aplikasi trackit
 
TUGAS PPT _ WAWAN WIDODO.pptx
TUGAS PPT _ WAWAN WIDODO.pptxTUGAS PPT _ WAWAN WIDODO.pptx
TUGAS PPT _ WAWAN WIDODO.pptx
 
Bussiness Opportunity
Bussiness OpportunityBussiness Opportunity
Bussiness Opportunity
 
Technical Aspects of Website and Information System Development _Training "IN...
Technical Aspects of Website and Information System Development _Training "IN...Technical Aspects of Website and Information System Development _Training "IN...
Technical Aspects of Website and Information System Development _Training "IN...
 
Menuju BUMN Open Source e-Business Cloud v Revisi
Menuju BUMN Open Source e-Business Cloud v RevisiMenuju BUMN Open Source e-Business Cloud v Revisi
Menuju BUMN Open Source e-Business Cloud v Revisi
 
PENERAPAN KONSEP OPEN SOURCE UNTUK MENINGKATKAN DAYA CIPTA PIRANTI LUNAK DI K...
PENERAPAN KONSEP OPEN SOURCE UNTUK MENINGKATKAN DAYA CIPTA PIRANTI LUNAK DI K...PENERAPAN KONSEP OPEN SOURCE UNTUK MENINGKATKAN DAYA CIPTA PIRANTI LUNAK DI K...
PENERAPAN KONSEP OPEN SOURCE UNTUK MENINGKATKAN DAYA CIPTA PIRANTI LUNAK DI K...
 
Pemodelan Perangkat Lunak
Pemodelan Perangkat LunakPemodelan Perangkat Lunak
Pemodelan Perangkat Lunak
 
Technical Feasibility For Product
Technical Feasibility For ProductTechnical Feasibility For Product
Technical Feasibility For Product
 
Simply zine 1ed
Simply zine 1edSimply zine 1ed
Simply zine 1ed
 
Makalah Mobile Programming
Makalah Mobile ProgrammingMakalah Mobile Programming
Makalah Mobile Programming
 
Pertemuan 4 - Scrum.pdf
Pertemuan 4 - Scrum.pdfPertemuan 4 - Scrum.pdf
Pertemuan 4 - Scrum.pdf
 
Mekanisme Tata Kelola dan Kecepatan Akses Website
Mekanisme Tata Kelola dan Kecepatan Akses WebsiteMekanisme Tata Kelola dan Kecepatan Akses Website
Mekanisme Tata Kelola dan Kecepatan Akses Website
 
Sim,ria andriani,prof hapzi,sumber daya komputasi dan komunikasi, universitas...
Sim,ria andriani,prof hapzi,sumber daya komputasi dan komunikasi, universitas...Sim,ria andriani,prof hapzi,sumber daya komputasi dan komunikasi, universitas...
Sim,ria andriani,prof hapzi,sumber daya komputasi dan komunikasi, universitas...
 

Mais de Dony Riyanto

KNIME For Enterprise Data Analytics.pdf
KNIME For Enterprise Data Analytics.pdfKNIME For Enterprise Data Analytics.pdf
KNIME For Enterprise Data Analytics.pdfDony Riyanto
 
Implementasi Teknologi Industri 4.0 pada TNI AD
Implementasi Teknologi Industri 4.0 pada TNI ADImplementasi Teknologi Industri 4.0 pada TNI AD
Implementasi Teknologi Industri 4.0 pada TNI ADDony Riyanto
 
Blockchain untuk Big Data
Blockchain untuk Big DataBlockchain untuk Big Data
Blockchain untuk Big DataDony Riyanto
 
Mengenal ROS2 Galactic
Mengenal ROS2 GalacticMengenal ROS2 Galactic
Mengenal ROS2 GalacticDony Riyanto
 
Membuat Desain Roket Amatir dan Menjalankan Simulasi
Membuat Desain Roket Amatir dan Menjalankan SimulasiMembuat Desain Roket Amatir dan Menjalankan Simulasi
Membuat Desain Roket Amatir dan Menjalankan SimulasiDony Riyanto
 
Creating UDP Broadcast App Using Python Socket on WIndows & Linux
Creating UDP Broadcast App Using Python Socket on WIndows & LinuxCreating UDP Broadcast App Using Python Socket on WIndows & Linux
Creating UDP Broadcast App Using Python Socket on WIndows & LinuxDony Riyanto
 
Desain ground control & Sistem Pendukung untuk Male UAV/UCAV
Desain ground control & Sistem Pendukung untuk Male UAV/UCAVDesain ground control & Sistem Pendukung untuk Male UAV/UCAV
Desain ground control & Sistem Pendukung untuk Male UAV/UCAVDony Riyanto
 
Application Performance, Test and Monitoring
Application Performance, Test and MonitoringApplication Performance, Test and Monitoring
Application Performance, Test and MonitoringDony Riyanto
 
Cloud Service Design for Computer Vision, Image & Video Processing+Analytics
Cloud Service Design for Computer Vision, Image & Video Processing+AnalyticsCloud Service Design for Computer Vision, Image & Video Processing+Analytics
Cloud Service Design for Computer Vision, Image & Video Processing+AnalyticsDony Riyanto
 
RealNetworks - SAFR Platform Whitepaper
RealNetworks - SAFR Platform WhitepaperRealNetworks - SAFR Platform Whitepaper
RealNetworks - SAFR Platform WhitepaperDony Riyanto
 
Dl6960 Demo Software User's Guide v1.4
Dl6960 Demo Software User's Guide v1.4Dl6960 Demo Software User's Guide v1.4
Dl6960 Demo Software User's Guide v1.4Dony Riyanto
 
Review of Existing Response System & Technology.
Review of Existing Response System & Technology.Review of Existing Response System & Technology.
Review of Existing Response System & Technology.Dony Riyanto
 
Beberapa Studi Kasus Fintech Micro Payment
Beberapa Studi Kasus Fintech Micro PaymentBeberapa Studi Kasus Fintech Micro Payment
Beberapa Studi Kasus Fintech Micro PaymentDony Riyanto
 
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANG
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANGRencana Pengembangan REST API dan Microservice pada MONEVRISBANG
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANGDony Riyanto
 
Implementasi Full Textsearch pada Database
Implementasi Full Textsearch pada DatabaseImplementasi Full Textsearch pada Database
Implementasi Full Textsearch pada DatabaseDony Riyanto
 
Beberapa strategi implementasi open api untuk legacy system existing app
Beberapa strategi implementasi open api untuk legacy system existing appBeberapa strategi implementasi open api untuk legacy system existing app
Beberapa strategi implementasi open api untuk legacy system existing appDony Riyanto
 
Pengenalan Big Data untuk Pemula
Pengenalan Big Data untuk PemulaPengenalan Big Data untuk Pemula
Pengenalan Big Data untuk PemulaDony Riyanto
 
Introduction to BACnet: Building Automation & Control Network
Introduction to BACnet: Building Automation & Control NetworkIntroduction to BACnet: Building Automation & Control Network
Introduction to BACnet: Building Automation & Control NetworkDony Riyanto
 
Enterprise Microservices
Enterprise MicroservicesEnterprise Microservices
Enterprise MicroservicesDony Riyanto
 
Edge Exploration of QR Code Technology Implementation
Edge Exploration of QR Code Technology ImplementationEdge Exploration of QR Code Technology Implementation
Edge Exploration of QR Code Technology ImplementationDony Riyanto
 

Mais de Dony Riyanto (20)

KNIME For Enterprise Data Analytics.pdf
KNIME For Enterprise Data Analytics.pdfKNIME For Enterprise Data Analytics.pdf
KNIME For Enterprise Data Analytics.pdf
 
Implementasi Teknologi Industri 4.0 pada TNI AD
Implementasi Teknologi Industri 4.0 pada TNI ADImplementasi Teknologi Industri 4.0 pada TNI AD
Implementasi Teknologi Industri 4.0 pada TNI AD
 
Blockchain untuk Big Data
Blockchain untuk Big DataBlockchain untuk Big Data
Blockchain untuk Big Data
 
Mengenal ROS2 Galactic
Mengenal ROS2 GalacticMengenal ROS2 Galactic
Mengenal ROS2 Galactic
 
Membuat Desain Roket Amatir dan Menjalankan Simulasi
Membuat Desain Roket Amatir dan Menjalankan SimulasiMembuat Desain Roket Amatir dan Menjalankan Simulasi
Membuat Desain Roket Amatir dan Menjalankan Simulasi
 
Creating UDP Broadcast App Using Python Socket on WIndows & Linux
Creating UDP Broadcast App Using Python Socket on WIndows & LinuxCreating UDP Broadcast App Using Python Socket on WIndows & Linux
Creating UDP Broadcast App Using Python Socket on WIndows & Linux
 
Desain ground control & Sistem Pendukung untuk Male UAV/UCAV
Desain ground control & Sistem Pendukung untuk Male UAV/UCAVDesain ground control & Sistem Pendukung untuk Male UAV/UCAV
Desain ground control & Sistem Pendukung untuk Male UAV/UCAV
 
Application Performance, Test and Monitoring
Application Performance, Test and MonitoringApplication Performance, Test and Monitoring
Application Performance, Test and Monitoring
 
Cloud Service Design for Computer Vision, Image & Video Processing+Analytics
Cloud Service Design for Computer Vision, Image & Video Processing+AnalyticsCloud Service Design for Computer Vision, Image & Video Processing+Analytics
Cloud Service Design for Computer Vision, Image & Video Processing+Analytics
 
RealNetworks - SAFR Platform Whitepaper
RealNetworks - SAFR Platform WhitepaperRealNetworks - SAFR Platform Whitepaper
RealNetworks - SAFR Platform Whitepaper
 
Dl6960 Demo Software User's Guide v1.4
Dl6960 Demo Software User's Guide v1.4Dl6960 Demo Software User's Guide v1.4
Dl6960 Demo Software User's Guide v1.4
 
Review of Existing Response System & Technology.
Review of Existing Response System & Technology.Review of Existing Response System & Technology.
Review of Existing Response System & Technology.
 
Beberapa Studi Kasus Fintech Micro Payment
Beberapa Studi Kasus Fintech Micro PaymentBeberapa Studi Kasus Fintech Micro Payment
Beberapa Studi Kasus Fintech Micro Payment
 
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANG
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANGRencana Pengembangan REST API dan Microservice pada MONEVRISBANG
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANG
 
Implementasi Full Textsearch pada Database
Implementasi Full Textsearch pada DatabaseImplementasi Full Textsearch pada Database
Implementasi Full Textsearch pada Database
 
Beberapa strategi implementasi open api untuk legacy system existing app
Beberapa strategi implementasi open api untuk legacy system existing appBeberapa strategi implementasi open api untuk legacy system existing app
Beberapa strategi implementasi open api untuk legacy system existing app
 
Pengenalan Big Data untuk Pemula
Pengenalan Big Data untuk PemulaPengenalan Big Data untuk Pemula
Pengenalan Big Data untuk Pemula
 
Introduction to BACnet: Building Automation & Control Network
Introduction to BACnet: Building Automation & Control NetworkIntroduction to BACnet: Building Automation & Control Network
Introduction to BACnet: Building Automation & Control Network
 
Enterprise Microservices
Enterprise MicroservicesEnterprise Microservices
Enterprise Microservices
 
Edge Exploration of QR Code Technology Implementation
Edge Exploration of QR Code Technology ImplementationEdge Exploration of QR Code Technology Implementation
Edge Exploration of QR Code Technology Implementation
 

Strategi Jitu Pengembangan Mobile App untuk Startup

  • 1. Strategi Jitu Pengembangan Mobile App untuk Startup! Dony Riyanto Google I/O Extended Depok 2019 Auditorium Gedung Serbaguna PNJ Universitas Indonesia
  • 2.
  • 3. 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
  • 4. 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?
  • 5. Dialog • Saya mulai cerita saya dari beberapa potong screenshot sebuah FB Group • https://bit.ly/2SGoNdA
  • 6. 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)
  • 7. Intisari • “sharing habis interview” • “Bagaimana mendeteksi apps tertentu pakai apa? Reactnative atau native?”
  • 8. 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?)
  • 10. Intisari • “Bagus RN atau Flutter?” • “xxx komunitasnya lebih matang” • “Performance problem” (lagi)
  • 11. 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
  • 12. 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?
  • 13. 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
  • 14.
  • 15. 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.
  • 16. 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
  • 17.
  • 18. 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
  • 19.
  • 20. 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
  • 21. 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