██████╗ ███████╗ █████╗ ██╗ ███╗ ██╗ █████╗ ████████╗██╗██╗ ██╗███████╗
██╔══██╗██╔════╝██╔══██╗██║ ████╗ ██║██╔══██╗╚══██╔══╝██║██║ ██║██╔════╝
██████╔╝█████╗ ███████║██║ ██╔██╗ ██║███████║ ██║ ██║██║ ██║█████╗
██╔══██╗██╔══╝ ██╔══██║██║ ██║╚██╗██║██╔══██║ ██║ ██║╚██╗ ██╔╝██╔══╝
██║ ██║███████╗██║ ██║███████╗ ██║ ╚████║██║ ██║ ██║ ██║ ╚████╔╝ ███████╗
╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═══╝ ╚══════╝
ℹ️ 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.
git clone https://github.com/alloy/RealNative.git
cd RealNative
yarn install
cd ios
pod install
cd ..
npx react-native run-ios
Available under the MIT license.
Thanks to Richard J. Ross III for porting the basic scaffolding of an iOS app to C.