Create a Desktop App With JavaScript & Electron

Поделиться
HTML-код
  • Опубликовано: 8 июл 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 Год назад +29

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

  • @nanohedron
    @nanohedron Год назад +7

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

  • @zachjensz
    @zachjensz Год назад +326

    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

  • @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

  • @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 RUclips. Nice job Brad!

  • @amhas_tech
    @amhas_tech 10 месяцев назад

    The best Electron tutorial on youtube 🙌🙌

  • @jeroen.herczeg
    @jeroen.herczeg 2 месяца назад

    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!

  • @destinlee
    @destinlee Год назад

    Good times. Thanks as always Brad. Much love ☮

  • @rommelpetilo
    @rommelpetilo Год назад

    thank you Brad for this updated tutorial on electron!

  • @kaxabekov1627
    @kaxabekov1627 3 месяца назад +1

    Best tutor for programming on RUclips!!!

  • @PROTOTYPZ
    @PROTOTYPZ Год назад

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

  • @reidainutilidade8743
    @reidainutilidade8743 11 месяцев назад

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

  • @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🥺

  • @sahilverma_dev
    @sahilverma_dev Год назад

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

  • @dr.margulis7773
    @dr.margulis7773 Год назад

    Awesome, Brad! 👏👏👏👍

  • @learninternetwithkelly8338
    @learninternetwithkelly8338 Год назад +1

    He is here again. Thanks Brad!

  • @paulthomas1052
    @paulthomas1052 Год назад +3

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

  • @sumitsarkarbusiness
    @sumitsarkarbusiness Год назад

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

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

  • @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

  • @rockNbrain
    @rockNbrain Год назад

    Great job dude !

  • @itamarribeiro8865
    @itamarribeiro8865 Год назад

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

  • @spacexnix
    @spacexnix 5 месяцев назад

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

  • @seunolugbemi6394
    @seunolugbemi6394 Месяц назад

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

  • @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

  • @thiagot7706
    @thiagot7706 9 месяцев назад

    I learned so much! Thank you

  • @savimcgee7443
    @savimcgee7443 10 месяцев назад

    Always excellent.

  • @sixtusushahemba9419
    @sixtusushahemba9419 Год назад

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

  • @mrbuslov
    @mrbuslov Год назад

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

  • @jesterlw
    @jesterlw 10 месяцев назад

    Awesome tutorial thank you very much

  • @bobmonsour
    @bobmonsour 4 месяца назад

    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!

  • @aogunnaike
    @aogunnaike Год назад

    Thanks for this 😌

  • @natreextv8516
    @natreextv8516 10 месяцев назад

    Thanks A LOT! Very helpfull video!

  • @LarryMarkel
    @LarryMarkel Год назад

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

  • @collinsk8754
    @collinsk8754 7 месяцев назад

    Excellent! 👍👍

  • @dryoldcrabman6890
    @dryoldcrabman6890 8 месяцев назад +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.

  • @charbelsarkis3567
    @charbelsarkis3567 Год назад

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

  • @janzenfaidiban
    @janzenfaidiban Год назад

    Thank you Brad...

  • @subiebugeye02
    @subiebugeye02 Год назад +10

    @traversymedia
    Brad, I’ve lurked on RUclips 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 RUclips 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 11 месяцев назад

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

  • @rivgadeextras
    @rivgadeextras Год назад

    I love this guy fr

  • @erasmusmensah
    @erasmusmensah Год назад

    This content should be made a playlist

  • @SandeepSingh-ye5fh
    @SandeepSingh-ye5fh Год назад

    Thanks Brad

  • @antoniusaguswijaya9341
    @antoniusaguswijaya9341 Год назад

    man. Thank you!

  • @ibrahimsfofanah6215
    @ibrahimsfofanah6215 Год назад

    Thank you 🙏

  • @flave11
    @flave11 Год назад

    Thank you for this video toaay

  • @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

  • @karlkrasnowsky1393
    @karlkrasnowsky1393 20 дней назад

    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.

  • @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?

  • @repotranstech9614
    @repotranstech9614 Год назад +2

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

  • @valenciawalker6498
    @valenciawalker6498 Месяц назад

    Thank you

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

  • @rpaengineer5114
    @rpaengineer5114 Год назад +1

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

  • @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

  • @MRAMetharam
    @MRAMetharam Год назад +3

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

  • @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

  • @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?

  • @poetslayer
    @poetslayer Год назад

    Thx a lot

  • @jagadeeshkj5561
    @jagadeeshkj5561 Год назад +1

    Cool background.

  • @user-te2pe5qm8o
    @user-te2pe5qm8o Год назад

    thank you

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

  • @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

  • @shomriddhosworld5587
    @shomriddhosworld5587 Год назад

    yes yes yes yes yes yes!
    finally

  • @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?

  • @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

  • @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?

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

  • @glatocha
    @glatocha Год назад

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

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

  • @karlkrasnowsky1393
    @karlkrasnowsky1393 20 дней назад

    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?

  • @zulfikarbandhan2783
    @zulfikarbandhan2783 Год назад +4

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

  • @muhammadidrees6650
    @muhammadidrees6650 Год назад +12

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

  • @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

  • @Rlifshitz19
    @Rlifshitz19 Год назад +1

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

  • @KulturanCov
    @KulturanCov 15 дней назад

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

  • @SodiqOlaniyi
    @SodiqOlaniyi Год назад

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

  • @kennedychidi7012
    @kennedychidi7012 Год назад +2

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

  • @musshare
    @musshare Год назад

    Cool

  • @wadhajable
    @wadhajable Год назад

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

  • @BukkyOdunsi
    @BukkyOdunsi Год назад

    RUclips needs to add a feature to clip favorite channels and videos

  • @ankitabannore8014
    @ankitabannore8014 6 месяцев назад

    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?

  • @johnsunday3548
    @johnsunday3548 Год назад

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

  • @thongnguyen5024
    @thongnguyen5024 Год назад

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

  • @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

  • @Hub632
    @Hub632 10 месяцев назад

    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.

  • @raqibahmad
    @raqibahmad 10 месяцев назад

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

  • @pineappleplay437
    @pineappleplay437 2 месяца назад

    for some reason when I do npx electronmon . it doesn't work the way it should (I only get the message: renderer file change: main.js)

  • @Imaginativeone_DF
    @Imaginativeone_DF Год назад

    When will the course-update be available?

  • @sesu6743
    @sesu6743 Год назад

    Where can i get the electron course?

  • @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

  • @anserwaseem3362
    @anserwaseem3362 Год назад +1

    How to use SQL with electron? I'm trying to connect Sqlite but alas! Please shed some light on it

  • @burd1129
    @burd1129 Год назад +1

    Great Video!

  • @SlipperyBrick89
    @SlipperyBrick89 Год назад

    I never thought that Mark Wahlberg would be teaching me Electron

  • @albertoubamea8225
    @albertoubamea8225 Год назад

    im having this error "caught ReferenceError: ipcRenderer is not defined" even when i have it in preload.js, any idea? thanks

  • @ABentPaperclip
    @ABentPaperclip Год назад

    when I try to add the Content Security Policy (22:41) the warning goes away and is replaced with an error saying that inline script is refused

  • @user-sc7tj8yp2s
    @user-sc7tj8yp2s 5 месяцев назад

    after build app not geting active-win url how to resolve this issue