Proposed redesign of the project:
react-mobile-web - The core React Native components and APIs optimized and adapted for mobile web development.
react-mobile-web/addons - Exports other components and APIs (e.g., "Switch", "Checkbox", "AsyncStorage")
react-mobile-web/compat - A compatibility layer for rendering React Native apps on web. Includes stubsNativeModules, BackAndroid stubs, etc. Alias for react-native(either way) and use a bundler with support for tree-shaking.
Why? React Native is not currently designed to extend beyond Android/iOS. It exports platform-specific modules, props, and styles in an increasing number of places. The React Web ecosystem is all over the place.
The idea would be to focus on developing a platform for mobile web apps (over RN API compatibility), enable faster development of the library, and explore a more platform-agnostic design (e.g., react-mobile and createSwitch(renderer) => Switch). Adopting a compat layer (a la Preact) may make it easier to improve RN compatibility (and document the differences).
This make sense.
Just one question: what are the argument for something to be in core or in the index? Eg: Dimensions seems to be a core module to me - I guess I just miss something :)
If an API/component is a dependency of the basic building blocks in core, it could be added to core. At the moment Dimensions is not and isn't needed to build components in most cases, whereas Image, View, Text and StyleSheet are.
I've been thinking more seriously about renaming this project to react-mobile-web after a conversation with @tomocchino and @sebmarkbage. I've updated the issue accordingly.
What's the reasoning for the change if you don't mind me asking?
See above
What about:
I don't really see how it's specific to "mobile". This word don't really make sense to me as we are seeing more and more new kind of devices (smart*) with screen and browsing capabilities.
react-web is already taken
I don't really see how it's specific to "mobile".
RN is literally a mobile app library
react-native-web still seems more appropriate since it's obvious to people that it's "react-native, but on the web". react-mobile-web makes one think that it's another React component library for mobile web apps, which although it kind of is, it's still more strongly related to react-native
react-native-mobile-web could be more appropriate but it may be too long :) Since usually the mobile-web version and app version of a product share most of the design and business logic, we'd like to have the same code being able to run on ios, android and mobile browsers with just a few tweaking (Desktop browser is another story). This library really fills the gap and we'd like to try it out in production.
I personally feel this is a terrible idea and the main reason I opted to use this project was with the understanding that it was seeking to make a web compatible version of RN.
While I understand your proposed direction on this would still have a section for that, why not just continue the current scope of this project and create another one to fill what ever need your seeing?
I've just been reading these in emails and need to review the proposed in more detail, but wanted to voice my opposition to this.
the main reason I opted to use this project was with the understanding that it was seeking to make a web compatible version of RN
Nothing mentioned here changes that
What about a monorepo?
My vote is to keep it react-native-web. It's more intuitive imho. Adding mobile just makes it confusing and I agree with @RangerMauve
Agree adding mobile makes it confusing. Thought it would now work only as a mobile site or something strange like that.
Have you guys seen https://github.com/lelandrichardson/react-primitives? Similar project.
Most helpful comment
react-native-webstill seems more appropriate since it's obvious to people that it's "react-native, but on the web".react-mobile-webmakes one think that it's another React component library for mobile web apps, which although it kind of is, it's still more strongly related to react-native