Ngobrolin Desktop App
Ringkasan Episode
Bantu KoreksiEpisode ini membahas pengalaman produksi menggunakan Tauri, framework desktop application berbasis Rust yang memungkinkan pengembangan aplikasi desktop cross-platform dengan teknologi web. Mas Donny dan Mas Aris dari Zero01 Group berbagi pengalaman mereka memilih Tauri sebagai solusi untuk membangun aplikasi desktop trading, menjelaskan keuntungan menggunakan WebView native dari OS dan bagaimana Tauri menawarkan performa lebih baik dibandingkan alternatif seperti Electron. Diskusi mencakup berbagai aspek teknis termasuk integrasi SQLite untuk penyimpanan data lokal, tantangan multi-monitor, serta keamanan data dengan enkripsi. Kedua pembicara juga berbagi insight tentang ekosistem Rust, integrasi dengan Deno, dan tips karir untuk developer teknis tentang pentingnya membangun kehadiran di media sosial.
Poin-poin Utama
- •Tauri adalah framework desktop application berbasis Rust yang menggunakan WebView native dari OS, memberikan ukuran aplikasi yang jauh lebih kecil (sekitar 4-5 MB) dibandingkan Electron yang bisa mencapai 100+ MB
- •Untuk aplikasi yang membutuhkan database lokal, SQLite adalah pilihan utama untuk penyimpanan data dengan pendekatan Local First architecture
- •Tantangan teknis seperti multi-monitor support perlu diperhatikan saat mengembangkan aplikasi desktop, termasuk penentuan posisi window yang tepat
- •Keamanan data sangat penting, terutama untuk data sensitif seperti API keys dan credentials, sehingga perlu implementasi enkripsi yang proper
- •Integrasi dengan runtime JavaScript seperti Deno memungkinkan pengembangan lebih fleksibel dengan memanfaatkan core library Deno
- •Memilih teknologi sebaiknya berdasarkan use case yang spesifik - Tauri cocok untuk desktop app, sementara Wails (Go-based) bisa menjadi alternatif
- •Penting untuk developer teknis membangun kehadiran di media sosial dan berbagi knowledge, karena ini membantu karir dan membuka peluang baru
Hai, hai, hai.
Selamat malam.
Apa kabar?
Apa kabar? Malam ini ada dinas gak? Kita cek dulu.
Enggak, enggak, eh. Kayaknya gak ada deh, minggu lalu gak ada.
Enggak ada, ya.
Tahun Filipin, kapan sih?
Konya gak sekarang, deh.
Ini yang dimanfaatkan dari klase men, ya.
Gue cek dulu deh klase men.
Oh, malah ngecek kan, coba ya.
Kalah dari nguyen FC.
Tapi masa gak apa-apa, kan peringkat gue juga lolos.
Cukup, cukup, cukup.
Malam ini kita bahas web, ya.
Oh, iya. Oh, iya.
Kita tetep harus ngobrolin web.
Mungkin ngobrolin tim, Mas.
Kita gak cocok jadi pandit.
Gak cocok, ya.
Gimana kabarnya, teman-teman semua?
Mudah-mudahan sehat.
Udah ada yang komen tuh, Pertamax.
Pertamax, wah. Ini ketahuan umur, nih.
Ini jamannya kaskus, ini.
Pertamax kan, minta cendul jangan dibata.
Minta cendul.
Iya.
Nah, malam hari ini seperti biasa, ya.
Kita akan ngobrolin topik-topik seputar web.
Lihat transkrip lengkap (2399 segmen lagi)
Karena kan ini selasa malam, ya.
Ini pertamax lagi.
Selasa malam, waktunya ngobrolin web.
Ngobrolin web.
Malam ini topiknya...
Pertamax yang orang, berarti yang duax.
Iya, menarik.
Karena...
Beberapa tahun yang lalu,
kalau kita mau bikin aplikasi itu,
by default, ya.
Adalah desktop. Karena mobile itu belum ada.
Berapa tahun, berapa puluh tahun yang lalu, kali ya.
Aplikasi default untuk...
Apa? Untuk user itu biasanya desktop.
Apa? Client server lah.
Segala macam itu running-nya di desktop, kan, ya.
Ya, karena dulu HP belum se-accessible sekarang juga, kan.
Ya, internet juga belum affordable.
Puluhan tahun yang lalu.
30 tahun lalu.
Ya, 20 tahun lalu HP nggak ada.
Tapi kan masih belum.
HP-nya belum bisa install aplikasi.
Sudah bisa.
Tapi aplikasi memang paling banyak, ya.
Web juga ada.
Belum merarik, ya.
20 tahun lalu, orang belum bisa install HP-HP.
Nokia 3.3.15.
Dibanting, nggak bisa.
Masih zamannya WAP kalau webnya, ya.
Belum web yang ini, kan.
Masih text aja, gitu kan.
Tapi sekarang,
kalau kita mau bikin aplikasi desktop, default-nya apa?
Web, kan.
Nah.
Berapa tahun?
Bahkan sekarang aplikasi native web itu udah agak di...
Jarang.
Perlu mitas kesekian, ya kan.
Maksudnya, kalau orang bikin aplikasi native pun,
ya, native mobile OS.
Pastikan yang rata-rata umumnya,
yang itu share userbase-nya besar.
Ya.
Dan sekarang kayaknya kalau misalkan kita mau bikin
aplikasi desktop,
pilihannya apa aja sih? Nah, ini cocok banget.
Karena malam ini kita...
Apa?
Kedetangan tamu istimewa, ya.
Ada dua.
Bukan cuma satu, ada dua.
Dua-duanya dari perusahaan
yang namanya Zero One Group, ya.
Kalau mau tahu apa itu Zero One Group,
nanti kita tanya juga sekalian.
Ada Mas Donny.
Halo, Mas Donny.
Halo, suara aku bener...
Bener-bener aman.
Nah, aman-aman.
Iya, ini apa?
Bakfix. Bakfix di production, ya.
Hotfix.
Hotfix di production.
Ya.
Mas Donny, ini VP Engineering, ya,
di Zero One Group, ya.
Iya, iya, iya.
Oke, mungkin ada beberapa yang
belum kenal.
Boleh kenalan singkat, dong.
Oke. Halo semuanya.
Namaku Donny Rubia Gatra.
Aku sekarang di Surabaya.
Barusan ketemu tiga orang ini kemarin.
Di Surabaya.
Langsung kita todong.
Ayo, mesti ngobrolin web.
Ini tiga topik ini gara-gara obrolan pas
ketemu sambil makan nasi sambal.
Nasi sambal burudi, ya.
Langsung ditodong.
Mantap, mantap, mantap.
Aku dari
Zero One Group, salah satu software
konsultan yang terletak
di Jakarta sebenernya, namun tip engineering
tersebar di seluruh Indonesia.
Hampir. Hampir di seluruh Indonesia.
Ada di semua pulau nggak?
Hampir semua pulau.
Iya, Indonesia pulaunya
kemarin ribu, ya.
Pulau besar, pulau besar, lima pulau besar.
Kalau lima pulau besar itu
Jawa, Sumatra, Kalimantan,
Sulawesi.
Jawa, Sumatra, Kalimantan, Sulawesi.
Bali dan manusat Tenggara Barat
udah, jadi belum
Papua.
Seru ya.
Berapa orang ini ya timnya?
Tim engineering-nya.
Tim engineering
berarti sama produk ya.
Sama produk itu di angka
60-an.
Gede ya.
Mantap. Lumayan sekarang.
Lumayan ya.
Oke, kita bahas web.
Kita bahas web.
Eh tunggu, satu lagi, ada satu lagi nih.
Ada produk engineer ya.
Produk engineer-nya Mas Aris Seripandi.
Halo, halo.
Halo Mas Aris.
Di Surabaya juga kah?
Di pulau mana?
Ditanya pulau.
Oh Jawa Barat.
Jawa Barat, oke.
Saya tinggal di Jawa Barat.
Oh suka bumi, kirain bekasi.
Kira-kira Mas Aris yang pengembangnya.
Bekasi juga Jawa Barat ya?
Iya.
Mas Aris boleh kenalan
singkat dong?
Boleh, boleh. Perkenalkan
nama saya Aris Seripandi, tapi
biasanya dipanggil Kang Aris sih kalau di
temen-temen Zero One Group itu.
Di ZOG,
di Zero One Group saya sebagai produk engineer.
Pasifikasinya biasanya lebih ke front end sih.
Oh, front end.
Kadang-kadang
full stack juga sih.
Oke, oke.
Ini kan Zero One Group ini
konsultan company kan ya?
Atau software house lah ya?
Bener ga sih?
Ya, kalau mau familiar di Indonesia,
pasti bilangnya software house.
Penasaran nih,
skena-nya sekarang di
software house itu gimana sih saat ini?
Kan sekarang lagi
winter kan katanya gitu.
Kalau di software house sendiri gimana ininya apa?
Projekannya lah,
terus hiringnya, atau apa
segala macem mungkin bisa dicitakan sedikit?
Sedikit sih sebenernya
yang membuat kami
thriving ya, sampai sekarang. Jadi tidak survive
thriving sampai tahun ini.
Dan tahun-tahun ke depannya adalah
klien kami itu tersebar
tidak hanya di Indonesia sebenernya.
Jadi ada di luar negeri.
Jadi ada dari
dan website kami masih
working in progress.
Ini yang lama,
jadi kalau mau share
nanti kita bakal share.
Ada staging-nya sebenernya kalau mau.
Kita ga cek
lighthouse-nya kok malam ini ga tenang aja.
Yang penting bisa menarik
kliennya kan.
Kaliannya
dalam dan luar negeri gitu kan dari US,
UK, Australia
disana. Jadi yang
membuat kami thriving
sampai dengan tim
engineering 69
dan tim keseluruhan perusahaan
110
itu adalah cukupnya diversifikasi
klien. Jadi tidak hanya enterprise dari
lokal, lebih ada dari internasional.
Kalau dari lokal sendiri
cukup banyakkah atau
dibandingkan dari apa?
Sebelum pandemi itu gimana?
Justru yang menarik adalah kami dulu sebenernya
bukan software house utuh.
Tapi kami dulu itu adalah
AI machine learning provider
solution dulu.
Udah duluan ya?
Sebelum
Sebenernya banyak
klien sebelumnya software house atau apa
terus sekarang karena
AI 5 board girl
AI. Nah ini
keren nih tadinya
specialist AI malah
meluas ya tadinya.
Long story shortnya
adalah gara-gara pandemi karena AI
machine learning atau data itu bukan sesuatu
yang utama, banyak budget yang di-cut
disana. Jadi harus
harus ini, harus improvisasi untuk
pivot cari uang lewat
mana ya.
Tapi saat ini juga kami
menerima beberapa project AI
bahkan gen AI.
Banyak kan RAG kali ya
kalau lebih tepatnya.
Enggak?
Justru malah yang
lebih ke knowledge
management untuk
embedding
model. Jadi untuk menampung
semua informasi sih.
Ya berarti RAG kan ya
retrieval
tidak ya beda?
Belum sampai sana. Kayaknya aku
belum sampai belajar
RAG-nya sih disana.
Jadi malam ini kan topiknya tentang desktop
app ya. Nah kan kebetulan
juga teman-teman dari Zero One
Group, Mas Jurni, Mas Aris itu
kemarin share tentang
pengalaman
membangun aplikasi desktop.
Kira-kira
kalau sekarang
opsi untuk bikin
aplikasi desktop itu apa aja sih
kalau zaman dulu kan ada
Delphi, ada Visual Basic,
ada Java, gitu kan.
Jawa sampai sekarang sih masih ya.
Kan pasti kalian
research kan ya. Ada Microsoft
Access.
Bisa didikin aplikasi juga.
Itu platform pertama kali ya.
Bisa dibilang gitu ya.
Saya pernah nge-maintain
itu loh, nge-maintain aplikasi
di atas Microsoft Access loh.
Tapi nggak pakai C-Shop, nggak benar-benar
pakai Microsoft Access.
Dikin form-nya langsung dari Access. Atau
kalau nggak Oracle juga ada tuh.
Oh iya, Oracle ada
yang main-main form, pakai
form gitu kan ya. Terus kalau
di Windows itu biasanya .NET pastinya ya
.NET. Kalau di macOS kan pasti ada
apa, pakai Objective-C atau
Swift ya. Objective-C.
Jadi sekarang Alex,
gimana?
Kalau sekarang pilihan
dikin aplikasi desktop
di era web
sekarang ya, saya bilang
yang motif platform.
Cukup banyak pilihan sih.
Nah yang kali ini akan kita
bahas, sesama masih dibahas
nanti mengenai pengalaman,
itu menggunakan tauri. Dan
itu taurinya based on
trust, tapi from-enion
menggunakan teknologi web
react.
Oh, web-nya react.
Jadi
ada beberapa cerita
yang bisa di-share
di sana mengenai apa sih
pros and cons-nya menggunakan kombinasi
menggunakan teknologi web di
aplikasi desktop dan lain-lain.
Tapi
saya nanti lebih
tertarik mengetahui
the reason behind
membuat web untuk jalan
sebagai desktop application tuh apa sih
secara requirement bisnisnya itu
itu yang lebih tahu, the why.
Kenapa? Kenapa
gak hanya pilih browser?
Kenapa gak pake swift gitu misalnya
native?
Oh bukan, itu kan
udah pake teknologinya.
Sekarang kebutuhan bisnis
apa sih yang sampai butuh desktop
application? Nah.
Oh, I see.
Pasti gak pake
browser aja gitu ya maksudnya ya?
Oh gitu pilihannya.
Kenapa user pengen install app gitu?
Bikin user install suatu
app di desktop.
Sebenernya bisa banyak alasan sih
tapi untuk yang kasus kemarin
itu requirement dari
client yang mana memang
di domain spesifiknya di finansial.
Kalau misalkan
menggunakan web app itu
bisa jadi
dari
performa juga
kan benar-benar harus mengandalkan
server mereka tuh. Nah.
Masalahnya client yang kemarin itu
adalah satu perusahaan lembaga
sekuritas di Indonesia. Cukup besar
juga.
Mereka perlu
develop satu desktop app yang
cukup performan
tapi juga timeline pengerjaannya
gak lama gitu. Kalo pake
C++ yang kayak
aplikasi trading kayak gitu kan
biasanya pake C++ kemudian
UI library nya pake Qt.
Qt dari Nokia kan sekarang kan.
Nah itu kan
perlu resursi engineer
yang mahal dan lama juga kan
development-nya. Susah nyaringnya ya?
Susah juga di Indonesia. Nah.
Dengan adanya opsi pilihan
menggunakan teknologi web ini
di kombinasikan dengan Rust kan
yang sekarang lagi rame juga. Itu
satu kombinasi yang
bisa dibilang lumayan
perfect combo untuk requirement-nya.
Tapi pada incrementasinya ya gak
semulus jalan di
tol jago rawi sih sebenernya.
Emang tol jago rawi yang mulus ya?
Gak begini.
Kalo lebaran macet.
Nah. Ini
temen-temen dari Zero One gue pasti
sebelum memutuskan untuk pake Taori
pasti ada explore dulu kan
beberapa opsi. Gak. Waktu itu explore-nya
apa aja sih? Boleh ceritakan gak?
Dari kami sendiri sebenernya
kapabilitas untuk membuat desktop
pastinya dari pengalaman
yang sudah ada. Yang pertama
adalah Flutter sebenernya.
Karena kami juga punya tim
Flutter.
Kami juga punya tim Flutter. Dan Flutter
itu kan bikinnya
Flutter Engine gitu kannya
sekia disana. Tapi
dicoret
agar nanti pada akhirnya ini akan
di hand over ke mereka dan mereka butuh
maintenance yang lebih gampang
mencari orangnya.
Disara teknologi. Jadi ada
oh kayaknya dicoret nih. Jadi Flutter
akhirnya dicoret. Itu yang pertama.
Yang kedua itu
kita coba untuk
mungkin eksplorasi yang
populer aja ya. Jadi mengarah
kedua langsung. Elektron
ataupun Taori.
Dan fun fact-nya
POC-nya itu
pakai elektron.
Jadi
kita membutuhkan.
Karena mungkin lebih familiar
ini ya. Lebih familiar
dan lebih banyak orang yang pakai. Bahkan Slack kan
masih pakai elektron ya. Jadi
kayaknya nggak ada masalah ini. Kayaknya
nggak ada masalah ini gitu kan. Disana.
Nah dari situ eksplorasi
kita udah buat
ada masalah-masalah tertentu yang
kita hadapi pada waktu itu. Dan
harus kan Rirat dalam waktu
memindahkan ya. Memindahkan
yang ada di elektron sampai ke Taori
dalam waktu yang cukup singkat. Nah selanjutnya
silahkan Kang Aris. Detilnya
gimana tuh? Dari elektron ke
Taorinya gimana?
Ya ini cukup menarik sih. Jadi
ceritanya migrasi dari
elektron ke Taori itu dilakukan dalam
kurang lebih 2 hari
sih. Dan benar-benar
dari POC
yang
diminta ke lainnya tuh 3 fitur
yang termasuk transaksi
juga. Nah
dari elektron yang udah jadi
80%
pindah ke Taori. Isu
utamanya adalah memory leak
di elektron itu. Jadi
pertama kan elektron dia nggak
punya standar toaster
sendiri ya. Jadi elektron benar-benar
kayak Rirak aja. Library yang kita
set up sendiri mau
kayak gitu. Dan lain-lain gitu.
Nah masalahnya disana. Ketika
tidak menggunakan komposisi yang
cocok, toolkitnya
atau tooling yang pas
pasti akan ada banyak kendala
apalagi kan dikerjakan oleh tim yang
nah tapi ini bukan
basicnya
mendevelop aplikasi desktop kan.
Nah, pada saat itu
ada kejadian
memory leaknya tuh sampai ngabisin
14 gigapiknya itu.
Padahal
padahal
untuk fiturnya sendiri nggak terlalu
berat-berat banget kan.
Jadi, oh ya, mengenai fiturnya
sendiri, di aplikasi yang
kami develop itu, itu ada dua
hal yang utamanya. Yang pertama
kita harus
bisa handle data stream yang namanya
aplikasi driving kan, real time
data kan, pakai websocket.
Waktu itu pakai Nuts tuh. Dari
mereka pakai Nuts. Kemudian
satu lagi untuk transaksinya.
Nah, yang kedua ini
ini juga salah satu alasan kenapa
menggunakan teknologi web
di Tauri dengan, atau elektron pada
waktu itu pilihannya, dibandingkan
menggunakan C++ atau
yang lainnya, Donkai dan lain-lain.
Yang pastikan untuk
untuk kemudahan, satu untuk kemudahan
development karena resources
di web development cukup banyak
kan di, sangat banyak mungkin di Indonesia
sekarang. Yang kedua nya
kemudahan integrasi.
Nah, ekosistem JavaScript yang
ya, Mbak Eka, Mas Ivan dan Mas
Rija udah pada tau kan banyak
banget kan, ekosistem JavaScript udah gede banget
kan. Nah, jadi pilihan
pada waktu itu yang paling visible
atau sensible itu ya, elektron
atau Tauri. Cuman, karena
pada waktu itu temen-temen di
Zero One, tidak terlalu
ingin ambil resiko
menggunakan Rust. Ya, Rust
sendiri kan udah ada di dunia yang berbeda
kan, akhirnya pakai elektron. Sampai pada
akhirnya ketemu case tadi, isu
memori leak, ya udah, Tauri aja
dan itu udah, udah, langsung
soft sih, disana.
Kang Aris, apakah itu
tidak skill isinya kita ya?
skill isinya kita.
Bisa jadi juga ya kan
untuk elektron kan sebenernya
ya, Slack juga kan
realtime ya, bisa bilang realtime.
Discord. Slack, Visual Studio Code,
Discord, ya, banyak yang
pakai elektron.
Banyak yang elektron.
Bisa dibilang satu laptop
kita tuh, majority
aplikasinya based on elektron
sekarang. Spotify, ya, Spotify.
Engga, bener.
Semua 3 Giga lama-lama
face-nya.
Ya, saya
baca-baca soal perbedaan
mendasar antara elektron dan Tauri.
Sebenernya Tauri itu
di belakang layar hanya binder.
Jadi dia cuma ngebinding ke
aplikasi yang sudah ada
di belakang. Jadi dia tidak membawa
browser. Sedangkan bedanya
elektron, browser-nya itu
dia bawa
Chromium. Dia bawa Chromium langsung
di dalam instalasi.
Jadi memang instalasinya langsung tertutup
langsung ada Chromium based
Chromium-nya dia, Chromium
engine-nya dia untuk ngejalanin
aplikasi kita. Sedangkan
Tauri tidak. Nah.
Berarti
secara
requirement saat
instalasi di
komputernya klien,
berarti si browser itu harus exist
sebelum bisa
diinstall. Karena tidak akan jalan
sebenarnya kalau Tauri-nya, misalnya
Tauri-nya diinstall, tapi kalau browser yang
tidak ada. Tapi misalnya OS-nya
tidak punya browser, tidak punya default
web view. Ya, mungkin browser yang kita,
saya tidak tahu bagaimana konfigurasi
default browser yang dipakai apa.
Kalau tidak ada, berarti tidak bisa.
Berarti harus instal browser-nya dulu sebenarnya.
Lebih tepatnya sih
Tauri itu
dia memanfaatkan default
web view-nya masing-masing OS.
Jadi kan setiap
OS. Pasti ada web
view ya? Pasti ada.
Pasti ada OS-nya yang tidak ada web view-nya.
Makanya dia bisa IOS dan
bisa dibundle ke IOS
dan ke Android juga kan.
Yang Tauri 2. Itu versi 2.
Langsing
banget jadinya ya. Langsung.
Tapi mungkin biar
teman-teman di sini yang belum familiar
dengan teknologi seperti Electron dan
Tauri. Jadi Electron itu
bukan hanya membungkus
aplikasi web, terus
jadi aplikasi executable ya
Xe atau apa gitu ya. Tapi ada
backend-nya juga kan ya.
Kalau Electron itu pakai NGS kan.
Kalau misalkan dia mau
tulis file, mau baca file,
mau network dan lain-lain itu kan
konteknya ke Node.js.
Kalau Tauri dia pakai Rust. Bener gak?
Betul. Kalau lebih tepatnya kalau di Electron
itu pakai V8 engine-nya.
Oh, V8 engine-nya.
Yang sama juga dipakai
di Node.js kan pakai V8.
Sorry, bukan Ban. Dino juga pakai
V8 kan? Ya.
Dino pakai V8. Kalau Ban dia pakai
webkit-nya.
Ya.
Itu V8 C++ runtime.
Ujung-ujungnya namanya
di belakang Lip-UV.
Itu yang saya ingat.
Lip-UV itu yang asingkronus
scheduler-nya?
Ya, asingkronus scheduler-nya. Yang akhirnya
juga sama Dino kan. Anyway.
Jauh kemana-mana.
Intinya adalah si Electron dan Tauri itu
dia ada front-end-nya, ada backend-nya juga.
Untuk berkomunikasi
dengan OS. OS level ya.
Jadi, kalau
ada masalah dengan
memory leak, bisa jadi antara di front-end
atau di backend-nya juga.
Karena kalau dibandingkan antara
Node.js sama RAS, ya
kayak bumi dan langit.
Tapi sebenarnya
yang menariknya itu
di temuan kami pada waktu itu
yang heavy-nya itu
adalah penanganan websocket-nya
di front-end. Karena kan
dari klien, itu
permintaannya adalah websocket
data real-time-nya itu dihandle
dari front-end aja.
Sedangkan untuk yang data transseksional
itu data pakai RAS sebenarnya. Dan dihandle
dari backend, dari RAS atau Electron
tadi. Karena untuk
beberapa alasan terutama yang paling
penting adalah security sih.
Keamanan.
Oh, berarti front-end-nya langsung connect
ke websocket-nya?
Websocket-nya ke
server VSS.
Dan saat di-load,
tapi saat di-hydrate,
client-side langsung request.
Gitu, ya.
Nah, terus
penasaran yang tadi
apa, kan dari Electron ada isu
memorily. Nah, terus
hampir semua, 80% ya
tadi. Sebagian besar di-migrate
ke Tauri. Nah, kan berarti hampir
kayak, "Udah, migrate,
dipindah, hampir
seluruh code-nya."
Kecuali yang Tauri spesifik,
habis itu nggak ada isu lagi.
Nggak ada isu
signifikan sih.
Tapi tempat
balik lagi juga di Tauri,
tapi nggak segede yang di
Electron. Kalau di Tauri,
paling besar peak-nya tuh paling cuma di 4 giga
an. Setengahnya jauh, setengahnya.
Jauh dari yang tadi kan sampai 14 giga.
Tapi berarti
migrasinya bisa dibilang, dalam
kasus ini lumayan seamless ya. Maksudnya
nggak harus kayak perspektifnya,
atau maksudnya kayak arsitektur
seluruh stack dari
back-end sampai front-end. Nggak ada yang harus
dipikir ulang, nggak ada yang harus banyak
di-migrate, nggak ada ya.
Nggak, yang heavy-nya tuh di front-end-nya.
Jadi, bisa dibilang
seamless, karena kan si
front-end aplikasinya itu dipakai
feed kan. Kita pakai feed tuh, pada
waktu itu. Front-end-nya nggak ada
masalah. Cuman yang
jadi PR-nya itu adalah
komunikasi antara front-end dengan back-end
dari electron dengan
tauri kan beda tuh.
Meskipun mereka sama-sama
menggunakan protokol IPC.
Jadi, tauri punya
protokol IPC-nya sendiri.
Sama kayak kita ini lah,
kita komunikasi dari front-end, VRS,
kalau misalkan yang di tauri,
dia ada IPC, electron
juga sama. Nah, yang-yang
di tauri ini, sebenarnya lebih enak.
Karena dokumentasi integrasinya
lebih banyak atau lebih
bagus dari electron
sebenarnya. Dan lebih muda juga.
Oke, oke.
Menarik, menarik.
Terus, teman-teman di Zero One Group
udah punya
pengalaman menggunakan
RAS sebelumnya, atau ini baru
proyek pertama yang menggunakan RAS?
Kalau RAS,
kami sebenarnya sudah nge-deploy.
Kami ngerilis satu open source,
by the way, dengan RAS.
Kami ngerilis,
karena dulu GitLab itu
berbayar ya. Yang
berbayar ya, yang di mana?
Yang di cloud. Jadi kami bikin
tools CLI untuk memindah
semua data kami dari GitLab.com
ke Selfhost. Dan itu pakai
RAS. Itu pertama. Yang kedua,
internal HR
sistem kami itu
menggunakan RAS untuk
interaksi, select GitLab
sama Google Workspace.
Dan itu RAS API-nya
pakai RAS
di sana.
Jadi sebenarnya, kami
tidak terlalu ini,
tidak terlalu asing dengan
RAS.
Jadi ini mungkin proyek
ketiga.
Jadi cukup familiar
dengan RAS, jadi cukup
pede untuk migrasi, proses
migrasinya ya.
Dan selipan, satu, ada production
elixir di kami, jadi
sedikit promo buat proses ya.
Mantap, mantap, mantap.
Oke, oke.
Boleh di-share gak sih
kelebihan dan kekurangannya
dari Electron dan juga
Tauri
untuk proyek ini?
Kang Aris, boleh langsung.
Electron, kita mulai dari
Electron mungkin ya. Electron
sendiri yang point place-nya
adalah kita ada satu,
kita hanya perlu menggunakan satu bahasa
atau satu ekosistem JavaScript
atau TypeScript, itu kelebihan utamanya.
Terus, kelebihan
lainnya, menggunakan Electron,
selain ekosistem tadi
yang udah banyak
di IJS-nya, kita bisa
integrasi dengan PH engine
atau runtime yang sama digunakan
oleh Node.js juga.
Tapi dibalik itu kan
ada kekurangan tuh, karena tadi dia
harus ngebundel PH engine-nya,
kemudian ngebundel webview-nya
juga, dijadikan satu,
digabungkan dengan front-end-nya.
Ya mana, sebenarnya front-end-nya
bisa jadi gak, gak gede-gede banget
kan. Paling ya, cuma 1 mega bisa
atau 10 mega paling besar kan.
Yang, ya
di webview kan, yang web aplikasi kan
JavaScript output-nya
gak, gak mungkin gede-gede ya, apalagi
mastipan juga di web performance
Aula.
Nah.
Kalau ditawuri, enaknya adalah
pertama bundles aja lebih kecil.
Jauh lebih kecil.
Electron itu, standarnya itu
sekitar 90 megabyte
untuk bundle di DMG-nya.
Kurang lebih sekitar 90 ke atas
tergantung dari aplikasi seberapa besar juga.
Nah.
Tawuri itu sekitar, ya paling
3 mega, 5 mega, atau 10 mega.
Yang kemarin
di, kami buat itu dengan
video yang lumayan
advanced.
Itu sekitar, kalau tidak
salah, saya ingat 11,
sekian hampir 12 mega.
Karena kan, dia
tidak membundle webview-nya kan.
Dia bener-bener memanfaatkan
webview yang ada di OS-nya.
Nah. Cuma kekurangannya,
kalau dari segi teknis,
ditawuri tentu nyari yang generas
lumayan susah untuk sekarang.
Masih lumayan susah, terutama di Indonesia.
Yang kedua,
isu yang kedua adalah,
di Tawuri itu akan sangat tergantung
pada webview OS yang dipakai.
Jadi misalnya,
betul.
Kalau misalnya...
Kalau Max-nya nggak pernah update,
dia pernah upgrade ke
apa? Next version.
Ya, itu juga jadi isu
tersendiri sih. Meskipun sebenarnya dari
Tawuri sendiri, requeran
minimum OS-nya
nggak baru-baru banget sih.
Enggak harus baru banget. So, ingat saya yang
Neko OS itu versi 11, dia udah support.
Kalau nggak salah 10 atau 11.
Nah, cuma yang masalah itu di Windows sih.
Lebih banyak di Windows. Sekarang kan
Windows sendiri,
webview-nya,
Windows 7, itu kan
bukan pakai ini ya.
Belum Edge ya?
Belum Edge.
Windows 10 juga kan? Yang 10 yang awal-awal?
Iya. Itu...
Ada ketemu banyak
problem nggak pada saat develop
di Windows dengan webview
yang mungkin
yang di bawah
requirement lah, misalkan
masih Internet Explorer, belum
Internet Explorer Edge kan, belum yang Chromium-based.
Ya, itu
problem utamanya di sana sih. Tapi
pada akhirnya, dari klien
juga sepakat untuk menanduhkan
spesifikasi atau requirement
perangkat yang minimumnya
berapa kan?
Oh, jadi bisa di drive dari klien-nya kalau minimum
requirement-nya sekian, Windows-nya
harus Windows 11
atau berapa gede?
10 masih bisa, 10 ke atas.
Oke, oke.
Wow. Nanya dong.
Soal...
Saya, karena pernah punya pengalaman
bangun aplikasi Electron dulu,
jadi ada salah satu fitur
atau
yang berkesan itu adalah
update. Nah,
karena Electron itu kan gede
sekali update itu harus dibundle
Excel-nya, sehingga saya harus bikin
auto updater.
Jadi kalau ada update di server,
nanti muncul
download, dia nggak download sendiri.
Stick to download gitu ya?
Ya, download, dan akhirnya nggak refresh.
Kalau di VS Studio kan, eh, si VS
Code kan ada logonya
tombol dong, update.
Kita sudah ada update, dia
nanti ngereload sendiri kan,
dia bisa ada auto update. Kalau kalian
gimana nih yang handle update
aplikasi? Apakah suruh minta
klien install ulang atau
install ulang, download ulang
di handle dari
aplikasinya?
Bersyukur ya tau dia punya plugender sendiri untuk
auto update ini, jadi
tanpa harus dia
install ulang lagi satu pack penuh,
jadi dia cuma ngambil
core binary-nya aja, atau
output binary dari
hasil build-nya aja.
Jadi kalian tinggal push build-nya ke server
kalian, somewhere,
nanti dia nge-fetch,
ngedownload, dan nge-replace, gitu ya?
Ya, betul.
Dan itu
yang mengejutkannya, buat Sessu
juga sih, pada waktu itu,
kita bisa customize
nasipan. Jadi, ya
by default, dia udah ada tuh
mekanisme update-nya. Dan memang
gak semua, yang didownload
tuh bukan installer-nya. Jadi, kalau
Micro S kan ada DMG, kalau di
Windows kan Exe atau MSI, kan?
Bukan itu, tapi cuman
file... Build JS-nya
aja? Enggak.
Kalau ditaburi, udah jadi binary.
Jadi satu binary.
Oke.
Yang didalamnya sebenarnya, ya itu
build JS-nya kita kan
sebenarnya, didalam itu.
Dibungkus, ya?
Kayak di golang,
kan di golang kita bisa embed
static file, kan? Nanti ketika jalan
disub, satu webserver tentu, gitu.
Oke.
Ini target
untuk user-nya,
apakah terbatas hanya di Windows
aja, atau Windows
Micro S, termasuk Linux juga, atau
gimana?
Tauri sendiri,
maaf, Mas Ritza, untuk
aplikasi yang kami buat, atau yang secara
umum di Tauri? Yang kalian buat?
Kalau yang klien
minta itu hanya dua, Micro S
sama Windows aja.
Karena dari mereka
bilang juga jarang orang yang ready
pake Linux.
Mac-nya dua,
Apple Silicon sama
yang Intel. Yang Intel, ya.
Penasaran kalau di Linux,
WebView-nya pake apa ya, by default, ya?
Kalau Vanilla, belum disulit apa-apa.
WebKit.
WebKit, ya?
Ya, WebKit.
Baik itu yang pake Gnome juga WebKit, ya?
Nah,
kalau yang di Linux
ada Gnome, Gnome pake
WebKit, kemudian yang kaya DI itu...
KDI?
WebKit itu asalnya dari KDI, kan? Sebenarnya, kan?
Iya, Chameleon, kan?
Chameleon, ya.
Berarti dua-duanya WebKit, ya?
Kalau Windows yang ARM gimana?
Atau jarang Windows yang ARM?
Kita nggak handle.
Tidak build.
Tidak build.
Kalau terlalu aneh-aneh, ya.
Tapi beneran ada, kan?
Sudah support
Windows ARM.
Cuma memang untuk requirement dari ke lainnya sendiri
belum terangkap. Hardware-nya
juga masih jarang.
Ntar aja pusingnya kalau udah ada
requirement-nya, ya.
Nah, ini
karena ini back-end-nya
Rust, kalau misalkan error,
itu error-nya error
front-end, atau error
Rust juga? Maksudnya gini, dari sudut pandang
web developer,
kalau kita mau pake Tauri, apakah kita mesti tahu
Rust cukup mendalam?
Atau cukup tahu hello world,
abis itu udah bisa bikin? Atau gimana?
Nah, yang menariknya,
engineer yang di tim
pada saat kita mengerjakan,
ada, kalau enggak salah, ada
5-6 orang, kalau enggak salah, termasuk
saya, jadi 7 orang.
Majoritas mereka front-end engineer,
tapi ada satu yang
back-end engineer juga, cuman bukan
spesifik di Rust, dia
biasanya pakai golang juga.
Nah.
Jadi, pada waktu itu,
saya dan tim melakukan analisa dulu nih.
Mana yang
harus di handle dari Rust,
mana yang aman di handle untuk
di front-end aja.
Nah, yang di front-end aja, mereka tetap
minta, ya udah, untuk nuts
web socketnya aja dulu,
enggak yang lain-lain.
Untuk data streaming, udah aman di
front-end. Tapi kalau misalkan udah nyangkut transaksi,
pembelian, penjualan,
dan lain-lain, profile,
itu di-encryption dulu.
Lalu, back-end-nya, di
Rust-nya. Nah, pada
waktu itu,
kalau error, jelas harus bisa
baca dua-duanya. Jadi,
kami dibaging itu ada di dua tempat di
console login yang punya
browser-nya, sama di
terminal juga. Terminalnya, oke.
Terminal. Tapi,
nah, enaknya tauri,
itu kita bisa integrasikan sebenernya.
Jadi, login yang ada di WebView,
itu bisa dimasukkan ke terminal juga,
enaknya di sana. Dan itu enggak
banyak
effort yang harus dibuat
untuk kesana.
Mungkin pertanyaannya
pertanyaannya, Mas Rizan, apakah
ketemu error-nya compiler-nya, Ras?
Gimana, Kang Riz?
Solusinya, pada waktu
itu, teman-teman...
Co-pilot.
Co-pilot.
Tapi, sayangnya,
enggak semua teman-teman pakai
DTPT atau
AI. Jadi,
beberapa...
Jadi, pada waktu itu, saya sama satu
pekan lagi, namanya Mas Kavi,
di Zero One juga.
Kami diskusi, gimana caranya
biar teman-teman ProNN bisa familiar
ketika nge-develop, nge-develop satu
buah fitur, itu tanpa harus mereka
benar-benar paham, Ras, akhirnya
bikin satu patron yang mereka bisa duplikasi.
Jadi, dari list-list
fitur yang diminta klien,
misalnya integrasi Ras API-nya,
ya udah, kami bikinkan satu
wrapper, ya udah, kalau mau
implementasi fitur, kasih tahu nih ke teman-teman
engineer, ini
fungsi untuk integrasi, ini fungsi untuk apa,
ini fungsi apa, nanti mereka bisa duplikasi
dari patron tersebut.
Oke.
Tapi berarti, sebetulnya, harus nulis
logic Ras, ya? Itu kan tadi
perkara dibuatin wrapper atau
passion yang biar gampang pakenya,
oke lah, tapi berarti kan harus
server side logic-nya,
kayak backend logic-nya kan
tetap diimplementasi dalam
Ras, berarti kan dimalukan satu team
harus ada yang
cukup menghasilkan
Beyond Hello World.
Ada triknya mungkin dari kami
dan itu pernah kami bahas
di tim pasar,
adalah copy everything.
Maksudnya?
Jadi nggak usah pakai borrower, udah copy
aja, nggak usah di,
udah copy, copy, copy, copy,
jadi nggak perlu kita harus nge-track, ini
kapan harus di-release, ini kapan harus
di-muted, nggak usah pakai lifetime
dan semuanya, udah deh, copy,
copy, copy, jadi kita nggak peduli
sama, itu untuk buat
mempercepat dateline.
Meskipun pada akhirnya
dioptimasi juga sih, jadi dari
teman-teman ya, implementasi
dulu, nanti dari tim seniornya
dioptimasi lagi, biar lebih
set lagi.
Koncept borrower ini lumayan
jadi momok ya, buat
belajar Ras ya.
Diguruhi sama compiler
terus. Diguruhi sama compiler.
Compiler-nya ini ya, apa,
cerewet ya.
Ya, betul.
Ya, kalo dia prinsen compile
ya udah, gitu kan.
Aman, cuma kadang-kadang kan compiler
ras itu, ada beberapa hal
yang susah untuk dimengerti juga.
Meskipun dia ngasih rinsian, tapi
kita nggak tau nih, maksudnya dimana.
Yang enaknya tuh
di Ras itu, compiler-nya kalo gagal
dia ngasih tau tuh, petaknya
sama kayak PSP. PSP kan
lain berapa-lain berapa. Di Ras juga
kurang lebih sama, ada disana.
Oh, oke.
Cukup membantu, tapi masih tetap kritik
juga kali ya, kalo orang yang nggak familiar dengan
error-nya Ras gitu ya.
Masih horror.
Oke, oke, oke.
So horror, ini nggak error
reactiv yang merah menyalah gitu.
Aduh, pengalaman
dulu tuh.
Trauma.
Makanya kami pindah ke flutter.
Apakah elektron?
Tergantung ya,
terjawabannya adalah kami cukup adaptif sekarang.
Kalo dulu mungkin timnya karena belum terlalu
besar, sekarang sudah cukup
mature. Kalo mau ada
masalah sesuatu tau-tau di kill
oleh si Empu-nya.
Saya nggak menyebutnya,
tapi kalau tiba-tiba sudah siap sih.
Udah siap.
Oke.
Udah ada fog-nya juga kan ya, jadi
harus siap.
Atau pake ini?
Tauri.
Atau pake Tauri.
Bisa, bisa. Nah, elektron atau
Tauri, ini bisa senatif
aplikasi desktop aslinya nggak sih?
Netif.
Maksudnya netif gimana?
Mungkin
user experience-nya ya,
rasanya gitu.
Accessible level functionality
atau gimana tuh?
Kalo di Tauri, jelas
bisa sih. Sekarang kan dia
udah dibantu dengan rasanya itu sendiri
kan. Jadi layer,
access to layer OS yang
lebih low-level lagi, bisa
disana.
Secara ditambilkan
di front-end-nya atau di user interface-nya
itu kan pake protokol IPC-nya
Tauri itu sendiri.
Kalau pertanyaannya
adalah UI-nya, berarti ya
harus nyesain desainnya
Windows gimana. Ada bahasa
system desainnya,
ada system desainnya
di Mac juga harus disesuaikan, jadi
bukan yang kayak react native
yang mengambil komponen gitu ya, kan?
Tetep harus
dikustom semua gitu sih, nggak bisa.
Kalo UI-nya pure web ya, berarti?
Maksudnya kodingan web yang kayak
kodingan web pada umumnya aja kan?
Ya, sama kayak kita bikin
web application aja, back office
application dan lain-lain.
Cuma misalnya button-nya nggak kita timpa
CSS reset, nggak kita style sendiri
ya button-nya sesuai
webview masing-masing OS, kan?
Jadi misalnya kalo kita nggak timpa CSS
button-nya di Mac OS
itu kayak button Safari, gitu kan?
Berarti, kalo di
Windows-nya
view-nya Edge, kayak button-nya Edge, gitu.
Kalo kita nggak tambahin
styling library tertentu, iya.
Tapi yang kami
lakukan pada saat itu, kemarin itu, kita
menggunakan Tailwind.
Jadi pakai Tailwind,
React, udah,
gitu aja.
Front-end-nya itu pakai React sama Tailwind, gitu ya?
Betul.
Berarti any web developer
pasti langsung bisa masuk situ ya?
Asal nggak harus tulis
logic-nya?
Harusnya bisa, karena
ya, emang nggak.
Apakah kalo pakai Tauri,
kalo
hanya consuming REST API itu
perlu tau REST juga?
Nggak.
Kalo REST API-nya external,
nggak ya, berarti?
Enggak, basicly nggak.
Karena si Tauri sendiri,
tapi uniknya gini,
jadi si Tauri itu menyediakan satu plugin
VATS sendiri. Jadi kan
kalo di Node.js sama browser kan ada
VATS tuh. Nah, si
VATS yang di webview-nya itu
nggak bisa dipake, pasti keblok sama issue
cost dan lain-lain.
Harus lewat server-nya juga ya?
Rapper cache-nya aja
dari Node-nya.
Oh, ada wrapper-nya.
Nice.
Kecuali kalo misalkan butuh
API-nya butuh
yang...
atau payment gateway.
Pake payment gateway kan harus ada di server kan?
Nah, itu harus ke REST juga tetep ya.
Kalo untuk security sendiri gimana?
Kan misalnya kanan ini udah
di-bundle dan bisa akses low-level
seandainya di library Node,
library Node yang
dipakai, ada ke
Tomb Miner-nya segala macem atau
something itu, dia bisa
lebih akses ke...
kalo di browser kan ada
permission-nya yang harus dilewatin,
ada layer security-nya dari call center si browser
sendiri. Kalo dari kita
MB di Tauri,
layer itu tetep masih ada
buat gimana?
Nah, baru mau tanya itu kebetulan sekali.
Handle keamanannya itu gimana sih
dari Tauri ini?
Atau apa juga diterapkan?
Diterapkan saat ini.
Nah, di Tauri versi 2
itu mekanisme
security-nya udah lebih bagus lagi.
Jadi mereka ada permission. Sama kaya
di 0 kan udah harus ada permission.
Per akses ke...
misalnya kita mau akses file nih
di system, di OS lah.
Itu kalo permission-nya tidak di allow
atau tidak di enable, itu gak bisa.
File system-nya gak kebuka?
Kamera, bluetooth, file system...
Kalo front-end lah, itu yang kaya apa, lokasi gitu?
Geolocation, blablabla?
Nah, masalahnya
untuk yang
fitur-fitur yang spesifik seperti
lokasi dan lain-lain, itu kan tergantung dari
web view tadi kan?
Oh, berarti kan dia punya-nya browser ya?
Iya, betul.
Tapi di Tauri sebenernya gak berusaha
langsung dengan dia, karena dia cuman
pinjem web view-nya
dia render,
dipake untuk ngerender aplikasi front-end-nya
tadi.
Cuman...
Jadi yang nge-handling-nya dengan logic web
kan, itu maksudnya kaya kita nulis
navigator, dot, permissions, blablabla
gitu?
Secara di kawali front-end ya?
Tapi di Tauri sendiri kita bisa
manipulasi sih, untuk yang
kalau misalnya mulai dari Tauri versi
1.7 atau 1.8
seingat saya itu, kita bisa
manipulasi permission dari
web view. Jadi misalnya
di spesifik untuk Windows
ada efek-efek
transparan, atau ada
permission yang... kalau di Chromebase
kan kita bisa set parameter
tertentu ya, kalau dari...
kalau kita akses dari CLI atau terminal
kan? Parameter apa,
yang fitur apa, yang mau dibuka kan?
Kaya di Chromeconfig gitu loh.
Chromeconfig, itu kan
bisa di... kita bisa passing
CLI atau parameter.
Tauri bisa di sana.
Tapi berarti nggak semua
kan ya? Kaya misalnya kalau yang
kaya geolocation, kamera
yang sensitif gitu kan, kalau browser,
kalau web view kan, tetap harus dari
user action kan?
Bisa di-overradate dari Tauri sebenarnya.
Bisa.
Cuman nanti yang
berurusan dengan OS-nya sih Tauri juga.
Jadi kadang-kadang, kalau misalnya
kalau di Apple
kan ada istilah notarization kan?
Jadi si aplikasi binary-nya itu
harus diidentifikasi
sebagai dari developer
yang terpercaya kan?
Di Windows juga sama
kalau misalnya nggak di notarisasi
kayak gitu, di notarisation,
biasanya kan bacanya malware nanti ya.
Dari si Mac dan si Windows Defender
biasanya ya.
Ini beneran bisa di-bypass?
Dari web API
permission?
Kalau elektron mungkin ya, tapi kalau
Tauri belum tentu sih.
Karena kayak tadi, contohnya yang
patch aja, patch harus pakai rapper-nya
Puja Tauri.
Tapi ini kan tadi
front-end-nya pakai React
ya bacanya Tauri atau
Raskan ya. Tapi denger-denger
menyesal pakai React
di Tauri, kenapa itu?
Boleh cerita.
Apakah ada yang
Bisa jadi skill issue sih.
Kenapa?
Gimana?
Jadi
pada waktu itu ada
dua pilihan sesuai antara
React atau Solid.
Cuman issue terbesar
kenapa menyesal pakai React
adalah di Stack Management sebenarnya.
Kalau di
contohlah
ketika kita mengembangkan satu
aplikasi desktop, kan
misalnya di VB, ada event
on-init atau on-window open
misalnya ketika event-nya, window-nya
pertama kali terbuka, kita
harus lakuin apa dulu nih?
Apakah mau manggil data dari
database atau apa?
Misalnya di Tauri
kita mau
mengkustomize
user interface-nya.
Jadi benar-benar frameless atau
kayak gimana itu kan harus di event on-init kan
ketika window-nya dibuka.
Masalahnya, React itu sendiri
kita bisa pakai use effect
ketika
buka aplikasinya pertama
kali dan menginjek kode
Tauri untuk memanipulasi
hal-hal tersebut.
Cuman kadang-kadang kalau engineer-nya
lelai, use effect itu
kan kalau kita masuk ke
bagasian.
Ya, kalau dikasih
array definition kan terus-terusan tuh.
Terus-terusan ya
ngerender.
Itu sempat kejadian beberapa kali
dan termasuk ketika integrasi dengan Nuts
ini yang jadi isu utamanya.
Kalau di Solid
di Solid itu ada satu event
namanya on-window-up
sama kayak di standard web kan
ada on-document reload
on-document load dan lain-lain.
On-document ready. Blah-blah-blah.
Hmm.
Jadi
semi-skill issue, bukan skill issue sih
familiarity dengan cara kerja
React Hook.
Yang opinionated.
Tapi berarti bebas ya mau pakai swell?
Mau pakai apa ya?
Manila juga bisa kan?
Bisa.
Mau pakai web component juga bisa.
Hmm.
Kalau yang multiple
Kalau yang
Kang Aris ada masalah nggak
perkara virtual dom-nya React yang perkara
rendering issue?
Ya, mostly yang masalah itu
yang tadi yang saya mention ketika
integrasi ke
nas. Jadi
kadang-kadang
apalagi kan React itu kalau
kita set ke strict mode
dia akan ngerender double
di development mode itu.
Jadi satu data
ketika di-load
datanya dua kali. Nah sedangkan yang
real-time ini, data yang real-time dari
dari websocket
mereka itu nggak boleh tuh.
Nggak boleh ada duplikasi.
Sekarang kan
datanya sensitif kan ke
uang orang lain ini kan?
Yes.
Kalau misalnya itu terjadi
datanya invalid.
Terus
memori pun bisa jadi numpuk lagi.
Jadi data-data yang banyak
dari streaming websocket
ke-render dua kali
di front-end itu yang
menjadi menyebabkan memori.
Salah satunya itu.
Oh gitu.
Wah menarik ya. Ini
pakai React dan Next. Gapain pakai
Next? Kita nggak butuh server kan.
Servernya udah ada.
Jangan overkill ya.
Ada yang
Mas ini
dia pakai
next.js, pakai
Tauri juga. Oh ya?
Berarti ada next servernya
juga. Servernya jalan
di... Nggak jalan kan?
Nggak. Next.js kan bisa
overkillnya statik kan?
Oh ya ya ya ya.
Kalau statik mah bisa aja.
Bisa bisa.
Itu makes sense juga kalau emang
statik. Kayak kan misalnya orangnya udah
ternyur jago Next.js.
Developer-nya maksanya di tim.
Ternyur ke statik aja ya.
Ternyur jalan upgrade ke React 20
atau ganti?
Belum tau.
Tergantung
tergantung ini. Cuan-nya
dari kliennya.
Dicuan rewrite.
Rewrite.
Ini kliennya apakah berkesinambungan
ada maintenance
mode-nya
atau udah jadi udah selesai
gitu. Nggak ada upgrade. Nggak ada apa.
Ada retainer aja. Nggak.
Jadi sebenernya dari
Zero One Group sendiri itu
membantu mendevelop dan ada
transisi dari timnya yang akan
dibuat sendiri in house.
Oh mereka punya tim ya?
Jadi kan itu alasan pertama
karena memakai teknologi web ya.
Supaya nanti bisa di maintain secara
mandiri di sana.
Ada
proses transisi ya. Berapa kalamannya
transisinya kita bantu
diluar yang
ini ya dari kita
persiapan deployment.
Dua sampai tiga bulan.
Itu transisi untuk
teman-teman in house-nya
bisa produktif.
Jadi kalau ditanya apakah mau diganti ya?
Tergantung kami dipanggil
ya apa nggak.
Sama-sama.
Atau ada yang lain disini
yang mau dibuatkan desktopnya, Pak?
Layak nonton developer semua.
Salah market.
Salah market ya.
Salah market.
Ada.
Pernah apa?
Pernah punya pengalaman itu
tapi pakai elektron, tapi kasusnya
kebutuhannya
karena butuh untuk buat
aplikasi yang jalan secara offline.
IOT.
Tapi nggak, di laptop.
Jadi untuk sales.
Ya sales.
Jadi dia jualan
itu loh
untuk water treatment.
Jadi barang-barang water treatment itu
kliennya US based.
Dan kebutuhannya
adalah data
datanya itu
semua soal produk, spesifikasi
harga segala macam itu adanya
di online.
Saat si sales itu keliling
itu belum tentu ada internet.
Dan jangka itu kan
2015-2017 itu
internet itu
bukan kayak 4G.
Belum ada 4G jaman itu ya.
Belum ada Starlink.
Belum ada Starlink.
Jadi untuk
bikin invoice
atau purchase order itu
si sales yang jalan itu
dari kantor ke kantor itu
ya nggak bisa kan
untuk langsung harus online terus kan.
Jadi kita buat kan
aplikasinya pakai elektron.
Masih ingat saya teknologi
stack-nya itu di belakang back bone
dan underscore.
Back bone.
Nah back bone JS.
Jadi
saat dia di kantor
dia bisa pencet facts to download
semua produk segala macam.
Udah selesai dia pergi jualan
bikin purchase order segala
macam. Nanti setelah balik kantor
dia upload, dia sync lagi.
Purchase order itu di sync ke server.
Itu gunanya.
Makanya awalnya
kenapa saya tertarik menanyakan
kenapa pakai desktop application
pengen tahu kasus
apa sih yang ada di luar sana gitu.
Kalau yang di kasus saya ya
mau nggak mau desktop application
karena nggak ada internet offline.
Offline mode.
Dan di kasus itu sebetulnya
kan jumlah kayak nggak
di open untuk public kan public
nggak bisa sembarang download aplikasi itu.
Cuma intrakompany kan.
Intra.
Hanya sales aja.
Ada sales yang premis
untuk laptop perusahaan.
Total user-nya 50.
Nggak nyampe.
Mau seberat apa juga nggak apa-apa.
Figuratively
misalnya itu juga laptop
yang penting jalan kan.
Laptop company speknya
sudah sama semua Windows 7
kalau nggak salah.
Windows 7 sudah sama semua.
Jadi mereka tinggal download
jualan, upload.
Udah selesai.
Jaman sekarang ada namanya tuh
nama gimmicknya Local First.
Local First.
Iya benar-benar.
Local First.
Local First.
Walaupun usage-nya agak beda sih
cuma secara prinsip
sama. Sekarang ada namanya
gimmicknya.
SSR, SSG ya kan.
Jaman dulu semua SSR
cuma belum ada namanya.
Sekarang ada namanya.
Gimmick. Betul.
Electric SQL tuh Local First juga.
Enak bisa sync di belakang.
Ada sync engine.
Jadi kita bikin aplikasi web.
Kalau lagi offline dia akan
tetap bisa dipakai.
Nanti begitu online dia akan sync lagi.
Tapi sekarang sudah bisa kan
pakai service worker misalnya.
Kalau misalnya dipaksa banget nih
apa harus pakai desktop application
segala macam.
Pakainya service worker
dan Chrome-nya sudah
khusus gitu ya, intranet.
Mungkin bisa.
Mungkin lebih ke pertanyaan mas Ivan itu
kenapa pakai arah desktop?
Karena nature-nya aplikasi
trading itu, most of yang
big names-nya itu pakai desktop.
So ada request
bahwa kita mau mengejar
those big names.
Untuk bikin desktop app
yang performance.
Standard industri lah ya. Maksudnya industri si client itu.
Biasanya trading kan
tidak buka ini.
Kalau misalnya ada, mungkin
perusahaan tertentu yang pakai berbasis web
gitu kan, ada.
Cuman yang kebanyakan orang pakai
untuk trading itu biasanya desktop.
Bisa.
Dan itu mungkin
nature-nya orang-orang
meta trader.
Meta trader.
Dan lucunya sebelum kami
rilis, lucunya adalah sebelum kami rilis
competitor itu juga rilis
yang sama.
Berarti ada link nih.
Ada link.
Kalo itu dibelom insider.
Insider nih.
Yang lagunya ijo.
Yang lagunya ijo.
Ijo.
Kayaknya tau nih.
Oke.
Seminggu sebelum rilis ya.
Duluan mereka.
Duluan mereka.
Wah sayang sekali.
Dilangkahin.
Dan untuk, oh ya
dan by the way setiap nambah untuk desktop
kami juga gak hanya ada project
yang pakai tower ya. Jadi
sekarang juga lagi bikin
flutter desktop.
Ada juga kebutuhannya.
Bahkan untuk manage ini.
Keuangan juga. Jadi yang sesuatu yang berhubungan
dengan keuangan ya, itu
kami menggunakan flutter.
Mintanya desktop. Dan biasanya ini, soalnya
buat toko-toko biasanya.
Toko-toko yang ada di
penjuru daerah. Nah itu
mungkin juga yang menjawab mas Ivan tadi.
Kenapa kok request-nya.
Requestnya desktop. Karena gak semua
orang bisa ngerti web.
Buka browser, ngetik alamat.
Dan literally daerah.
Dan itu untuk meng-manage tentang
budget dari perusahaannya.
Jadi dia punya perusahaan, punya
cabang itu lebih dari 100.
Di sana.
Dan setiap cabang itu
dipegangin berapa rekening.
Dan itu menggunakan flutter desktop
untuk maintain rekening-rekeningnya.
Dan memang
ada keuntungannya pakai application
desktop application begini. Karena
dari sisi
client. Maksudnya client
host, computernya
client itu bisa di-lock
hanya application itu yang berjalan.
Ada jelas bisa seperti itu.
Jadi begitu dia restart computer,
langsung terus langsung start up.
Muncul itu. Muncul application itu
gak bisa di-click mana-mana lagi. Udah
itu aja.
Istilah kerennya itu kiosk
kiosk ya kiosk.
Dan itu dikasih tahu kalau
desktop online.
Tergantung marketnya berarti.
Oh enggak, tadi yang
kalau yang di flutter itu dikasih tahu
dia lagi online apa enggak.
Oh, ada status
offline online-nya.
Status offline online-nya itu kalau mau tahu.
Kamu tetap bisa kerja.
Saingannya desktop application ini
kayak vb.net kali ya.
Kalau yang di csharp.net
yang di visual studio
yang produk basenya
visual studio.
Ya dot net.
Csharp
bisa bikin application ya.
Csharp, java, java masih kan ya.
Dan lucunya kita tuh
mengandakan java ya Kang Aris. Sebenernya.
Iya. Jadi aplikasi
mereka juga ada
mereka juga ada existing app
yang versi lamanya. Jadi
memang ngebikin
versi yang tower ini
untuk mengandakan aplikasi lama sebenernya.
Itu
peningkatan performanya sampai 500 kali
enggak?
Wah, wah, wah.
Sudah.
Nah, ini ada Mas Alif tuh.
Dia lagi bikin aplikasi desktop juga
pake Tkinter. Oh, luar biasa ya.
Uniknya.
Tkinter ini apa?
Python.
Menarik-menarik ya.
Ternyata masih banyak kebutuhan ke arah sana ya.
Tauri ke arah mobile.
Iya. Yang baru ya. Versi barunya ya.
Bakal ke mobile. Versi 2.
Versi 2.
Itu udah ditodong tuh. Untuk jadi
pembicara Rush Meetup 2025.
Eh, di Indonesia ya, Dem?
Ada ya?
Tinggal di-invite ya.
Tinggal di-invite. Itu udah siap kayaknya.
Itu buktinya ada. Udah ada ininya.
Oh, sekarang berarti Mas Rin
R-nya tuh udah ganti
Rush ya. Dulu kayaknya recent ya.
Atau reskrip?
Reskrip.
R-nya udah ras.
Itu ada katanya.
Lagi dimasak.
Lagi cooking.
Mantap.
Terus, ini ada pertanyaan bagus nih.
Webview yang digunakan itu default
browser atau built-in browser OS?
Apakah pernah mengalami styling yang tidak disuper
di Windows atau Mac?
Itu salah satunya kan ya?
Dan udah stop dengan Tailwind sih sebenarnya.
Oh,
soft dengan Tailwind ya.
Karena kan Tailwind sendiri kan ada
preset-nya dulu ya. Jadi
semua style bawaan browser itu
di standarisasi dari Tailwind.
Kalau kita pakai Tailwind versi 3 kan
ada import Tailwind-based.
Beberapa ya, Tailwind-based, komponen
utility-nya. Nah, Tailwind-based itu
kalau gak salah, saya ingat saya,
itu based on normalizer CSS.
Normalize.css.
Bukan
punya namanya depannya T sampe hafal.
Kalau katanya
semua akan drast pada waktunya,
kalau di sisi CSS semua akan Tailwind
pada waktunya.
Oh, enggak. Cuma tadi kan pertanyaannya
misalnya browser-nya gak support.
Ada apa? Syntax. Oh, iya.
Kalau apapun yang masuk Tailwind,
itu yang udah baseline ya.
Kecuali Tailwind yang ada,
bisa kita aktifin yang experimental-nya.
Ya, bisa.
Nah, cuma maksudnya kalau udah masuk.
Bukan ini desktop.
Kalau udah masuk kesitu, ya berarti kan
itu gimana? Itu skill issue
orang front-end-nya juga kan. Maksudnya CSS
kan bisa ada media query
app support-nya juga kan buat
support. Cuma kan
baling lagi, itu udah stop dengan
minimum requirement
OS-nya. Versi berapa dulu?
Oke, oke. Menarik ya.
Ada cerita-cerita menarik lagi gak
nih seputar
development pake Taury? Cerita horror.
Ada cerita horror lainnya gak?
Cerita horror.
Ada, ada
sesuatu lagi.
Yang issue
multi-monitor.
Semoga kliennya gak
monitor, ya.
Oh, i see. Gimana tuh?
Jadi
kalau klien yang kemarin itu
mereka minta ada
requirement untuk multi-monitor.
Jadi, pengen
behavior-nya itu sama kayak kita
pake Google Chrome atau Chromium-based
browser Edge dan lain-lain.
Ketika kita tarik satu tab
misalnya kita buka multi-tab nih.
Kita tarik satu tab, kita gisar ke
monitor yang lain. Bisa dibesarin.
Buka juga. Nah, sedangkan
kan yang WebView
yang ini kan cuma satu kan sebenernya.
Bisa untuk dikasih WebView.
Jadi satu tab atau satu
window baru dengan
tab yang masih sama.
Challenge-nya disana.
Tabnya harus sama.
Tabnya.
Itu dia. Challenge-nya harus
bisa sama. Jadi, kita
nge-track tab tersebut.
Kemudian
dibesarin sampai layar satunya gitu.
Sampai layar satunya, sampai layar
lain. Tabnya harus sama.
Dan bayangin itu
data real-time yang lagi jalan.
Oh, wow.
Graphic apa lagi ya?
Enggak. Kita nggak pakai
local storage.
Kita pakenya sqlite.
Oh, sqlite.
Jadi, disimpan dulu ke database
gitu, datanya yang real-time.
Jadi, untuk
state-management-nya
kita pake, kami pake
Justan waktu itu. Jadi, React, Justan
untuk state-management.
Tapi Justan ini dimodifikasi,
diintegrasikan dengan sqlite yang
binding via Tauri tadi.
Sehingga kan
karena dia ada di sqlite,
mau dia berapapun
window-nya, dia tetap satu.
Ya, sumbernya satu ya.
Ya.
Wow.
Sqlite di production, brother. Kami menggunakan sqlite
di production.
Di lokal first.
Di lokal.
Ya, lokal first. Ya, electric sql
salah satunya. Terus sqlite juga
salah satu tools yang lumayan banyak dipakai untuk
mencapai menuju kesana.
Karena bisa kecil kan ya.
Satu file kecil, nggak perlu
server.
Eh, cuma sedikit tuh
masalah sqlite itu.
Tiga orang. Tapi
close contribution sih. Nggak buta
contribution.
Dan sekarang ada yang rewrite keras ya.
Dan sekarang ada yang rewrite keras kaya sqlite-nya.
Resta Viro.
Resta Viro. Kenapa?
Semua di rewrite
semuanya. Gila.
Iya, ini developer Rust kok nggak kreatif
gitu bikin sesuatu yang baru ya.
Dia malah nyari-nyari kayak ini ya.
Kayak band itu, band cover
aja nyari yang...
Cuma beda instrument doang ya?
Iya, cuma
bedain aransemen
dan lain-lain.
Ide ini, ide yang udah ada.
Ada yang tanya tuh
Mas Riza, Tauri versus Wails.
Kita sempat explore Wails nggak, Kang Aris?
Kayak perkara majority ya?
Sempet
tapi nggak jadi pakai. Karena
Wails kan golang tuh.
Konsepnya sama dengan Tauri. Pakai WebView
Bawaan OS juga. Tapi
ekosistemnya ada namanya
Wails.
Oh, ini Wails.
Ya.
Walaupun starnya 25 ribu ya.
Tapi
komitnya
intinya lebih-lebih ini.
Lebih populer Tauri
pada waktu itu.
Yang mana yang duluan muncul? Tauri apa Wails?
Tau nggak?
Seingat saya Tauri duluan.
Tauri duluan.
Tapi kan berarti practical consideration
aja kan tuh. Kalau masih di timnya
ada yang cukup pede dengan
Rust, ya pakai Tauri.
Tapi kalau di timnya nggak ada yang pede sama Rust
lebih pede sama golang
ya berarti make sense pakai Wails.
Kalau sekarang iya kayaknya.
Kalau sekarang iya kayaknya.
Jadi kalau ada yang udah familiar
sama gue, sama JS, udah pakai Wails
aja. Cuman waktu itu
ini ya, Wails itu
tidak terlalu
kami dengar. Dan kami baru cari pada
saat itu.
Jadi nggak. Oh, ini ya Wails dah ini ya?
Jadi kayaknya nggak mau ambil
risiko. Nggak mau ambil risiko
tentang permasalahan yang nanti
dihadapkan jadinya.
Tapi for now, karena cukup populer
banget ya 25.000 star.
Oh itu ada Wails 2019 ya?
Mungkin lebih ke Rust ya.
Berarti Rustnya yang lebih populer
gara-gara itu kali.
Kalau ada yang bilang.
Tapi banyak Wails itu
lebih besar dari Tauri sih.
Oh pernah nyoba kan?
Pernah. Yang TOC itu kan
sempat saya conference juga pas ke Wails.
Oh ya, berarti
at the time ya.
Tapi nggak tahu sekarang.
Ini cara kerjanya sama. Maksudnya dia pakai
webkit yang di OS
juga gitu. Sama.
Sama dengan Tauri. Sama ya.
Cuman bedanya di back-end
land use-nya aja ya.
Lebih banyak power di Tauri.
Kalau ecosystem
kan Tauri itu ada dua
sisi. Jadi library
untuk JS-nya sama
library untuk plugin untuk
di Rust-nya. Jadi kalau kita mau pasang satu
plugin itu nggak bisa salah satu. Harus
dua-duanya ada.
Dan itu udah disediakan.
Banyak kan Tauri. A-star-nya 87.000
yang ini 25.000.
Tapi gede juga
anyway gitu kan.
Waktu itu nggak tahu berapa.
Konsiderasinya bukan
cuman star kan pastinya kan.
Harusnya nggak hanya
star.
Star kan bisa dibeli.
Cuma ada joki star.
Joki star GitHub.
Bikin second account gitu
ya.
Kita bikin ya nanti.
Jangan-jangan ada yang ternak account gitu.
Buat nge-star.
Orang lain kan
review Google Maps ya.
Toko atau apa biar rame ini jualan.
Star GitHub.
Jadi
jadi profesi baru di ini ya developer ya?
Ternak account GitHub.
Ternak account GitHub.
Ada-ada aja.
Oke-oke.
Ada banyak yang komen
Dioxus tuh. Dioxus.
Dioxus.
Dioxus.
Frameworks, pakai
web assembly kah?
Oh iya.
Iya iya.
Kemarin minggu lalu sempat liat.
Sempat ada yang kasih tahu.
Fullstack ya. Fullstack framework.
Tapi
bahasanya Rust.
Kalau ini kebalik.
Ini bikin
web pakai Rust. Jadi bikin HTML-nya
pakai Rust.
Oh ya itu target targetnya apa sih?
Developer Fullstack
atau Backend yang beneran nggak mau
JavaScript kan?
Iya. Ini buat anak Backend.
Wah.
Oke. Menarik-menarik.
Rust semakin jaya ya.
Semakin banyak ya.
Rin aja tuh udah
ini ya. R nya itu react, recent sama
Rust. Oke mal. Nya kemana?
Oke mal.
Kan bukan R.
Ya bukan R.
Udah terwakilkan sama
R ya. R nya rewrite.
R nya rewrite. Oh.
Bukan. R nya itu
rm-rf.
-rm-rf
-rm-rf. Nah.
Tadi sih udah sempat
dibahas ya.
Mas Arya. Udah sempat dibahas
selama pakai Taori berapa banyak kode
Rust-nya. Tergantung aplikasinya
kalau frontend
apa? Yang fokusnya
ke frontend nggak terlalu banyak ya.
Tapi kalau fokusnya ada backendnya
ya mau nggak mau harus Rust ya.
Ya. Terutama yang dari sisi
security sih. Kalau di kasus kami ya.
Hmm.
Yang bagian-bagian
yang berhubungan dengan apa tadi datanya
di encode ya? Di
enkripsi dulu. Ya enkripsi.
Dan. Dari sisi Rust ya.
Dari sisi Rust. Dari sisi Rust.
Eskilatnya pun di kami
enkripsi sih. Jadi data yang ada di eskilat
itu di kami enkripsi dulu untuk
data-data yang sensitif. Kecuali data
trading view ya. Gak harus.
Yang itu sifatnya publik ya.
Exist aja biar ya. Boleh dispil keynya?
Private keynya?
Kayaknya udah diganti klien sih.
Yakin.
Yakin.
Secret-nya secret.
Secret-nya adalah? Secret adalah
Admit-admit.
Iya.
Banyak ini sekarang ya. Tools-tools
di S juga banyak yang ditulis dengan
Rust ya. Ada roll, kemarin roll down ya.
Roll down.
Terus di S juga
buat tanya si apa?
Buat tanya si apa?
Fit. Keluarga besar fit.
Ya. By dance pakai
RSPAC.
RSPAC. Oh iya RSPAC juga.
Itu-itu ya aku
pernah ketemu sama pembuatnya
dulu waktu di CTJS tahun lalu
di Singapura dan
itu sebenernya project internal mereka
untuk mempercepat itu
yang namanya compiling-compiling
bundling dan kawan-kawan.
Bundling.
Tapi res compilingnya
masih...
Wah itu gimana kang Aris pengalamannya.
Walaupun incremental ya.
Kita-kita tetap ya.
Gimana?
Subrasingly di versi semenjak
Rust compiler versi 1.8 itu
udah gak terlalu lama kayak dulu sih.
Oh. Sudah lebih cepat ya?
Sudah
lumayan lebih cepat. Gak setir lama yang
1.7 ke bawah.
Oke.
Tapi waktu itu, nah ini juga ada issue horror nih
di
dilemanya tuh mau cepet
compile tapi
paribilitas Tauri-nya masih bermasalah.
Jadi ada satu library, satu dependensi di Tauri
yang dia masih maksimalnya
Rust 177.
Sorry, Rust 175. Sedangkan
waktu itu kebanyakan
dependensi yang lain itu
membutuhkan Rust 177.
Hmm.
Ada dan ada breaking
changes di sana.
Oke.
Terus Solve-nya gimana?
Ya Aris mengorbankan
salah satu
merpaniin salah satu yang
yang kecil, yang dependensi
175 itu
di take out, diganti dengan yang lain.
Oh.
Oke. Dan itu sekarang masalahnya
client.
Kecalanya dibayar lagi.
Kecalanya dibayar lagi.
Masalah zero-one lagi.
Kalau disuruh naikin
ke 1.8, bisa
dibayar lagi.
Oh, hi.
Itu jadi etrogen horse ya.
Zero-one group was here.
Oke, oke, oke.
Iya.
Ada pertanyaan-pertanyaan
menarik lagi. Tauri kapan
pakai Deno?
Nggak. Aduh.
Deno
cuma bisa JS,
saya setuju.
Ya, dibikin pakai apaan, bebas.
Ya. Oh.
Mungkin nanti ada itu, ada compiler
dari JS ke Rush.
Jadi bisa tetap pakai yang bisa pakai Tauri.
Nah, udah yang gampang, mah. Ada yang namanya AI.
Code Assistant.
Eh, tapi ngomong-ngomong Deno sama
Rush sama Tauri itu ada yang
menarik juga sih.
Karena core VHS-nya
si Deno itu ditulis
dengan rahas.
Jadi mereka tuh ada, namanya
corelib, Deno itu. Corelibnya Deno.
Kita bisa embed tuh di Tauri.
Istilah di Tauri itu sidekick.
Jadi kalau misalkan kita mau jalanin script
TypeScript, kode TypeScript atau JavaScript,
itu bisa langsung.
Misalnya mau bikin aplikasi kayak
nggak perlu di-transfile.
Mau bikin editor
atau misalkan buat
playground JavaScript TypeScript,
di dalamnya udah ada VHS engine-nya,
itu bisa banget tuh di Tauri,
kombinasi Tauri dengan corelibnya
punya Deno.
Oh, menarik ya.
Jadi kayak ada server gitu ya.
Kayak ini, mas.
Ada aplikasi namanya
runjs.app domainnya tuh.
Cuma kalau
runjs.app itu, dia
pakai elektron.
Wah, unik.
JavaScript playground for your desktop.
Ini maksudnya apa nih?
Oh, buat aplikasi desktop
buat jalanin JavaScript gitu.
Runtime JavaScript bisa
diinstall di desktop.
Jadi satu aplikasi yang
buat ini aja, kayak...
Runtime JS aja kan itu?
Kayak apa?
Interface UI
buat runtime JS.
UI buat runtime JS.
Oh iya, buat eksekusi
aplikasi
kode JS di desktop
kan ya.
Ya, kalau bikin snippet atau mau coba-coba
dulu tanpa harus bikin file baru.
Tanpa harus pakai browser.
Kalau PHP-nya,
kalau PHP-nya, saya suka pakai
3v4l.
3v4l.
3v4l.
3v4l.org.
3v4l.org.
Jupyter Notebook, tapi JS.
Ini bukan, kalau Jupyter Notebook kan dia web
kan ya. Apa?
Coba, bisa...
3v4l.org.
Tapi ini online ya.
PHP itu.
Jadi
saya suka pakai ini untuk...
Oh iya, ini kayak Jupyter Notebook ya.
Bisa support,
check, misalnya PHP versi
berapa, gitu.
Bisa di-check di sini.
Jupyter Notebook.
Tapi, apa?
Ngomongin Jupyter Notebook, katanya
Jupyter Notebook udah support deno ya.
Runtimenya, wow.
Jadi bisa pakai
itu, Jupyter Notebook
untuk javascript ya.
Oh iya.
Bisa, bisa, bisa.
Baru ditulis beberapa hari lalu.
Oh, baru?
Oh, baru banget.
Menarik.
Lagi nungguin ini nih,
"Apa tau ada yang bikin
transpile javascript atau typescript
jadi RAS script?"
Ya kan, yang tadi kan?
Ya itu tadi, tanya AI.
AI ini kan?
Bukan.
Nggak, jadi
kita nulisnya di javascript atau typescript
jadi RAS script.
Dikompile menjadi RAS.
Transpile jadi RAS, terus tinggal dijalani.
Oke.
Ah, itu.
Lakan, kan ada yang nulis ini kan?
Yang bisa
nulis, eh, ada yang bikin
bubble php kan? Jadi
JS di buat, eh, salah.
Nulis php tapi jalannya
di JS.
Nulis php tapi jalannya di JS?
Iya kan, di transpile.
Oh, oke.
Kan ada bubble php?
Iya, iya, iya.
Bubble RAS.
Bubble RAS.
Iya, ini, ini contohnya nih.
Kalau mau jalanin
Jupyter Notebook
tapi menggunakan rantainya
di javascript apa ini?
Deno mengurus dunia, dunia javascript ya.
Hebat ini, Deno.
Sebelumnya Note.
Sekarang
Deno.
Kebalikannya, recent.
Memang recent dikompile ke
oh iya
benar, dari javascript ke OKML ya.
Benar, benar, benar. Kebalik ya.
Oke.
Kalau gitu, terima kasih banyak
buat Mas Donny dan Mas Aris
buat cerita-ceritanya.
Terima kasih.
Sangat mengapresiasi pengalaman-pengalaman
di production seperti ini.
Semoga kliennya sama banyak.
Oh iya, lupa.
Saya juga sanggur. Sanggur.
Terima kasih. Mudah-mudahan nanti
kalau ada proyek-proyek yang menarik lagi
saya akan share-share lagi.
Amin.
Proyeknya tambah banyak bervariasi
jadi bisa sharing juga
berbagai teknologi yang menarik-menarik ya.
Oke, mungkin untuk malam ini
segitu dulu. Kita ketemu lagi minggu depan.
Ada pesan-pesan dari
Mas Donny dan Mas Aris.
Mas pesan sponsor hiring atau apa?
Siapa tahu?
Terserah. Hiring gak sih?
Sayangnya kami belum hiring ya
di waktu dekat ini.
Kebanyakan hiring kami itu adalah
selalu menyusup ke sosial media.
Jadi kebanyakan close hiring.
Jadi kalau teman-teman
saranku adalah tolong
walaupun lagi belajar, coba untuk
stand out, berdiskusi
atau berbagi di sosial media.
Karena dua hiring terakhir kami
itu langsung dari
sosial media. Jadi dari linkin
satu, sebenarnya
dua-duanya anak twitter ya, anak ex
disana. Jadi approach-nya
langsung.
Kayaknya tahu ya.
Kayaknya tahu siapa yang ini.
Kami mulai mencari influencer-influencer
untuk bersiap
dengan zero one.
Tapi lebih terlepas dari itu
gak apa-apa, saling share
aja di internet. Jangan takut
kalau misalkan ada yang usil
ada yang usil di internet.
Ada yang netizen ya.
Itu udah biasa lah ya.
Tapi kalau misalkan
teman-teman disini
lagi belajar teknologi
atau sebagainya,
sosial media itu jadi salah satu
tempat untuk belajar dan
kalian bisa berbagi juga disana.
Jadi jangan takut. Dan itu adalah salah satu
cara untuk di-recognize
sama
aku Kang Aris.
Nah, calon employer.
Mas Aris gimana?
Ada yang mau ditambahkan atau disampaikan?
Gak ada sih. Paling buat teman-teman yang
mau diketahui, jangan
bosan di guru
kelas compiler aja.
Oke, cukup ya.
Segitu aja untuk malam ini. Terima kasih banyak
sekali lagi buat Mas Joni, Mas Aris
dan teman-teman yang udah ikutan
diskusi.
Bisa lagi.
Belum update ya.
Belum ada sekoya.
Sama atas kita, Mas Joni.
Gak bisa.
Udah gak bisa.
Gak bisa. Ini juga gak bisa.
Ini pakai kamera external ya.
Oke, segitu aja. Terima kasih
buat semuanya. Kita ketemu lagi
lain waktu. Selamat malam.
Selamat sihat. Bye bye.
Deskripsi asli dari YouTube
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://ksana.in/ngobrolinweb Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.
Episode Terkait
22 Jan 2025
Ngobrolin LocalFirst
Episode ini membahas tentang paradigma Local First dalam pengembangan aplikasi modern. Diskusi dimulai dari pengalaman m...
3 Jul 2024
Ngobrolin Elixir
Episode ini membahas tentang Elixir, bahasa pemrograman fungsional yang berjalan di BEAM (Erlang Virtual Machine), bersa...
11 Mar 2026
Ngobrolin Otorisasi
Episode ini membahas otorisasi (authorization) dan bagaimana ia berbeda dari otentikasi yang pernah dibahas di episode s...
Suka episode ini?
Episode baru setiap Selasa malam. Dengarkan lewat YouTube, Spotify, atau feed podcast favoritmu.
Memuat komentar dari GitHub Discussions...
Jika komentar tidak muncul karena ekstensi privasi / adblocker, kamu bisa berdiskusi langsung di GitHub Discussions .