Actually, behavioral symmetry is not an issue with React Native so much as its an issue with poor UX design. Nothing about RN mandates that the apps behave similarly. That the iOS app and the desktop app look and behave similarly is simply a design choice made by the team to maintain a consistent look/feel/UX across the apps, not RN itself. We do not share Views. All Views across all the apps are custom.
However, as Discord's mobile teams grow and expand we're exploring alternative UX designs that are significantly more mobile friendly. So your feedback is heard loud and clear at HQ :)
> Actually, behavioral symmetry is not an issue with React Native so much as its an issue with poor UX design. Nothing about RN mandates that the apps behave similarly.
I think the economics of RN strongly do though. Why would you use RN if you aren't planning to reuse code between environments?
The economics of RN allows us to share the last 4. However, sharing the first is actually more or less impossible without tooling like react-native-web as the components that exist on a native iOS app and the components that exist in HTML are just different. Certainly you can argue that sharing this much business logic would necessitate that the UI layer looks all the same, but I fundamentally disagree. That is like saying that because all your clients use the same API, they all must look the same.
I guess there is an implicit value judgement here that React+Redux's approach is desirable for your team, so that motivates using utility libraries not optimized for the constrained environment and a FRP framework with those characteristics.
Yes, this is 100% correct. That being said you can also create a React app using FRP framework such as Cycle JS and share exactly the same amount of code that I've listed above. Our team has chosen to go the React/Redux approach; I would argue that as an untyped language Javascript is unsuitable for FRP in the first place, despite FRP's advantages in handling reactive UI.
It was that you had disabled right click on the join server page in Chrome, it is generally considered bad practice, but somehow I liked it since it reinforced the game interface feeling.
However, as Discord's mobile teams grow and expand we're exploring alternative UX designs that are significantly more mobile friendly. So your feedback is heard loud and clear at HQ :)