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