NebiOS#

NebiOS Applications#

How NebiOS Apps Work#

NebiOS applications follow a multi-stage process to ensure security, performance, and compatibility with the system:

  1. Stage 1 - `napp-run`: Responsible for execution and permission selection. The user selects permissions for the application, ensuring that no unauthorized access to system resources occurs.

  2. Stage 2 - `napp-container`: This tool handles binary caching and containerization, which ensures the application runs in a secure and isolated environment.

  3. Stage 3 - Application: The application itself, utilizing resources permitted by the user and running within the secure container.

  4. Resources: The application interacts with the device’s nodes, folders, files (libraries, some system binaries, and user files), and the NebiOS operating system (GNU/Linux).

Libraries and IDEs#

Developers can use GTK+3 (highly recommended), Qt, Tkinter, or other libraries to build applications specifically for NebiOS.

Advantages of GTK+3:#

  • Complete Compatibility: Fully integrates with NebiOS.

  • Effortless Native Look: Applications seamlessly adapt to the system’s native theme, ensuring a consistent and beautiful user interface.

  • Responsive Layouts: Simplified layout options make it easy to create responsive designs, which is especially important for NebiOS as it evolves to support various form factors.

  • Minimal Application Size: Due to deep system integration, applications built with GTK+3 tend to have a significantly smaller footprint.

Disadvantages of GTK+3:#

  • Linux-only: GTK+3 is designed primarily for Linux, and porting applications to other platforms like macOS and Windows can be challenging.

Advantages of Qt:#

  • Cross-platform: Qt allows you to create applications that run on multiple operating systems.

  • Ideal for Complex Projects: Qt’s flexibility is perfect for larger, more complex applications.

Disadvantages of Qt:#

  • Less Aesthetic: Qt applications can look out of place compared to native applications.

  • Larger Size: Qt applications tend to have a larger footprint compared to GTK+3 applications.

Note: Since NebiOS does not natively include QEMU, you must bundle it with your application. You can download a QEMU AppImage from [this link](lucasmz1/Qemu_Appimage) and extract it using –appimage-extract, then integrate it into your application.

Supported IDEs for NebiOS:#

  • Nedev (NebiOS Exclusive): Specifically designed for NebiOS development.

  • VS Code

  • GNOME Builder

  • PyCharm

  • CLion

With the exception of GNOME Builder, all IDEs are available through the Bundle Store. GNOME Builder can be installed via apt.

Nedev vs PyCharm:#

  • Nedev Advantages: - Easy to use. - Direct support for GTK+3 autocompletion. - Low resource usage. - Keyboard-centric run target customization. - Integrated with NebiSoft services and NebiOS APIs.

    Disadvantages: - Still under development. - Less full-featured than PyCharm, which may cause difficulties in complex projects.

  • PyCharm Advantages: - Great for more advanced projects. - Stable and reliable.

    Disadvantages: - High resource consumption (due to being based on IntelliJ, a Java framework). - Not ideal for lower-end systems or those with limited RAM. - More mouse-centric in terms of GUI editing. - Requires stub generation for GTK+3 integration.

Create Your Own App#

Follow these steps to create your first NebiOS application using Nedev:

Step 1: Install Nedev#

  • Install Nedev from the Bundle Store. Note that Nedev requires NebiOS 3.2 or later to run smoothly.

  • Open Nedev and follow the on-screen setup instructions.

Step 2: Create a New Project#

  • Once the necessary libraries and tools are installed, the start screen will appear.

  • Click on Create New Project, select your programming language (Python, C, etc.), and choose your desired interface library (GTK+3, Qt, TUI, Web App).

  • Set the project location and be sure not to use spaces in the project name. Instead, use underscores (_) or hyphens (-). This is crucial for code compatibility.

Step 3: Start Developing#

  • You can access help documentation for different programming languages and interface libraries from the Help tab in the left-hand panel.

Step 4: Test Your Application#

  • You can test your application by running make run in a new terminal tab or by clicking the Run button in the Header Bar.

Step 5: Publish Your Application#

  • With MaintainHub temporarily down, publish your applications as NebiCloud share link.

  • Send the download link to info@nebisoftware.com. Remember that this is not a bot or spam; one person monitors this email. Be sure to follow up on responses.