[HN Gopher] Solito - React Native and Next.js unified ___________________________________________________________________ Solito - React Native and Next.js unified Author : reimertz Score : 67 points Date : 2022-03-14 20:51 UTC (2 hours ago) (HTM) web link (solito.dev) (TXT) w3m dump (solito.dev) | reimertz wrote: | For anyone interested, here is the keynote introducing Solito | from Next.js Conf 2021 by it's creator Fernando Rojo. | | https://www.youtube.com/watch?v=0lnbdRweJtA | chrisabrams wrote: | I didn't know React Native + Next.js was a thing? What is the | goal of doing that? I don't know what problem Solito is solving, | some helpful context would be nice for those of us who are | foreign to the problem. | theturtletalks wrote: | It's mainly cross platform components (Fernando refers to them | as screens) that can be used on the web, iOS, and Android. In | Next.js, you can import these components as pages. On iOS, file | based routing does not exist. Solito fills in the cracks. His | video at Next.js Conf was really informative: | https://www.youtube.com/watch?v=0lnbdRweJtA. | _scottpaulin wrote: | This looks super cool. | | Rookie question from a Web dev here - what functionality does | react native provide that isn't available on Web? | kall wrote: | The benefit is that you can make an app with platform-native | views and navigation. If you don't care about this native | "feel" than it doesn't matter and capacitor may be a better | choice if you just need access to some hardware or push | notifications. | | I have personally drunken the kool-aid to the extend that I'd | rather develop a pure web project with react-native-web because | I like the choices/constraints it introduces but I don't think | that's the case for most people. | danielrhodes wrote: | React using React Native is almost identical, with a few key | differences: | | 1) No HTML elements. React Native provides some low level | elements for views, text, etc. The rest depends on the | platforms and packages you have installed. 2) You can't use | CSS, so you use something that is similar to CSS (including | flex box), but isn't cascading. 3) Since ultimately React | Native results in native views being rendered, you can also use | some of the native view debugging that exists. 4) Changes made | in React are batched up and sent to the native side of things, | which results in some performance characteristics you don't see | on the web or native mobile. There is also a difference between | iOS and Android performance. You feel this a lot more on mobile | than on the web. | [deleted] | moojd wrote: | I would guess that the point is to share more code between web | and mobile. | yesimahuman wrote: | This looks cool, nice work! As an alternative, if you'd like to | have a single web-based codebase for iOS/android/pwa/etc using | Next.js then you might like this approach using Capacitor: | https://github.com/mlynch/nextjs-tailwind-ionic-capacitor-st... | | The benefit over using RN for this is being able to use libraries | like Tailwind on all platforms and having a true single codebase. | hokumguru wrote: | Applause to Fernando for this. His work on react native open | source has been incredible. Definitely check out his other | projects Dripsy and Moti as well! | Graffur wrote: | "Solito is the missing piece for using React Native with Next.js | to build powerful cross-platform apps." | | What was missing though? | kall wrote: | A solid strategy for bridging pages/urls of next.js with the | screen/navigation patterns on mobile. | crooked-v wrote: | I suspect I'll end up using this ASAP just for the useParam hook, | as it's a pattern I like quite a lot (page state as query params) | and is a big ol' pain to maintain and deal with edge cases. | kall wrote: | It's great that this is as much a library as it is documentation | on good patterns for this. | | I don't use react-navigation, so I won't be able to use the | library. I actually arrived at a very similar setup of a Link | component that is a different implementation per platform. I | think it will become even more similar after learning from this | code and documentation. | merrvk wrote: | This will help open a lot of doors for us. Very interesting | project. | hunterb123 wrote: | Wouldn't Remix be a better fit? It's easier to run in more | client-orientated environments. | | Currently, I like to have the API and web pages (signup, | marketing, policies, etc.) made with Remix. | | Then, the cross-platform app (native & web) can be made with | React Native / React Native Web using React Navigation as the | router. | | I can certainly see being able to combine those two into one as a | plus, but React Router / Next Router and React Navigation | conflict. React Navigation is needed for a nice app experience. | kall wrote: | Doesn't remix very much want to handle the routing? Homestead | you mashing that with react-navigation? | hunterb123 wrote: | As does Next.js, does it not? Solito uses next/router. I | updated my comment to reflect this dilemma. | | This is why I currently separate web pages & API from the | cross-platform native/web app. | | Adapting Remix to React Navigation would be the solution if | possible. | kall wrote: | Sure and that's what this library bridges. I see the appeal | in remix for building interactive apps the "remix way" with | forms, relying on web/http conventions etc. I also like | that it brings nested routing back to metaframeworks. None | of that will translate well to native. As an api+website | framework it doesn't look more appealing then next.js to | me, which is a little more unopinionated and thus easier to | adapt to cross-platform. ___________________________________________________________________ (page generated 2022-03-14 23:00 UTC)