Exponent – Build native apps in JS that work across both iOS and Android
1–10 of 119 posts
Re: Exponent – Build native apps in JS that work across both iOS and Android
#2Re: Exponent – Build native apps in JS that work across both iOS and Android
#3On the one hand I like this, as it adds in more shared functionality across both iOS and Android out of the box (maps for example). On the other hand, I believe this also breaks the ability to add in custom RN modules, which is part of the reason I enjoy it. Would love to see some of this getting folded back into react native core.
Re: Exponent – Build native apps in JS that work across both iOS and Android
#4On the one hand I like this, as it adds in more shared functionality across both iOS and Android out of the box (maps for example). On the other hand, I believe this also breaks the ability to add in custom RN modules, which is part of the reason I enjoy it. Would love to see some of this getting folded back into react native core.
Are you sure you can't use custom RN modules ? That would be.. very surprising.
From the FAQ (https://docs.getexponent.com/versions/v10.0.0/introduction/f...):
"But no native modules...
The most limiting thing about Exponent is that you can't add in your own native modules. We give you most of the most commonly desired things, but if you need something very custom--like on-the-fly video processing or low level control over the Bluetooth radio to do a firmware update--then Exponent won't work for you and you should just use regular React Native."
Re: Exponent – Build native apps in JS that work across both iOS and Android
#5Earlier quoted context omitted.
Are you sure you can't use custom RN modules ? That would be.. very surprising.
I found it surprising too... From the FAQ ( https://docs.getexponent.com/versions/v10.0.0/introduction/f... ): "But no native modules... The most limiting thing about Exponent is that you can't add in your own native modules. We give you most of the most commonly desired things, but if you need something very custom--like on-the-fly video processing or low level control over the Bluetooth radio to do a firmware updat…
Re: Exponent – Build native apps in JS that work across both iOS and Android
#6Earlier quoted context omitted.
I found it surprising too... From the FAQ ( https://docs.getexponent.com/versions/v10.0.0/introduction/f... ): "But no native modules... The most limiting thing about Exponent is that you can't add in your own native modules. We give you most of the most commonly desired things, but if you need something very custom--like on-the-fly video processing or low level control over the Bluetooth radio to do a firmware updat…
I wonder why. Seems like a huge oversight.
Re: Exponent – Build native apps in JS that work across both iOS and Android
#7On the one hand I like this, as it adds in more shared functionality across both iOS and Android out of the box (maps for example). On the other hand, I believe this also breaks the ability to add in custom RN modules, which is part of the reason I enjoy it. Would love to see some of this getting folded back into react native core.
We intentionally chose to not let users drop down to native -- the idea of having an interpreted language that sits on top of a native runtime on multiple platforms is not a new one, and it allows for so many benefits that you lose out on if developers can add arbitrary compiled code with direct access to system APIs.
Additionally, there is a significant value-add of using Exponent in terms of upgrades. As great as React Native is, it also moves extremely fast and it can be difficult to keep up with new releases -- a change in React Native might cause several of your native dependencies to break, and you'll need to fork those libraries and fix them if the maintainer isn't keeping on the same schedule as you. Updates with Exponent are as simple as updating JavaScript, which has much less churn and breaking changes than the native side (the React API itself is very mature, the APIs for specific native components may change).
Another nice advantage of this is that you can work on an iOS app from Windows and Linux, because you don't need to compile your app with Xcode (we handle builds for you when you want to ship to the app store, before that you can just use the Exponent client).
We ship with a bunch of APIs out of the box and are constantly improving them and adding more. We have analytics tools like Amplitude and Segment built in, Maps, Facebook login (working on Google Login), and more: https://docs.getexponent.com/versions/latest/index.html
React Native is still very early, though, and Exponent is just a small team of seven, so we understand that we can't possibly expose every API that developers working with the platform might want. So, we are working on a way for developers to be able to still take advantage of the Exponent toolchain and layer on native code. I've written up our approach in more detail here: https://blog.getexponent.com/answered-on-slack-ejecting-from...
Re: Exponent – Build native apps in JS that work across both iOS and Android
#8On the one hand I like this, as it adds in more shared functionality across both iOS and Android out of the box (maps for example). On the other hand, I believe this also breaks the ability to add in custom RN modules, which is part of the reason I enjoy it. Would love to see some of this getting folded back into react native core.
Hi there! I work on Exponent. We intentionally chose to not let users drop down to native -- the idea of having an interpreted language that sits on top of a native runtime on multiple platforms is not a new one, and it allows for so many benefits that you lose out on if developers can add arbitrary compiled code with direct access to system APIs. Additionally, there is a significant value-add of using Exponent in te…
Re: Exponent – Build native apps in JS that work across both iOS and Android
#9Edit - brentvatne just answered this: "we handle builds for you when you want to ship to the app store, before that you can just use the Exponent client".
Re: Exponent – Build native apps in JS that work across both iOS and Android
#10I don't think downloading scripting or native code that changes how an app behaves from outside sources has been allowed on the App Store, so what gives?