Skip to content

Latest commit

 

History

History
106 lines (77 loc) · 4.21 KB

getting_started.md

File metadata and controls

106 lines (77 loc) · 4.21 KB


Getting started

Prerequisites

Recommended knowledge

nRF Connect is based on Electron, React, and Redux. Some familiarity with React and Redux is recommended in order to create apps. You should at least understand concepts like JSX, props, actions, reducers, and immutable state.

It would be fine to develop in JavaScript but we do most of our development in TypeScript these days. So we recommend that and provide the tooling for it.

Install development tools

You should have a basic setup and little familiarity with these:

  • Node.js (at least version 14)
  • Git
  • An editor with good TypeScript support (e.g. VS Code, Atom, WebStorm)

Install nRF Connect

If you only want to develop (existing or new) apps, it is sufficient to have nRF Connect for Desktop installed as a binary. If you do not have it installed already, just follow the instructions on how to install nRF Connect for Desktop.

Architecture of nRF Connect for Desktop

Before starting, you should know the basic structure of nRF Connect for Desktop with its two main blocks, the core and the apps:

The core

The core resides in the two projects:

pc-nrfconnect-launcher contains

  • The launcher from which the apps are installed and launched
  • The Electron shell in which the launcher and the apps run

pc-nrfconnect-shared contains the common code for all apps: UI elements and code to give lower level access hardware.

A bit unusual: Some common libraries are not only provided during development and then bundled into the apps. Instead the launcher also provides these libraries during runtime, so that the individual apps do not have to include the shared code themselves.

Providing the common libraries through the launcher at runtime has two advantages for the apps: The apps can be smaller and they are usually platform independent, as the only platform specific parts are in the core.

Conversely, this means that the core is platform dependent and a platform-specific variant must be downloaded or compiled.

Besides common code pc-nrfconnect-shared also provides common package dependencies, scripts and configurations for all official applications and the core. E.g. it includes configurations for esbuild, ESLint and Jest as well as scripts to run them.

The apps

Nordic Semiconductors provides several apps to work with the development kits or dongles from Nordic Semiconductor. They are all installed and run through the launcher provided by the core.

Besides using the officially distributed apps, you are also able to run your own apps. This is described later, when we describe how to develop your own apps.

The rest

There are some more projects that aid the development of apps for nRF Connect for Desktop:

Next steps

You are now set up to develop a new app, work on an existing app or work on the core of nRF Connect for Desktop.