Create a Desktop App With JavaScript & Electron

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 มิ.ย. 2024
  • In this video, we will create a cross-platform desktop app to resize image dimensions, using JavaScript and Electron.
    💻 Code:
    github.com/bradtraversy/image...
    To package your app up for different platforms, you could use one of the following:
    github.com/electron/electron-...
    www.electronforge.io/
    ⭐ All Courses:
    traversymedia.com
    💖 Show Support
    Patreon: / traversymedia
    PayPal: paypal.me/traversymedia
    👇 Follow Traversy Media On Social Media:
    Twitter: / traversymedia
    Instagram: / traversymedia
    Linkedin: / bradtraversy
    Timestamps:
    0:00 - Intro
    3:05 - Resources
    4:48 - Setup & Install Dependencies
    8:08 - Create Main Window
    12:45 - Common Boilerplate
    15:53 - Show Devtools
    18:10 - Using Electronmon
    18:54 - Adding the UI Theme
    21:26 - Content Security Policy
    23:00 - Menu Customization
    27:36 - Menu Roles
    30:00 - About Window
    31:53 - Start Renderer JS / Load Image
    38:15 - Get Original Dimensions
    39:40 - Using Preload
    44:28 - Show Output Path
    46:43 - Toastify Alerts
    50:58 - Form Submit Handler
    53:54 - IPC Renderer (Send)
    56:44 - IPC Main (Recieve)
    59:35 - Resize Image
    1:05:32 - Catch Message In Renderer
    1:07:32 - Make mainWindow Global
    1:10:22 - Test Production Mode
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 250

  • @georgebatsiashvili4160
    @georgebatsiashvili4160 ปีที่แล้ว +138

    Was 2017 when i first started learning programming and this channel was first in my list. After 5 years in my career as senior dev still coming back to this to learn new stuff. thank u so much ^^

    • @outsomnia
      @outsomnia ปีที่แล้ว

      mec daaxloebit mag dros daviwye swavla ;d

    • @jfimedia2638
      @jfimedia2638 7 หลายเดือนก่อน

      a familiar situation :)

    • @Alien-cr1zb
      @Alien-cr1zb 4 หลายเดือนก่อน

      Any advice second year cs and i feel lost

  • @davidemiozzi8589
    @davidemiozzi8589 ปีที่แล้ว +28

    spent a whole day trying to get things going, came here, and now everything is illuminated. Hands down the best programming tutorials around!

  • @zachjensz
    @zachjensz ปีที่แล้ว +323

    Finally I can use all my RAM

    • @akshaypendyala
      @akshaypendyala ปีที่แล้ว +9

      😂

    • @alirmaity1570
      @alirmaity1570 ปีที่แล้ว +2

      Hahahahahaha

    • @web3media843
      @web3media843 ปีที่แล้ว +3

      nice one hhhh

    • @andriyabu
      @andriyabu ปีที่แล้ว +5

      Cool 😎 just watch if any smoke coming ou

    • @agussatria7138
      @agussatria7138 ปีที่แล้ว +5

      hhahaha, all tools that are forced to cross platform always end up badly in terms of memory resources. I used to try cordova just made a simple to-do-list app, I ran it on my phone and my phone got hot in just 5 minutes lol

  • @nanohedron
    @nanohedron ปีที่แล้ว +7

    Thanks Brad. I don't think I'll ever be able to repay you for all the great training.

  • @amirnoorani5017
    @amirnoorani5017 ปีที่แล้ว +3

    This week I was working on Electron and suddenly I saw your video notification on my phone. As always thank you Traversy

  • @qwerty74
    @qwerty74 ปีที่แล้ว +5

    Absolutely perfect timing. I wanted to do something very close to this.

  • @alexpiano
    @alexpiano ปีที่แล้ว +5

    Thanks for this one, I have never tried electronjs, it was something I was kinda avoiding but I find it super interesting. And also it refreshes a lot the knowledge of node usage. Don't hesitate to make more ;)
    All the best from Barcelona

  • @jeroen.herczeg
    @jeroen.herczeg หลายเดือนก่อน

    Thank you for the tutorial!
    I like that you focus on electron and not on adding a front-end framework in the mix.
    It made the way you explained the main process, renderer and IPC communication very clear!

  • @mmvarma.p
    @mmvarma.p ปีที่แล้ว +3

    Dude, I am literally checking for latest Electron tutorial. Many people comment about this, but never thought it will happen to me. Anyway thanks buddy.

  • @amhas_tech
    @amhas_tech 9 หลายเดือนก่อน

    The best Electron tutorial on youtube 🙌🙌

  • @TheMvarnell
    @TheMvarnell 5 หลายเดือนก่อน

    Excellent work explaining this. I got a lot out of seeing how it all worked, and coding along. Really appreciate the time you took to make it!

  • @kerrykreiter445
    @kerrykreiter445 ปีที่แล้ว +2

    One of if not the best Electron videos on TH-cam. Nice job Brad!

  • @destinlee
    @destinlee ปีที่แล้ว

    Good times. Thanks as always Brad. Much love ☮

  • @kaxabekov1627
    @kaxabekov1627 3 หลายเดือนก่อน +1

    Best tutor for programming on TH-cam!!!

  • @iamcasted
    @iamcasted ปีที่แล้ว +2

    this is really what i was searching information for atleast a month now, thank you

    • @Gigusx
      @Gigusx ปีที่แล้ว +1

      Electron? Remember that Brad has a full course on the topic. Another amazing instructor that made a course on Electron is Stephen Grider!

    • @iamcasted
      @iamcasted ปีที่แล้ว

      @@Gigusx Thank you🥺

  • @rommelpetilo
    @rommelpetilo ปีที่แล้ว

    thank you Brad for this updated tutorial on electron!

  • @sahilverma_dev
    @sahilverma_dev ปีที่แล้ว

    I was planning to learn electorn and then you dropped this video. Thanks man

  • @reidainutilidade8743
    @reidainutilidade8743 11 หลายเดือนก่อน

    Thank you for this video. I watch from begin to end, and I was not have any problem during development.

  • @MRAMetharam
    @MRAMetharam ปีที่แล้ว +3

    Another great video! Thanx!!!
    For those interested, to get rid of the menu on the About window...
    abountWin.setMenu(null);

  • @paulthomas1052
    @paulthomas1052 ปีที่แล้ว +3

    Great session, Very useful and informative at a great pace. Thanks.

    • @user-vk8kt3tp1g
      @user-vk8kt3tp1g ปีที่แล้ว

      Helpline📲
      Questions can come in⬆️

  • @PROTOTYPZ
    @PROTOTYPZ ปีที่แล้ว

    Thank you very much for a clear tutorial. I was pulling my hairs out looking for a solid tutorial.

  • @learninternetwithkelly8338
    @learninternetwithkelly8338 ปีที่แล้ว +1

    He is here again. Thanks Brad!

  • @sumitsarkarbusiness
    @sumitsarkarbusiness ปีที่แล้ว

    This is the best tutorial I could find ... thank you :-)

  • @bobmonsour
    @bobmonsour 3 หลายเดือนก่อน

    I went through this slowly and carefully...took several hours so that I could digest things...especially the ipc stuff. It makes a lot more sense now. I do hope you'll update your udemy course on this some day. That said, I know enough to be dangerous now and I really like what can be done with Electron. Thanks!

  • @Flamewheel2001
    @Flamewheel2001 11 หลายเดือนก่อน

    I just finished your react udemy course and then i was researching a a problem i wanted to solve and this youtube video was exactly concept i was looking for

  • @itamarribeiro8865
    @itamarribeiro8865 ปีที่แล้ว

    I will save it on my list so I can follow it later,
    Tks Brad

  • @dr.margulis7773
    @dr.margulis7773 ปีที่แล้ว

    Awesome, Brad! 👏👏👏👍

  • @dryoldcrabman6890
    @dryoldcrabman6890 7 หลายเดือนก่อน +1

    This was super useful! Thank you so much! What would be super helpful is showing how to set up a webpack in the renderer. And show how to set up a framework in the rednerer.

  • @MedyZeus
    @MedyZeus ปีที่แล้ว

    Never regret the day I subscribed to your channel dude.. thanks for the video

  • @bennyakaz
    @bennyakaz ปีที่แล้ว

    Ive been waiting for this. THANKS BRO

    • @user-vk8kt3tp1g
      @user-vk8kt3tp1g ปีที่แล้ว

      Helpline📲
      Questions can come in⬆️

  • @seunolugbemi6394
    @seunolugbemi6394 26 วันที่ผ่านมา

    Great tutorial. You're a very good teacher sir!

  • @subiebugeye02
    @subiebugeye02 ปีที่แล้ว +10

    @traversymedia
    Brad, I’ve lurked on TH-cam and other sites for a while as I am trying to learn JavaScript for a upcoming Bootcamp and I’ve been stressing because I keep getting stuck in trying one resource and moving to the next as it feels too slow. I watched some of your JavaScript TH-cam videos and am completely impressed with how you structure the learning topic and your tone that you teach in. You make beginners feel welcomed and hopeful. I just purchased two of your courses on Udemy and want to thank you for the top tier content and hope you are getting enough support to continue producing such high quality material. Please, if you don’t do it already, start a podcast man. I, among many others, would love to dive into that content with you. Cheers my friend!

    • @idkcoder
      @idkcoder ปีที่แล้ว

      Bobo just use Udemy

    • @subiebugeye02
      @subiebugeye02 ปีที่แล้ว

      @@idkcoder what?

    • @Oliver_twist00
      @Oliver_twist00 10 หลายเดือนก่อน

      @@subiebugeye02 if you want to program web apps learn c+ javascript is mainely for web apps and web pages, this stuff is really for advanced users in javascript to be able to code desktop apps without learning new languages

  • @mrbuslov
    @mrbuslov ปีที่แล้ว

    Extremely awesome video, it's better, than docs. Thanks!

  • @spacexnix
    @spacexnix 4 หลายเดือนก่อน

    It's amazing. Thank you for a good experience for a newbie

  • @sixtusushahemba9419
    @sixtusushahemba9419 ปีที่แล้ว

    Thanks for the course, it's very informative and helpful.

    • @user-vk8kt3tp1g
      @user-vk8kt3tp1g ปีที่แล้ว

      Helpline📲
      Questions can come in⬆️

  • @erasmusmensah
    @erasmusmensah ปีที่แล้ว

    This content should be made a playlist

  • @charbelsarkis3567
    @charbelsarkis3567 ปีที่แล้ว

    Something I've been waiting for. There were so many updates to electron

    • @user-vk8kt3tp1g
      @user-vk8kt3tp1g ปีที่แล้ว

      Helpline📲
      Questions can come in⬆️

  • @thiagot7706
    @thiagot7706 8 หลายเดือนก่อน

    I learned so much! Thank you

  • @LarryMarkel
    @LarryMarkel ปีที่แล้ว

    Great video. Taught me a lot. Felt like Bill Burr was teaching me with your accent!

  • @rockNbrain
    @rockNbrain ปีที่แล้ว

    Great job dude !

  • @jesterlw
    @jesterlw 9 หลายเดือนก่อน

    Awesome tutorial thank you very much

  • @aogunnaike
    @aogunnaike ปีที่แล้ว

    Thanks for this 😌

  • @savimcgee7443
    @savimcgee7443 10 หลายเดือนก่อน

    Always excellent.

  • @natreextv8516
    @natreextv8516 9 หลายเดือนก่อน

    Thanks A LOT! Very helpfull video!

  • @repotranstech9614
    @repotranstech9614 ปีที่แล้ว +2

    Cool project,we also need an update on progressive web application.Its good for cross platform.

  • @janzenfaidiban
    @janzenfaidiban ปีที่แล้ว

    Thank you Brad...

  • @rpaengineer5114
    @rpaengineer5114 ปีที่แล้ว +1

    Great tuto Mr brad 🔥🔥
    Hope to make project based on TAURI framework 🙏🙏🙏

  • @SandeepSingh-ye5fh
    @SandeepSingh-ye5fh ปีที่แล้ว

    Thanks Brad

  • @collinsk8754
    @collinsk8754 6 หลายเดือนก่อน

    Excellent! 👍👍

  • @javascriptes
    @javascriptes ปีที่แล้ว +6

    Another classic, I also want to say that there is nothing like development with bare js and nodejs :)

    • @pupfriend
      @pupfriend ปีที่แล้ว

      like raw-dogging in a whorehouse.

  • @karlkrasnowsky1393
    @karlkrasnowsky1393 7 วันที่ผ่านมา

    Hey, thanks for the vid... always fun working with your tutorials...
    Something that threw me ... when setting the values on the width and height fields of the selected image form, the values were invisible (I thought it was failing) but turned out the text color was opaque for some reason, so setting style color to black to both inputs "fixed" it. May go back and determine the source of the problem and do a more systemic adjustment later, but love your teaching style. No BS and fundamental.

  • @rivgadeextras
    @rivgadeextras ปีที่แล้ว

    I love this guy fr

  • @haythamaldamen3578
    @haythamaldamen3578 ปีที่แล้ว +3

    Thank you for your work did you consider Neutralinojs as much smaller and much faster than electron because it uses chrome library

  • @muadzrosli
    @muadzrosli ปีที่แล้ว

    Hi Brad. I was wondering, how do you get the css file used in this electron app? Since it is Tailwind css, did you design elsewhere and treeshaking the classes first or that is full css in Tailwind?

  • @somethingcoolgoeshere
    @somethingcoolgoeshere ปีที่แล้ว +1

    Super cool video!
    Trying to learn how electron works so I can make my own Music player app

    • @darshanpagar1894
      @darshanpagar1894 ปีที่แล้ว

      I am planning to make my own video player. Can you drop your github link

  • @antoniusaguswijaya9341
    @antoniusaguswijaya9341 ปีที่แล้ว

    man. Thank you!

  • @ibrahimsfofanah6215
    @ibrahimsfofanah6215 ปีที่แล้ว

    Thank you 🙏

  • @yanaytsabary8297
    @yanaytsabary8297 ปีที่แล้ว +1

    Love your videos and thanks for sharing your knowledge. Will your updated Udemy course include working with React? I find that there's a big gap there as someone who's coming from React and trying to figure out how to use that With Electron. Also, when is it due to be updated?

  • @christian-schubert
    @christian-schubert ปีที่แล้ว +4

    REALLY interesting video, thanks for that Brad! Don't know what I would give for a course on a Vanilla HTML/Javascript/CSS to Native Mobile App conversion [maybe using Cordova?]. The discontinuation of PhoneGap has left a huge gap in that respect (yes, I am WELL aware of its drawbacks, but I'm obviously NOT talking about creating one million plus downloads gaming apps here)

    • @erasmusmensah
      @erasmusmensah ปีที่แล้ว

      Try PWA

    • @christian-schubert
      @christian-schubert ปีที่แล้ว

      @@erasmusmensah Wish it were that simple. Most of the time, it's really a matter of prestige - there are clients out there who INSIST on a native app where a PWA would totally suffice

  • @abhishekpratap8784
    @abhishekpratap8784 ปีที่แล้ว +3

    Today i made a screen recorder using electron, I wish this video would have come a few days earlier. Would have saved a lot of time.

    • @overboostoverboost2541
      @overboostoverboost2541 ปีที่แล้ว +1

      May I ask you to share the code with me for education purposes? Just curious :)

    • @abhishekpratap8784
      @abhishekpratap8784 ปีที่แล้ว

      @@overboostoverboost2541 i tried sending 7 msgs and all got deleted

  • @flave11
    @flave11 ปีที่แล้ว

    Thank you for this video toaay

  • @jagadeeshkj5561
    @jagadeeshkj5561 ปีที่แล้ว +1

    Cool background.

  • @danielvega646
    @danielvega646 ปีที่แล้ว

    How is your VS code theme called? Looks neato! And thanks a lot for the tutorial, helped me a lot to become familiar with Electron development.

  • @Arabian_Epileptic
    @Arabian_Epileptic ปีที่แล้ว +11

    Html/css/js can be used now to build pretty much any software, server side, front end, even mobile apps and of course desktop apps with electron. No other stack can compete hence why JS is the #1 programming language :)

    • @emreaka3965
      @emreaka3965 ปีที่แล้ว +2

      you can do that with c# which is faster and obviously a better choice to develop such applications except for web applications.Right now, You can develop cross-platform (web, macOS, windows, ios, android...) applications with html, css, c#. 😉

    • @nonametrackz7887
      @nonametrackz7887 8 หลายเดือนก่อน

      @@emreaka3965 with electron or do i need to use webview?

  • @valenciawalker6498
    @valenciawalker6498 หลายเดือนก่อน

    Thank you

  • @indianolaguitarman
    @indianolaguitarman ปีที่แล้ว +2

    What steps must developers creating desktop apps with Electron use to make those accessible to screen reader software that blind folks use? Came across something recently to configure a device for recording wildlife and if it was a web page, could benefit from labels for text edit fields, radio buttons and checkboxes. But with electron, what is the best practice so that the app is then screen reader accessible?

  • @chetanjain4616
    @chetanjain4616 ปีที่แล้ว +10

    Great course as always Brad... But personally I am waiting for Tauri Crash Course, they have an amazing framework and I really want to give it a try

    • @AbhishekBM
      @AbhishekBM ปีที่แล้ว +1

      Check other channels. Brad is a web developer. It's unlikely he'll do a tutorial on a rust based framework

    • @chetanjain4616
      @chetanjain4616 ปีที่แล้ว +2

      @@AbhishekBM Why not? He has done a tutorial on Rust and this is a tutorial on desktop application... I guess it depends on him but it wouldn't be new to his ecosystem

    • @mykus1000
      @mykus1000 ปีที่แล้ว

      me too

  • @riteshbathwal2118
    @riteshbathwal2118 ปีที่แล้ว +1

    I have an electron App with UI built using react and a browserView loading a webpage. Now I want to make async communication from UI renderer process to webpage renderer process. Is it possible ? Even if I use ipcMain to handle ipcRenderer.invoke request from UI, I dont know how to send async request from main process to my browserView process, so that when it returns a response, I can then return response from main process to UI renderer process. Any help here would be appreciated much.

  • @shomriddhosworld5587
    @shomriddhosworld5587 ปีที่แล้ว

    yes yes yes yes yes yes!
    finally

  • @etanheyman5009
    @etanheyman5009 ปีที่แล้ว

    Hey I just started working on a react electron app with typescript, but I'm having difficulty finding a guide/way to do it properly, would you be able to show a way for that?
    tried using a boilerplate but having problems connecting to the nodejs server.

  • @johnsunday3548
    @johnsunday3548 ปีที่แล้ว

    Great stuff mentor...pls do same with react js if possible with a DB...thnks...

  • @user-te2pe5qm8o
    @user-te2pe5qm8o ปีที่แล้ว

    thank you

  • @poetslayer
    @poetslayer ปีที่แล้ว

    Thx a lot

  • @muhammadidrees6650
    @muhammadidrees6650 ปีที่แล้ว +12

    We need one project with Advance Angular please 😊, stay blessed Brad 🎉

  • @glatocha
    @glatocha ปีที่แล้ว

    ahh, so much needed as those security changes in electron made many many tutorials not suitable

    • @user-vk8kt3tp1g
      @user-vk8kt3tp1g ปีที่แล้ว

      Helpline📲
      Questions can come in⬆️

  • @zulfikarbandhan2783
    @zulfikarbandhan2783 ปีที่แล้ว +4

    Could you please make a video on "Create a Desktop App with JavaScript & Tauri"? Thanks Brad for all the good works.

    • @manukyanq
      @manukyanq ปีที่แล้ว +1

      to the top!

  • @wadhajable
    @wadhajable ปีที่แล้ว

    Thanks sir
    In this app Can I use RPC (remote procedure call) as in web apps

  • @Imaginativeone_DF
    @Imaginativeone_DF ปีที่แล้ว

    When will the course-update be available?

  • @Rlifshitz19
    @Rlifshitz19 ปีที่แล้ว +1

    Can you do a video on building a TH-cam to MP3 Converter? All the ones online are sketchy. It would be awesome if we could build our own. Love the video!

    • @selfmaster1123
      @selfmaster1123 ปีที่แล้ว

      that would be amazing and helpful tool

  • @ankitabannore8014
    @ankitabannore8014 5 หลายเดือนก่อน

    Thanks for this one!
    I am creating one desktop application using electron now I want to connect it to the database. Can you tell me anything that I need to do?

  • @karlkrasnowsky1393
    @karlkrasnowsky1393 7 วันที่ผ่านมา

    making the height and width fields required on the form elements will forgo the need to check in the submit if they have values. Just saying.

  • @burd1129
    @burd1129 ปีที่แล้ว +1

    Great Video!

  • @raqibahmad
    @raqibahmad 9 หลายเดือนก่อน

    can we put an entire react js app inside the rendered folder to make it work on the electron platform ?

  • @justfun591
    @justfun591 ปีที่แล้ว +6

    Electron JS uses chromium to render HTML CSS JavaScript so even if you only have a simple h1 tag it will be more than 100MB in size

    • @imbayi
      @imbayi ปีที่แล้ว +4

      How is this an issue in 2022? Developers like making a mountain out of a molehill. Today average computer users are just doing fine with PCs and Macs with 256GB of storage. We are no longer storing photos, music and movie files on our computers to worry so much about storage. This is the same argument most developers make against certain technologies arguing that technology X cannot support millions of users yet in the entire life they'll never build a product or service for millions of users. Every dev out there argues as if he is building the next Facebook.

    • @justfun591
      @justfun591 ปีที่แล้ว +4

      @@imbayi Sir.... but if I just want a simple image resizer, for this, I am asked to download 100MBs software then I would definitely think that there should be some malware/spyware/resource consumer program also running with that software

  • @KulturanCov
    @KulturanCov 2 วันที่ผ่านมา

    Great video! What is your VS Code Color Theme? :D Looks like GitHub Darker, but the outlines are less prominent with your theme.

  • @kennedychidi7012
    @kennedychidi7012 ปีที่แล้ว +2

    I'm done just watching, is time I follow up and start building... I'll be back to testify.

  • @thongnguyen5024
    @thongnguyen5024 ปีที่แล้ว

    Your index.html (on GitHub) is missing closing tag of button div (line 57).

  • @mamupelu565
    @mamupelu565 ปีที่แล้ว

    Is it still worth it learning angular now? I want to get in the IT market asap, Ive been 3 years as a trainee but doing support stuff

  • @sesu6743
    @sesu6743 ปีที่แล้ว

    Where can i get the electron course?

  • @ArmandoBN497
    @ArmandoBN497 ปีที่แล้ว

    i need help understading how to package it on a mac, i was able to build the relase folder and dmg file after it but im lost after that on how to get the app actuly installed on my laptop

  • @BukkyOdunsi
    @BukkyOdunsi ปีที่แล้ว

    TH-cam needs to add a feature to clip favorite channels and videos

  • @abhisekdas9976
    @abhisekdas9976 ปีที่แล้ว +1

    Please make a video on Tauri App which is an electron replacer.

  • @karlkrasnowsky1393
    @karlkrasnowsky1393 7 วันที่ผ่านมา

    Oh, and early implementation of the "about" window is generating a new instance of every selection. If not addressed in later in this tutorial, and easy way to prevent this?

  • @musshare
    @musshare ปีที่แล้ว

    Cool

  • @Hub632
    @Hub632 9 หลายเดือนก่อน

    I don't understand why. But around 59:35, the line "const resizeImg=require("resize-img")" removes the inspector window from the app. NAd I am not able to get it back.

  • @BSenta
    @BSenta ปีที่แล้ว

    It doesn't make sense to worry about memory leaks when your application closes. Even in C++ if you have forgot to free stuff in the heap when the whole application ends all of the memory will be claimed back by the OS. It doesn't make sense to set that window to null when your closing your app. Unless electron apps don't 'close' and just run in the background like chrome does even when you close all the windows - which would be stupid if it did this

  • @playerberry
    @playerberry ปีที่แล้ว

    what is your node version?

  • @SodiqOlaniyi
    @SodiqOlaniyi ปีที่แล้ว

    I was thinking of searching this then this video popped up 🤣

  • @manukyanq
    @manukyanq ปีที่แล้ว

    Please make video about Tauri framework

  • @robhopper5729
    @robhopper5729 11 หลายเดือนก่อน

    Does this allow pushing updates?