nodeguy/docs/guides/getting-started/index.html
2021-12-26 18:08:16 +00:00

66 lines
27 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-alpha.64">
<link rel="preconnect" href="https://www.google-analytics.com">
<script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-145065218-1","auto"),ga("send","pageview")</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
<link rel="search" type="application/opensearchdescription+xml" title="NodeGui" href="/opensearch.xml"><title data-react-helmet="true">Getting started | NodeGui</title><meta data-react-helmet="true" name="docsearch:version" content="current,latest"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:title" content="Getting started | NodeGui"><meta data-react-helmet="true" name="description" content="NodeGui enables you to create desktop applications with JavaScript. You could see it"><meta data-react-helmet="true" property="og:description" content="NodeGui enables you to create desktop applications with JavaScript. You could see it"><meta data-react-helmet="true" property="og:url" content="https://nodegui.org/docs/guides/getting-started"><link data-react-helmet="true" rel="shortcut icon" href="/img/favicon.ico"><link data-react-helmet="true" rel="preconnect" href="https://BH4D9OD16A-dsn.algolia.net" crossorigin="true"><link data-react-helmet="true" rel="canonical" href="https://nodegui.org/docs/guides/getting-started"><link rel="stylesheet" href="/styles.920797bd.css">
<link rel="preload" href="/styles.1b28431e.js" as="script">
<link rel="preload" href="/runtime~main.7052bd04.js" as="script">
<link rel="preload" href="/main.17e769fc.js" as="script">
<link rel="preload" href="/1.386a6db3.js" as="script">
<link rel="preload" href="/2.2ece8892.js" as="script">
<link rel="preload" href="/3.8184ab2d.js" as="script">
<link rel="preload" href="/1be78505.afc94944.js" as="script">
<link rel="preload" href="/411.da87afc2.js" as="script">
<link rel="preload" href="/935f2afb.84f2e551.js" as="script">
<link rel="preload" href="/17896441.14a2377a.js" as="script">
<link rel="preload" href="/c9ea0dcf.5d15385a.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></div><a class="navbar__brand" href="/"><img class="navbar__logo" src="/img/logo-circle.png" alt="NodeGui Logo"><strong class="navbar__title">NodeGui</strong></a></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs/guides/getting-started">Docs</a><a class="navbar__item navbar__link" href="/docs/api/manual/synopsis">API</a><a class="navbar__item navbar__link" href="/blog">Blog</a><a href="https://github.com/nodegui/nodegui" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub</a><div class="react-toggle react-toggle--disabled displayOnlyInLargeViewport_2aTZ"><div class="react-toggle-track"><div class="react-toggle-track-check"><span class="toggle_BsTx">🌜</span></div><div class="react-toggle-track-x"><span class="toggle_BsTx">🌞</span></div></div><div class="react-toggle-thumb"></div><input type="checkbox" disabled="" aria-label="Dark mode toggle" class="react-toggle-screenreader-only"></div><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span><span class="DocSearch-Button-Key"></span><span class="DocSearch-Button-Key">K</span></button></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div><div class="navbar-sidebar"><div class="navbar-sidebar__brand"><a class="navbar__brand" href="/"><img class="navbar__logo" src="/img/logo-circle.png" alt="NodeGui Logo"><strong class="navbar__title">NodeGui</strong></a></div><div class="navbar-sidebar__items"><div class="menu"><ul class="menu__list"><li class="menu__list-item"><a aria-current="page" class="menu__link navbar__link--active" href="/docs/guides/getting-started">Docs</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/api/manual/synopsis">API</a></li><li class="menu__list-item"><a class="menu__link" href="/blog">Blog</a></li><li class="menu__list-item"><a href="https://github.com/nodegui/nodegui" target="_blank" rel="noopener noreferrer" class="menu__link">GitHub</a></li></ul></div></div></div></nav><div class="main-wrapper"><div class="docPage_2gpo"><div class="docSidebarContainer_3_JD" role="complementary"><div class="sidebar_2urC"><div class="menu menu--responsive menu_5FrY"><button aria-label="Open Menu" aria-haspopup="true" class="button button--secondary button--sm menu__button" type="button"><svg aria-label="Menu" class="sidebarMenuIcon_Dm3K" xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 32 32" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><ul class="menu__list"><li class="menu__list-item"><a class="menu__link menu__link--sublist menu__link--active" href="#!">The Basics</a><ul class="menu__list"><li class="menu__list-item"><a aria-current="page" class="menu__link menu__link--active active" tabindex="0" href="/docs/guides/getting-started">Getting started</a></li><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/tutorial">Learn the Basics</a></li><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/styling">Styling</a></li><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/layout">Layout</a></li><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/handle-events">Handle Events</a></li><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/scroll-view">ScrollArea</a></li><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/images">Images</a></li><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/drag-drop">Drag and drop</a></li><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/networking">Networking</a></li><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/guides/helpful-links">Helpful Links</a></li></ul></li><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!">Guides</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/guides/nodegui-architecture">Architecture</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/guides/debugging">Debugging</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/guides/debugging-in-vscode">Debugging in VSCode</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/guides/using-native-node-modules">Native Node Modules</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/guides/custom-nodegui-native-plugin">Custom NodeGui Plugin</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/guides/packaging">Packaging</a></li></ul></li></ul></div></div></div><main class="docMainContainer_3EyW"><div class="container padding-vert--lg docItemWrapper_1EkI"><div class="row"><div class="col docItemCol_2ASc"><div class="docItemContainer_3QWW"><article><header><h1 class="docTitle_1Lrw">Getting started</h1></header><div class="markdown"><p>NodeGui enables you to create desktop applications with JavaScript. You could see it
as a lightly modified variant of the Node.js runtime that is focused on desktop applications
instead of web servers.</p><p>NodeGui is also an efficient JavaScript binding to a cross platform graphical user interface
(GUI) library <code>Qt</code>. Qt is one of the most mature and efficient library for building desktop applications.
This enabled NodeGui to be extremely memory and CPU efficient as compared to other popular Javascript Desktop GUI solutions. A hello world app built with NodeGui runs on less than 20Mb of memory.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="developer-environment"></a>Developer environment<a aria-hidden="true" tabindex="-1" class="hash-link" href="#developer-environment" title="Direct link to heading">#</a></h2><p>To turn your operating system into an environment capable of building desktop apps with NodeGui, you would need Node.js, npm,a code editor of your choice, and a rudimentary understanding of your operating system&#x27;s command line client.</p><p>Along with these, there are a few operating system dependent instructions that are listed below.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="setting-up-on-macos"></a>Setting up on macOS<a aria-hidden="true" tabindex="-1" class="hash-link" href="#setting-up-on-macos" title="Direct link to heading">#</a></h3><p><strong>Requirements:</strong></p><ul><li>NodeGui supports macOS 10.10 (Yosemite) and up. NodeGui currently only supports 64bit OS.</li><li>CMake 3.1 and up (Installation instructions can be found here: <a href="https://cmake.org/install/" target="_blank" rel="noopener noreferrer">https://cmake.org/install/</a>)</li><li>Make, GCC v7</li><li>Currently supported Node.Js versions are 14.x.</li></ul><p>We strongly suggest you use some kind of version manager for Node.Js. This would allow you to switch to any version of nodejs quite easily. We recommend <code>nvm</code>: <a href="https://github.com/nvm-sh/nvm" target="_blank" rel="noopener noreferrer">https://github.com/nvm-sh/nvm</a></p><p>Confirm that both <code>node</code> and <code>npm</code> are available by running:</p><div class="mdxCodeBlock_1XEh"><div class="codeBlockContent_1u-d"><button type="button" aria-label="Copy code to clipboard" class="copyButton_10dd">Copy</button><div tabindex="0" class="prism-code language-sh codeBlock_3iAC"><div class="codeBlockLines_b7E3" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain"># This command should print the version of Node.js</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">node -v</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># This command should print the version of npm</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">npm -v</span></div></div></div></div></div><p>If both commands printed a version number, you are all set! Before you get
started, you might want to install a <a href="#a-good-editor">code editor</a> suited
for JavaScript development.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="setting-up-on-windows"></a>Setting up on Windows<a aria-hidden="true" tabindex="-1" class="hash-link" href="#setting-up-on-windows" title="Direct link to heading">#</a></h3><blockquote><p>NodeGui supports Windows 7 and later versions  attempting to develop NodeGui
applications on earlier versions of Windows might not work. NodeGui currently only supports 64bit OS.</p></blockquote><p><strong>Requirements:</strong></p><ul><li>Visual studio 2017 and up.</li><li>CMake 3.1 and up (Installation instructions can be found here: <a href="https://cmake.org/install/" target="_blank" rel="noopener noreferrer">https://cmake.org/install/</a>)</li><li>Currently supported Node.Js versions are 12.x and up.</li></ul><p>We strongly suggest you use some kind of version manager for Node.Js. This would allow you to switch to any version of nodejs quite easily.</p><p>We strongly recommend Powershell as preferred terminal in Windows.</p><p>Confirm that both <code>node</code> and <code>npm</code> are available by running:</p><div class="mdxCodeBlock_1XEh"><div class="codeBlockContent_1u-d"><button type="button" aria-label="Copy code to clipboard" class="copyButton_10dd">Copy</button><div tabindex="0" class="prism-code language-powershell codeBlock_3iAC"><div class="codeBlockLines_b7E3" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain"># This command should print the version of Node.js</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">node -v</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># This command should print the version of npm</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">npm -v</span></div></div></div></div></div><p>If both commands printed a version number, you are all set! Before you get
started, you might want to install a <a href="#a-good-editor">code editor</a> suited
for JavaScript development.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="setting-up-on-linux"></a>Setting up on Linux<a aria-hidden="true" tabindex="-1" class="hash-link" href="#setting-up-on-linux" title="Direct link to heading">#</a></h3><blockquote><p>NodeGui currently supports Ubuntu 16.04 and Debian 10 and up. Although other Linux distributions can also be easily supported. NodeGui currently only supports 64bit OS.</p></blockquote><p><strong>Requirements:</strong></p><ul><li>Make, GCC v7</li><li>CMake 3.1 and up (Installation instructions can be found here: <a href="https://cmake.org/install/" target="_blank" rel="noopener noreferrer">https://cmake.org/install/</a>)</li><li>Currently supported Node.Js versions are 12.x and up.</li><li>On Ubuntu and Ubuntu-based distros it is advisable to run <code>sudo apt-get update</code>, followed by <code>sudo apt-get install pkg-config build-essential mesa-common-dev libglu1-mesa-dev</code></li></ul><p>We strongly suggest you use some kind of version manager for Node.Js. This would allow you to switch to any version of nodejs quite easily. We recommend <code>nvm</code>: <a href="https://github.com/nvm-sh/nvm" target="_blank" rel="noopener noreferrer">https://github.com/nvm-sh/nvm</a></p><p>Confirm that both <code>node</code> and <code>npm</code> are available by running:</p><div class="mdxCodeBlock_1XEh"><div class="codeBlockContent_1u-d"><button type="button" aria-label="Copy code to clipboard" class="copyButton_10dd">Copy</button><div tabindex="0" class="prism-code language-sh codeBlock_3iAC"><div class="codeBlockLines_b7E3" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain"># This command should print the version of Node.js</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">node -v</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"># This command should print the version of npm</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">npm -v</span></div></div></div></div></div><p>If both commands printed a version number, you are all set! Before you get
started, you might want to install a <a href="#a-good-editor">code editor</a> suited
for JavaScript development.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="a-good-editor"></a>A Good Editor<a aria-hidden="true" tabindex="-1" class="hash-link" href="#a-good-editor" title="Direct link to heading">#</a></h3><p>We might suggest two free popular editors:
GitHub&#x27;s <a href="https://atom.io/" target="_blank" rel="noopener noreferrer">Atom</a> and Microsoft&#x27;s <a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">Visual Studio Code</a>. Both of
them have excellent JavaScript support.</p><p>If you are one of the many developers with a strong preference, know that
virtually all code editors and IDEs these days support JavaScript.</p><h4><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="using-your-own-custom-qt-installation-optional"></a>Using your own custom Qt installation (Optional)<a aria-hidden="true" tabindex="-1" class="hash-link" href="#using-your-own-custom-qt-installation-optional" title="Direct link to heading">#</a></h4><p><strong>Compiling Qt from source</strong></p><p>You will need to download and install Qt from source since there are no binaries from Qt for M1 yet. </p><p>(<a href="https://www.reddit.com/r/QtFramework/comments/ll58wg/how_to_build_qt_creator_for_macos_arm64_a_guide/" target="_blank" rel="noopener noreferrer">https://www.reddit.com/r/QtFramework/comments/ll58wg/how_to_build_qt_creator_for_macos_arm64_a_guide/</a>)</p><div class="mdxCodeBlock_1XEh"><div class="codeBlockContent_1u-d"><button type="button" aria-label="Copy code to clipboard" class="copyButton_10dd">Copy</button><div tabindex="0" class="prism-code language-undefined codeBlock_3iAC"><div class="codeBlockLines_b7E3" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">git clone git://code.qt.io/qt/qt5.git</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">cd qt5</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">git checkout 5.15</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">./init-repository --module-subset=essential -f</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">git submodule init qtsvg</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">git submodule update qtsvg</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">cd ..</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">mkdir qt5-5.15-macOS-release</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">cd qt5-5.15-macOS-release</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">../qt5/configure -release QMAKE_APPLE_DEVICE_ARCHS=arm64 -opensource -confirm-license -nomake examples -nomake tests -skip qt3d -skip webengine -skip qtactiveqt -skip qtcanvas3d -skip qtdeclarative -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtcharts -skip qtgraphicaleffects -skip qtlocation -skip qtpurchasing -skip qtquickcontrols -skip qtquickcontrols2 -skip qtremoteobjects -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtvirtualkeyboard -skip qtscript</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">make -j15</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">make install</span></div></div></div></div></div><p>This should install Qt into something like this <code>/usr/local/Qt-5.15.3</code> (your directory can change. This will be displayed when running make)</p><p><strong>Pointing nodegui to use your custom Qt installation</strong></p><p>Now just set <code>export QT_INSTALL_DIR=&lt;your qt path&gt;</code> . In the above example it would look something like this <code>export QT_INSTALL_DIR=/usr/local/Qt-5.15.3</code>. Add this in your .zshrc or .bashrc so that you dont need to repeat this process again.</p><p>Now just <code>rm -rf node_modules</code> and do <code>npm install</code> again.</p><p>The logs should say something like <code>CustomQt detected at &lt;your qt path&gt;. Hence, skipping Mini Qt installation</code>.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="hello-world"></a>Hello World<a aria-hidden="true" tabindex="-1" class="hash-link" href="#hello-world" title="Direct link to heading">#</a></h3><p>Clone and run the code in this tutorial by using the
<a href="https://github.com/nodegui/nodegui-starter" target="_blank" rel="noopener noreferrer"><code>nodegui/nodegui-starter</code></a> repository.</p><p><strong>Note</strong>: Running this requires <a href="https://git-scm.com" target="_blank" rel="noopener noreferrer">Git</a> and <a href="https://www.npmjs.com/" target="_blank" rel="noopener noreferrer">npm</a>.</p><div class="mdxCodeBlock_1XEh"><div class="codeBlockContent_1u-d"><button type="button" aria-label="Copy code to clipboard" class="copyButton_10dd">Copy</button><div tabindex="0" class="prism-code language-sh codeBlock_3iAC"><div class="codeBlockLines_b7E3" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">git clone https://github.com/nodegui/nodegui-starter</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">cd nodegui-starter</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">npm install</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">npm start</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div></div></div></div></div><p><strong>Note</strong>: If you encounter errors installing <code>nodegui</code>, please check the <a href="/docs/faq#why-does-installation-fail-at-minimal-qt-setup">FAQs</a> for additional help.</p><p>That&#x27;s it!</p><p>Congratulations! You&#x27;ve successfully run and modified your first NodeGui app.</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="now-what"></a>Now what?<a aria-hidden="true" tabindex="-1" class="hash-link" href="#now-what" title="Direct link to heading">#</a></h3><p>If you&#x27;re curious to learn more about NodeGui, continue on to the <a href="/docs/guides/tutorial">tutorial</a>.</p></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/nodegui/nodegui/edit/master/website/docs/guides/getting-started.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 40 40" style="margin-right:0.3em;vertical-align:sub"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div></div></div><div class="margin-vert--lg"><nav class="pagination-nav" aria-label="Blog list page navigation"><div class="pagination-nav__item"></div><div class="pagination-nav__item pagination-nav__item--next"><a class="pagination-nav__link" href="/docs/guides/tutorial"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Learn the Basics »</div></a></div></nav></div></div></div><div class="col col--3"><div class="tableOfContents_3SO_"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#developer-environment" class="table-of-contents__link">Developer environment</a><ul><li><a href="#setting-up-on-macos" class="table-of-contents__link">Setting up on macOS</a></li><li><a href="#setting-up-on-windows" class="table-of-contents__link">Setting up on Windows</a></li><li><a href="#setting-up-on-linux" class="table-of-contents__link">Setting up on Linux</a></li><li><a href="#a-good-editor" class="table-of-contents__link">A Good Editor</a></li><li><a href="#hello-world" class="table-of-contents__link">Hello World</a></li><li><a href="#now-what" class="table-of-contents__link">Now what?</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container"><div class="row footer__links"><div class="col footer__col"><h4 class="footer__title">Docs</h4><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/docs/guides/getting-started">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/api/manual/synopsis">API</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">Community</h4><ul class="footer__items"><li class="footer__item"><a href="https://spectrum.chat/nodegui" target="_blank" rel="noopener noreferrer" class="footer__link-item">Spectrum</a></li><li class="footer__item"><a href="https://nodegui.slack.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack</a></li><li class="footer__item"><a href="https://twitter.com/node_gui" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter</a></li><li class="footer__item"><a href="https://medium.com/nodegui" target="_blank" rel="noopener noreferrer" class="footer__link-item">Medium</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">More</h4><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/blog">Blog</a></li><li class="footer__item"><a href="https://react.nodegui.org" target="_blank" rel="noopener noreferrer" class="footer__link-item">React NodeGui</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/faq">FAQ</a></li></ul></div></div><div class="text--center"><div>Copyright © 2021 NodeGui</div></div></div></footer></div>
<script src="/styles.1b28431e.js"></script>
<script src="/runtime~main.7052bd04.js"></script>
<script src="/main.17e769fc.js"></script>
<script src="/1.386a6db3.js"></script>
<script src="/2.2ece8892.js"></script>
<script src="/3.8184ab2d.js"></script>
<script src="/1be78505.afc94944.js"></script>
<script src="/411.da87afc2.js"></script>
<script src="/935f2afb.84f2e551.js"></script>
<script src="/17896441.14a2377a.js"></script>
<script src="/c9ea0dcf.5d15385a.js"></script>
</body>
</html>