Creating DESKTOP apps with Angular is easier than you think

Поділитися
Вставка
  • Опубліковано 22 чер 2024
  • My Angular course: angularstart.com/
    Getting a native desktop application up and running with Electron and Angular is surprisingly quick. In this video, we make use of these frameworks, in conjunction with Nx, to create the basic scaffolding required to create desktop applications with web tech
    Get weekly content and tips exclusive to my newsletter: mobirony.ck.page/4a331b9076
    Want to build mobile apps with Angular?: ionicstart.com
    0:00 Introduction
    1:01 Project structure
    1:32 Setting up the project
    2:27 Extra configuration
    3:46 Improving DX
    #angular #electron
    - More tutorials: modernangular.com
    - Follow me on Twitter: / joshuamorony

КОМЕНТАРІ • 81

  • @ukaszmichalak7709
    @ukaszmichalak7709 Місяць тому +12

    You can redefine angular's output not be nested in "browser" folder in angular.json using
    "options": {
    "outputPath": {
    "base": "dist/META-INF/resources", //some java specific path - not important
    "browser": "",
    "server": "server",
    "media": "media"
    },

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому +1

      Thanks I'll give that a shot, I was under the impression it didn't work

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому +8

      Can confirm this works without needing to switch builders! (to anyone reading this, just set something like "dist/apps/renderer" as the base and "" as browser

    • @HishamButeen
      @HishamButeen Місяць тому

      I've already mentioned in my comment that it's working as expected with the below configuration:
      "builder": "@angular-devkit/build-angular:application",
      "options": {
      "outputPath": {
      "base": "public/web",
      "browser": ""
      },
      ...
      },
      An output example: is public/web/index.html.
      @JoshuaMorony, did it work for you? If not, I can share with you my repository privately.

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому

      @@HishamButeen yes thank you, I was able to get it to work

  • @JamesJansson
    @JamesJansson Місяць тому +63

    Definitely want to see more about Electron and Angular!

    • @rembautimes8808
      @rembautimes8808 Місяць тому

      Oh yes I hope we can use electron to build iPad app with angular

    • @filipefreire6517
      @filipefreire6517 Місяць тому +1

      Yes i want to see much more of this nx electron and angular

    • @filipefreire6517
      @filipefreire6517 Місяць тому

      Working on my own editor

  • @nikolitilden8224
    @nikolitilden8224 Місяць тому +13

    YES PLEASE DEEP DIVE INTO BUILDING ELECTRON APPS WITH ANGULAR!

  • @JoshuaMorony
    @JoshuaMorony  Місяць тому +3

    Next newsletter goes out tomorrow: mobirony.ck.page/4a331b9076

  • @sickboy1776
    @sickboy1776 Місяць тому +6

    Please do continue making more videos on working with angular and electron (especially in an Nx monorepo env)
    plus I'd love to see and learn working with native api's on electron
    you're the best!

  • @colemeyer1044
    @colemeyer1044 Місяць тому +4

    Such an awesome video, and such a relevant topic. Please continue with this topic

  • @IgorBondarenko
    @IgorBondarenko Місяць тому

    need more !!!! Nice video

  • @Adridzukic
    @Adridzukic Місяць тому

    Great stuff!!!

  • @jeffnikelson5824
    @jeffnikelson5824 Місяць тому

    amazing video
    really want to try it out myself now
    pls more of this ❤

  • @ilyesbrh7667
    @ilyesbrh7667 Місяць тому

    The explanation is so net & clean, thanks for the amazing video, please continue this series

  • @mohamedbenhamouda1155
    @mohamedbenhamouda1155 Місяць тому

    Definitely it's a good idea "more Electron & Angular"

  • @HishamButeen
    @HishamButeen Місяць тому +1

    Great video! You can still use the application builder. "outputPath" will then be an object with a "base" property set to the folder you want, and a "browser" property set to an empty string. This will ensure it behaves exactly as you want and it won't create a browser folder anymore. On another note, the new media folder is internesting! Check it out if you haven't already. (N.B: Using latest angular release)

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому

      Thanks I'll check it out, I was under the impression setting it to an empty string didn't work but I'll try that

  • @lolobirolo
    @lolobirolo Місяць тому

    IDK what happend but recently something shot to my mind that i need to build an electron app, then this happen! Thanks man! Definitely need more of this!

  • @deadlyecho
    @deadlyecho Місяць тому

    I don't know why you have so few subscribers compared to these top notch quality angular content 👌

  • @eliotistube
    @eliotistube Місяць тому

    Yes Joshua, more electron stuff please!

  • @cuznerdexter
    @cuznerdexter Місяць тому

    Been using Angular for years. Need to try using it again with Electron. 👍

  • @Nemo-yt1gi
    @Nemo-yt1gi Місяць тому

    good timing, was already considering redoing our angular application with electron. Publishing application updates though can be a bit tedious.

  • @cesarqp
    @cesarqp Місяць тому +1

    Please more videos about Electron and Angular 👍👍

  • @souravsaraf1230
    @souravsaraf1230 Місяць тому

    Nice video , can you tell what was the executable file size (.exe file size or whatever ur OS has) ? Also, will the app work without any setup steps if u just share the exe file with anybody ?

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому

      The empty/default project in the video creates a package that is 431MB, and I don't know all that much about distribution/approaches steps yet. This video doesn't include the make process (although there is configurations for it by default) which I believe handles creating the actual installers.

  • @o_glethorpe
    @o_glethorpe Місяць тому

    Great video. Nice to see there is a plugin for nx, back in the day, I built an electron app using angular 2, and it was a pain. Tks for sharing.

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому

      I was very happy to see this plugin existed, would have saved me *a lot* of time figuring out how to get it all set up nicely

  • @dimakostyuk1508
    @dimakostyuk1508 Місяць тому

    Thanks for the video! Are you considering Tauri as a desktop app framework instead of Electron?

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому +1

      I'll probably see this project out with Electron, but I'll likely try Tauri out later (maybe I could try a rewrite)

  • @captainmorgan8258
    @captainmorgan8258 Місяць тому

    Hi Joshua! Great content as always!
    Can you please help me with my issue? Im trying to upgrade an application from Angular 16 to 17, and the problem is with new SSR approach i get "localStorage is not defined" error.
    What would be the best solution for that? Wrapping all uses of localStorage in smth to use them on the client side, moving away from using localStaroage at all (i have it quite a lot in the project) or maybe something else will help?

  • @TheTom265
    @TheTom265 Місяць тому

    Yes more Electron please 😊

  • @SiddharthSingh-mj4um
    @SiddharthSingh-mj4um Місяць тому

    Hi Joshua ,
    Do u have any full stack.Course , if not please make it ,

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому

      Hey, no not really - Angular Start does include some stuff on integrating backends/Firebase/third party apis, but I wouldn't really call it a "full stack course"

  • @victorgarcia3526
    @victorgarcia3526 Місяць тому

    What if you want ssr and a desktop app?

  • @user-wz5qe7hc1v
    @user-wz5qe7hc1v Місяць тому

    One gotcha i found when doing angular and electron together is ng test is broken if you import node packages in anything linked to any of your .spec tests. I ended up changing the name of tests of the electron portion of the app and testing those with jest. Let me know if you can find a better fix for that!

    • @toxaq
      @toxaq Місяць тому

      I added an explicit node_modules alias to tsconfig for a similar problem I had.

  • @RomanBorowinski
    @RomanBorowinski Місяць тому

    Good one. I wouldnt mind seeing how you integrate some of the native APIs into your app

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому

      I'll definitely do a follow up vid with my actual app

  • @Stevexupen
    @Stevexupen 27 днів тому

    Can you do comparison video comparing electron and tauri?

  • @sushantkunkekar2155
    @sushantkunkekar2155 Місяць тому

    Plz continue more on mono repo and electron JS

  • @akuoko_konadu
    @akuoko_konadu Місяць тому

    We will love Tauri + Angular too 🌝

  • @tranquillityEnthusiast
    @tranquillityEnthusiast Місяць тому +1

    I switched to tauri, because bundle size with angular with electron is huge

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому +3

      I forgot about Tauri, will definitely check it out at some point

  • @TayambaMwanza
    @TayambaMwanza Місяць тому +2

    Have you tried Tauri?

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому +1

      No I hadn't considered it initially for this project but I'll likely give it a try at some point

  • @dayronalfaro9461
    @dayronalfaro9461 Місяць тому

    I always find electron very interesting but I always think what to build and what not to build, It would be nice to see a series starting with a good research about what to build what are the limitations etc, I always run to this channel to learn about the better way to do angulr apps heheh thx JM

  • @benceszigeti5922
    @benceszigeti5922 Місяць тому

    Definitely interested in more videos since, currently I'm working on an existing app that feels like outdated to me and my task is to insert an auto updater functionality for all Mac Windows and Linux but Im struggling to make it work since I also need to install azcopy as prerequisite during installation. I didnt know anything about electron before but now I definitely think I should create a new version and move everything to that v17 and it would save a lot of headaches for me.

  • @wolfisraging
    @wolfisraging Місяць тому +1

    Definitely continue this series, I have an idea, how about a chess/snake game built with angular which we're able to download and install on both MacOS, Windows & Linux using electron. :) Dream come true type of playlist you know.

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому +1

      At least for now I'll probably do more vids by showcasing various aspects of the actual app I'm building with Angular/Electron

    • @wolfisraging
      @wolfisraging Місяць тому

      @@JoshuaMorony Sure man, you know best! Never had a doubt

  • @MrMagrok
    @MrMagrok Місяць тому

    Yeah, please more Videos about angular and Electron. Complex intercommunication and multiple renderer Prozesses in the background without a Window like vsc.

  • @razvan-mihaiilie7001
    @razvan-mihaiilie7001 Місяць тому

    Played with the electron + Angular but your use of nx its kind of complicated

  • @JayWolters
    @JayWolters Місяць тому

    Dive, Dive, Dive!

  • @nejmaljamal1281
    @nejmaljamal1281 Місяць тому

    Yes please

  • @gamingxsvssdeva4245
    @gamingxsvssdeva4245 Місяць тому

    try tauri too

  • @yanko694
    @yanko694 Місяць тому

    Tried Tauri yet?

  • @KamelJabber1
    @KamelJabber1 Місяць тому

    Yea please!

  • @lukebennett3189
    @lukebennett3189 Місяць тому

    Tied to subscribe to your newsletter, but I am getting a 500 response from the submit button

  •  Місяць тому +1

    Electron is ok, but if you’re not afraid of writing just a little bit of rust, Tauri is sooo much easier to setup and use

  • @koles32
    @koles32 Місяць тому

    Isnt it better to just use PWA?

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому

      In my case, I need Electron so that I access the native filesystem and run commands on the users machine

  • @toxaq
    @toxaq Місяць тому

    Did you look at Tauri or Wails?

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому +1

      I haven't properly looked a Tauri, I'm just aware of its existence and Wails I hadn't actually heard of. I am learning Go at the moment though so could be interesting.

    • @toxaq
      @toxaq Місяць тому

      @@JoshuaMorony I fell into the Tauri hype train to try a demo app but found it a bit overkill for the benefit. Wails was more approachable but the docs are horendous.

  • @eptic-c
    @eptic-c 25 днів тому

    I like more the approach of Wails or Tauri ( but prefer Wails because it is written in go ) and instead of having a whole browser for a simple app, it uses a WebView and it is much faster. Also, they have backends in statically compiled and more serious languages, go and rust compared to JS. I have no hate for JS, i just like to use it for what it was made for.

  • @Alex-bc3xe
    @Alex-bc3xe Місяць тому

    Nice but I think flutter is a much better alternative for desktop apps and for sure faster

  • @alanrutter3273
    @alanrutter3273 Місяць тому

    I always enjoy your content and I completed your angular course but please SLOW down. It’s really hard to focus on what you’re doing or saying because it’s so damn fast.

  • @matejl92
    @matejl92 Місяць тому

    Why not just PWA?

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому +1

      For this particular app I need access to the native filesystem + the ability to execute commands on the users machine

    • @matejl92
      @matejl92 Місяць тому

      @@JoshuaMorony I see, thanks for the reply. :)

  • @ivanmaglica264
    @ivanmaglica264 Місяць тому

    Electron is awesome, don't let anyone else tell you otherwise.

  • @djsargex7777
    @djsargex7777 21 день тому

    Everything cool here cept for lame drake memes

  • @TheOnlyJura
    @TheOnlyJura Місяць тому

    lost me at "electron"

  • @tleveque
    @tleveque Місяць тому +1

    Constructive comment: I think you're going a way too fast. It is really hard to follow. This video should be twice as long. Do the same thing but in real time.

  • @Nagidid
    @Nagidid Місяць тому

    Hey Josh, Im having this problem when running the 'npm install nx-electron electron-builder --save-dev' command:
    npm error code ERESOLVE
    npm error ERESOLVE unable to resolve dependency tree
    npm error
    npm error While resolving: @myorg/source@0.0.0
    npm error Found: @nx/workspace@19.0.4
    npm error node_modules/@nx/workspace
    npm error dev @nx/workspace@"19.0.4" from the root project
    npm error
    npm error Could not resolve dependency:
    npm error peer @nx/workspace@"^18" from nx-electron@18.0.1
    npm error node_modules/nx-electron
    npm error dev nx-electron@"*" from the root project
    npm error
    npm error Fix the upstream dependency conflict, or retry
    npm error this command with --force or --legacy-peer-deps
    npm error to accept an incorrect (and potentially broken) dependency resolution.
    npm error
    npm error
    npm error For a full report see:
    npm error C:\Users\Usuario\AppData\Local
    pm-cache\_logs\2024-05-18T20_11_22_076Z-eresolve-report.txt
    npm error A complete log of this run can be found in: C:\Users\Usuario\AppData\Local
    pm-cache\_logs\2024-05-18T20_11_22_076Z-debug-0.log
    What should I do in this case?

    • @JoshuaMorony
      @JoshuaMorony  Місяць тому

      Looks like Nx 19 has just been released and your project is using that, so you would either need to use Nx 18 for now, or wait for nx-electron to be updated, or use --force/---legacy-peer-deps to just brute force past the error (which may or may not have ill effects)