All Projects → longseespace → react-qml

longseespace / react-qml

Licence: MIT License
Build native, high-performance, cross-platform applications through a React (and/or QML) syntax

Programming Languages

HTML
75241 projects
typescript
32286 projects
javascript
184084 projects - #8 most used programming language
C++
36643 projects - #6 most used programming language
shell
77523 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to react-qml

Arcgis Appstudio Samples
Collection of samples available in AppStudio for ArcGIS desktop to learn and help build your next app.
Stars: ✭ 78 (-13.33%)
Mutual labels:  qt, native, qml
Quickvtk
A VTK prototyping application based on QtQuick/QML
Stars: ✭ 228 (+153.33%)
Mutual labels:  qt, qml
Cool Retro Term
A good looking terminal emulator which mimics the old cathode display...
Stars: ✭ 15,532 (+17157.78%)
Mutual labels:  qt, qml
yacalendar
Yet another calendar component for Qt Quick Controls 2
Stars: ✭ 23 (-74.44%)
Mutual labels:  qt, qml
Stackoverflow
my answers in Stack Overflow
Stars: ✭ 211 (+134.44%)
Mutual labels:  qt, qml
Sortfilterproxymodel
A nicely exposed QSortFilterProxyModel for QML
Stars: ✭ 214 (+137.78%)
Mutual labels:  qt, qml
Lambda Lantern
🧙 ‎‎ A 3D game about functional programming patterns. Uses PureScript Native, C++, and Panda3D.
Stars: ✭ 122 (+35.56%)
Mutual labels:  desktop-app, native
Qml Rust
QML (Qt Quick) bindings for Rust language
Stars: ✭ 196 (+117.78%)
Mutual labels:  qt, qml
jspaint.exe
🌂JS Paint ~~ as a cross-platform native desktop app. In other words, the "🎨 Classic MS Paint, REVIVED + ✨Extras".exe hehe
Stars: ✭ 117 (+30%)
Mutual labels:  desktop-app, native
graderjs
💦 Turn your full-stack NodeJS application into a downloadable cross-platform binary. Also works for SPAs, or regular web-sites.
Stars: ✭ 147 (+63.33%)
Mutual labels:  desktop-app, native
tenplayer
Modern Music Player for Linux
Stars: ✭ 18 (-80%)
Mutual labels:  qt, qml
Qtfirebase
An effort to bring Google's Firebase C++ API to Qt + QML
Stars: ✭ 208 (+131.11%)
Mutual labels:  qt, qml
Qtmvvm
A mvvm oriented library for Qt, to create Projects for Widgets and Quick in parallel
Stars: ✭ 205 (+127.78%)
Mutual labels:  qt, qml
Qml Box2d
Box2D QML plugin
Stars: ✭ 223 (+147.78%)
Mutual labels:  qt, qml
Qml Creative Controls
QML controls for creative applications and creative coding
Stars: ✭ 199 (+121.11%)
Mutual labels:  qt, qml
Ssokit Qmake
A Simple & Strong Tool for TCP&UDP Debug
Stars: ✭ 231 (+156.67%)
Mutual labels:  qt, qml
ben
Fast, native*, cross-platform Slack client, develop with React QML
Stars: ✭ 19 (-78.89%)
Mutual labels:  desktop-app, qml
Asyncfuture
Use QFuture like a Promise object
Stars: ✭ 193 (+114.44%)
Mutual labels:  qt, qml
Qml Coding Guide
A collection of good practices when writing QML code
Stars: ✭ 196 (+117.78%)
Mutual labels:  qt, qml
Notepanda
📃 A simple cross-platform notepad. Based on Qt and C++.
Stars: ✭ 134 (+48.89%)
Mutual labels:  desktop-app, qt

ReactQML

Build native, high-performance, cross-platform universal applications (desktop and mobile) through a React (and/or QML) syntax

🚧 NOTE: ReactQML is a work-in-progress! 🚧

Features

  • Native components: no Electron
  • Batteries included: access to full webpack ecosystem and wide sets of QML modules
  • Cross platform: macOS/Windows/Linux/Android/iOS/tvOS/watchOS (see Qt supported platforms).
  • Write codes in modern Javascript (ES2016+) or TypeScript (transpiling with babel, bundling with webpack, highly customizable)
  • Works with existing front-end libraries such as redux, lodash, rxjs, redux-observable etc.
  • Supports Hot Module Reloading
  • Supports react-devtools & redux-devtools (Time Travel Debugging possible)
  • New in v0.5: supports React Hooks!

Quickstart

See react-qml-quickstart and Ben

API Example

You can build UI components using JSX syntax and/or QML syntax.

React Component

import React from "react";
import { render, Window, ColumnLayout, Text } from "react-qml";

const styles = {
  window: {
    width: 400,
    height: 500
  },
  title: {
    fontSize: 20
  },
  subtitle: {
    color: "#333"
  }
};

const App = () => (
  <Window visible style={styles.window}>
    <ColumnLayout width={200} anchors={{ centerIn: "parent" }}>
      <Text
        text="Welcome to React QML"
        Layout={{ fillWidth: true }}
        style={styles.title}
      />
      <Text
        text="To get started, edit index.js"
        Layout={{ fillWidth: true }}
        style={styles.subtitle}
      />
    </ColumnLayout>
  </Window>
);

export default () => render(<App />);

QML Components

App.qml

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
import QtQuick.Window 2.2

Window {
  width: 400
  height: 500
  visible: true

  ColumnLayout {
    width: 200
    x: (Window.width - width) / 2
    y: (Window.height - height) / 2

    Text {
      text: "Welcome to React QML"
      Layout.fillWidth: true
      font.pointSize: 20
    }

    Text {
      text: "To get started, edit App.qml"
      color: "#333333"
      Layout.fillWidth: true
    }
  }
}

index.js

import React from "react";
import { render } from "react-qml";

import App from "./App.qml";

export default () => render(<App />);

Other Awesome Projects

  • Haul: A command line tool for developing React Native apps
  • Revery: ⚡️ Native, high-performance, cross-platform desktop apps - built with Reason!
  • Proton Native: Create native desktop applications through a React syntax, on all platforms
  • React Native: Build native mobile apps using JavaScript and React
  • React Native Desktop: A Desktop port of React Native, driven by Qt, forked from Canonical
  • React Native macOS: React Native for macOS is an experimental fork for writing desktop apps using Cocoa

License

  • ReactQML is available under MIT license
  • Qt is available under different licensing options. See here and here

Copyright for portions of project React QML are held by Mike Grabowski as part of project Haul. All other copyright for project React QML are held by Long Nguyen.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].