There has been a drastic improvements in NodeGui since the last release announcement of v0.2.0 in September 2019. This post aims to summarize some of the major ones.

🏋️‍♀️ Lots of core Qt widgets and features

Some of the native widgets in NodeGui 0.13.0 and up
List of widget and core features in v0.13.0

✨ Includes prebuilt binaries: No more compilation step.

Since NodeGui is a library with native Nodejs addon, the C++ part of the library needed to be built on installation. This meant you needed cmake and other c++ compilation tools to be installed. Since v0.13.0 this is no longer the case. Now the core library ships with prebuilt binaries. So in most cases you should be up and running right after you run…


NodeGUI v0.2.0 contains major architectural changes with respect v0.1

Includes a shiny new build system 🌟

NodeGUI although is a nodejs addon, it no longer uses node-gyp as its build system. This is to enable greater flexibility and stability.
More details on why we changed to cmake here: https://github.com/nodegui/nodegui/pull/103

Includes support for Native plugins for NodeGUI 🎉

From v0.2.0 anyone can now build third party native plugins for NodeGUI. This is heavily inspired from React Native’s architecture.
This will ensure that the core library remains lean and will allow more easy way for contributions. More on this will be added to the docs soon. But if you are really eager to know how it would look you can take a look at https://github.com/nodegui/nodegui-example-plugin

Other changes:

  • Adds QTabWidget
  • QCheckBoxEvents.toggled
  • QIcon.pixmap
  • qtnode addon is now renamed to nodegui_core


Packer is a npm module that allows you to package apps built with NodeGUI or React NodeGUI into a standalone executable. Packer works on Mac, Windows and Linux

https://github.com/nodegui/packer

This is an initial MVP release of the module.

  • On MacOS — Packer will output a dmg file
  • On Linux — Packer will output an AppImage which is something similar to a .app file in MacOS
  • On Windows — Packer outputs a folder containing the executable and all the dlls.

Currently if you need to produce a build you need to run the packer in different OS environments. …


This was originally posted at https://blog.atulr.com/nodegui-intro/

We’re very excited to announce the launch of NodeGUI and React NodeGUI🎊

NodeGUI is an open source library for building cross platform native desktop applications with JavaScript and CSS like styling. NodeGui apps can run on Mac, Windows, and Linux from a single codebase.

NodeGUI is powered by Qt5 💚 which makes it CPU and memory efficient as compared to other chromium based solutions like electron. Don’t get me wrong 🤷🏽‍♂️, Electron is a great framework for building cross platform apps but suffers from performance and energy related issues due to heavy reliance on…


I recently started working at Anyfin. As a new engineer on the team, I had to setup the entire development environment. Drawing my expectations from my previous work engagements I thought this would take me a couple of days. But to my surprise I had a working setup of quite a few backend services written in NodeJS, Golang and Python along side the web site and portal (Javascript) in ~5hrs. This post will explain on how we use Docker at Anyfin to setup a productive local development environment quite easily. …


I have moved my blog to my personal site https://blog.atulr.com from medium. Hence I will post the links to same below 😬.

This blog covers on how to build a simple performant API rate limiter using Redis.

https://blog.atulr.com/rate-limiter/


I have moved my blog to my personal site https://blog.atulr.com from medium. Hence I will post the links to same below 😬.

This is a 3 part blog series.


Push notifications are very common in the native mobile application platforms like Android & iOS. The are most effective ways to re-engage users to your apps. In this post we will look at how to implement push notifications for the web.

Notifications can be of two types:

  1. Local Notification: This is generated by your app itself.
  2. Push Notification: This is generated by a server via a push event.

If you are here only for Push notifications, you can safely skip to Step 3: Push Notification

Overview

Components needed for Push Notification:

  1. Service Workers
  2. Notification API: This API is used to show…


For a developer, most of his/her time is spent on the code editor or the terminal. As web developers, we mostly target browsers and nowadays even native mobile platforms (thanks React Native). But I recently figured out you could also target terminals for your web-based UIs.

What do I mean by this ?

Type: curl wttr.in in your terminal. This console app from Igor Chubin written in python is what inspired me to write this blog.

wttr.in by Igor Chubin

Amazing! right. So, I decided to dig a bit deeper and find out how it is done.

ANSI Escape Codes

ANSI escape sequences are a standard for…


I believe that programming in a new language or domain seems hard until you know how to debug properly.

I was recently working on writing a NodeJS addon using C++ and N-API. For most part I was able to get around with simple std::cout or printf statements for debugging, but it was taking too much time even for simplest of cases.

I really love the debug tools that come with VS Code. They really make your life so easy when working with NodeJS. Hence, I wanted to use the same debugging environment when working with C++ and NAPI for NodeJS.

Atul

https://blog.atulr.com : I have moved from medium to my personal blog here. Follow me on twitter : https://twitter.com/a7ulr

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store