EP 109

Ngobrolin Desktop App - Ngobrolin WEB

Bagikan:

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 Koreksi

Episode 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
Transkrip Bantu Koreksi

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!

Langganan Sekarang

Episode Terkait

Ngobrolin Dokumentasi - Ngobrolin WEB
EP 143

10 Sep 2025

Ngobrolin Dokumentasi - Ngobrolin WEB

🗣️🕸️ Selasa malam waktunya #ngobrolinWEB! Mari membahas tentang berbagai alat untuk membuat dan menampilkan dokumentas...

Ngobrolin Pengalaman Frontend @imrenagi -  Ngobrolin WEB
EP 108

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. ...

Ngobrolin Video Player - Ngobrolin WEB
EP 115

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. ...

Komentar