Skip to content

alloy/RealNative

Repository files navigation

██████╗ ███████╗ █████╗ ██╗         ███╗   ██╗ █████╗ ████████╗██╗██╗   ██╗███████╗
██╔══██╗██╔════╝██╔══██╗██║         ████╗  ██║██╔══██╗╚══██╔══╝██║██║   ██║██╔════╝
██████╔╝█████╗  ███████║██║         ██╔██╗ ██║███████║   ██║   ██║██║   ██║█████╗  
██╔══██╗██╔══╝  ██╔══██║██║         ██║╚██╗██║██╔══██║   ██║   ██║╚██╗ ██╔╝██╔══╝  
██║  ██║███████╗██║  ██║███████╗    ██║ ╚████║██║  ██║   ██║   ██║ ╚████╔╝ ███████╗
╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚══════╝    ╚═╝  ╚═══╝╚═╝  ╚═╝   ╚═╝   ╚═╝  ╚═══╝  ╚══════╝

ℹ️ This was an April Fool’s 2020 project. While there may be interesting learnings to take away from this, I would not advice creating applications in this manner generally.

A React Native application with only user-land C code. For those of us that do want to make use of React’s approach to defining views, but also realize that modern languages like Objective-C and Swift are just too high-level. Really, stitching together views needs to be optimized as much as possible. (PRs to port this code to assembler are much appreciated.)

Highlights include:

  • Change code, re-compile, wait. Finally have that time again to play with swords.
  • No longer be required to neatly separate view/controller code from native [threaded] code that affects the entire system.
  • Actual CSS (even if just flexbox).

See the Components.c file for the definitions of the components that make up the app and as a starting point to browse the rest of the user-land source from.

Install

git clone https://github.com/alloy/RealNative.git
cd RealNative
yarn install
cd ios
pod install
cd ..
npx react-native run-ios

LICENSE

Available under the MIT license.

Thanks to Richard J. Ross III for porting the basic scaffolding of an iOS app to C.

About

React Native C Example – WHEN PERFORMANCE TRULY MATTERS!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published