1. 7
  1. 2

    I really want to give RNW a go, but after experiencing how easy RN development for Android and iOS is with Expo, I dread going back to having everything break every few days. I really can’t wait for Expo to pick up Windows support. I’m sure it’ll come eventually.

    1. 2

      I use React-native (for mobile android) and React-native-Web (also stands for RNW) - for Web, Expo. Not using React-native-for-windows yet, but given the attention and support MS is giving it, I might tuckle that (although business drivers are not yet there, for such an investment and specialization)

      Being a single resource on the project that required Mobile and Web UI, I am glad I picked React-native path.

      Now the UI side of the system is about 40K lines of Javascript. There are also platform-native pieces that are not in JS, of course.

      My mobile apps are hybrid, meaning that initial screens and some platform specific stuff is still uses native APIs, but the rest is React-Native + Expo (I use only Expo – audio player module). Being hybrid allows me to choose what pieces of the RN or Expo I want to use directly, or which ones I would implement directly for a specific platform.

      I would not have been able to do this without React native. I do not think. I cannot imagine the cognitive overload and just boiler-plate work, if I would have to build web using angular, and mobile side of things using – platform specific APIs.

      I am certainly happy that MS has been paying attention to React, React native and making it workable with C++. May be one day React-Native will rival QT (with exception of low-power devices, I guess).

      Another thing that I noticed I started doing, even my native code that renders some UI screens (eg for subscription and other platform specific services) – I tend to use same model as React:

      A state, state.set( fn ) and a render method where I just display the GUI. :-) . state.set usually then calls the ‘render’ method when state is changed. Not difficult to do but eases my cognitive load about when to update a UI screen, how to troubleshoot /etc.

      I guess that whole pattern grew on me over time (before, in my early days of GUI dev, I was doing signal/slots or worse yet – the callbacks)