Our great sponsors
-
expo
An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
tamagui
Style React fast with 100% parity on React Native, an optional UI kit, and optimizing compiler.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
> “Make a progressive web app”: yes, that might be the way to go; provided you can get the users to ‘install’ it on their devices.
Assuming you're talking about the not-well-known process of adding PWAs to the Home screen, it's worth noting that you can package web apps for app store distribution as well. https://capacitorjs.com/
It has become very practical / doable in the recent year or so. In my experience, if you have lot of frontend web experience, the easiest way to ship a RN app is by using Solito [0]. Also check out Nativewind [1] which allows you to style native apps the same way like you would on web. I was able to ship the first version of our app in about 1.5 weeks with this stack. Also checkout Tamagui [2].
[0] - https://solito.dev
I remember Appcelerator. In fact I'm still using it to this day. The core Titanium is now open source and the Apps are "true" native. Give them another look and you may be surprised: https://titaniumsdk.com
If you fancy Go, there's Fyne. I don't work in the space so I cannot judge it.
https://github.com/fyne-io/fyne
FYI react-native-reanimated (https://github.com/software-mansion/react-native-reanimated) is not the Animated API from React Native. react-native-reanimated allows JS code to run on a UI thread that is able to synchronously modify layout, providing alternative synchronous ways for you to hook into the layouting. For instance, as opposed to the asynchronous `measure()` method provided by React Native to measure layouts, react-native-reanimated allows one to call their version of `measure()` (https://docs.swmansion.com/react-native-reanimated/docs/api/...) to perform the same operation on the UI thread, synchronously.
I meant both Animated APIs - neither is able to perform synchronous layouts - because react native is not able to do that. That’s the issue that’s stopping the page sheet controllers being added to react native. I actually was helping getting this added, but we never managed to get the layout issues fixed - https://github.com/facebook/react-native/pull/34834
The measure function you mention isn’t co-ordinated to the layout, so you could read it while a layout is pending and get old data - but that doesn't really matter for most cases