Live data from Hacker News

React Native for Windows and Mac

microsoft.github.io

381–390 of 505 posts

Re: React Native for Windows and Mac

#381
post #17

React Native scares me with its dependency webs: http://npm.anvaka.com/#/view/2d/react-native From my experience, it's really great to work with and definitely saves a ton of work, but the depgraph above fills me with doubt for use in sensitive applications such as in finance or healthcare. For this reason, I've been trying out Flutter or even considering to go back to native apps. Perhaps there's some kind of middle…

I think the top comment should offer a solution, not only a critique. This dependency graph includes the development environment, which I feel is an unfair assessment. Why not re-run with only the production dependencies?

Re: React Native for Windows and Mac

#382
post #381
post #17

React Native scares me with its dependency webs: http://npm.anvaka.com/#/view/2d/react-native From my experience, it's really great to work with and definitely saves a ton of work, but the depgraph above fills me with doubt for use in sensitive applications such as in finance or healthcare. For this reason, I've been trying out Flutter or even considering to go back to native apps. Perhaps there's some kind of middle…

I think the top comment should offer a solution, not only a critique. This dependency graph includes the development environment, which I feel is an unfair assessment. Why not re-run with only the production dependencies?

You build the app with the dev dependencies, so you need to trust them as well.

Re: React Native for Windows and Mac

#383
post #382
post #381

Earlier quoted context omitted.

I think the top comment should offer a solution, not only a critique. This dependency graph includes the development environment, which I feel is an unfair assessment. Why not re-run with only the production dependencies?

You build the app with the dev dependencies, so you need to trust them as well.

[deleted]

Re: React Native for Windows and Mac

#384
post #381
post #17

React Native scares me with its dependency webs: http://npm.anvaka.com/#/view/2d/react-native From my experience, it's really great to work with and definitely saves a ton of work, but the depgraph above fills me with doubt for use in sensitive applications such as in finance or healthcare. For this reason, I've been trying out Flutter or even considering to go back to native apps. Perhaps there's some kind of middle…

I think the top comment should offer a solution, not only a critique. This dependency graph includes the development environment, which I feel is an unfair assessment. Why not re-run with only the production dependencies?

No, thats a logical fallacy. critiques don’t need to provide solutions. It does not make the critique any less valid. This sentiment gets brought up so often here, I really don’t understand the reasoning behind it.

Re: React Native for Windows and Mac

#385
Looked at it a while ago when I was trying to start a cross-platform app (both on mobile and on desktop), but under the Mac section it simply said "Coming Soon!". I thought there's some update with this post receiving so many upvotes, but apparently it's still the same, and Mac support is still in a very early experimental stage.

Flutter left me a similar impression.

I eventually ended up using Quasar https://quasar.dev/, which allows you to use one Vue.js codebase but deploy to Cordova on mobile and Electron on desktop. Vue is definitely not the prettiest solution out there, but I had to be practical and actually get the app out.

Maybe if I started the project one year in the future, the landscape would be totally different already. It's definitely changing rapidly.

Re: React Native for Windows and Mac

#386
post #351

Earlier quoted context omitted.

As far as I know, Dart still has all types nullable by default, which makes it easy to run into problems with things like initialization (not realizing that a thing may still be uninitialized at some point / only loaded later) or just plain optional data (assuming some thing is always present when sometimes it's not). It's like partially dropping down to dynamic typing, where you have to keep all this in your head ma…

> Dart still has all types nullable by default TypeScript is even worse in that regard since it has to deal with JS that wasn't written in TypeScript & there's no way to verify the runtime object complies with the interface you say it does. Then of course JS has to deal with multiple null & undefined values & even more falsy values, ultimately TypeScript provides nice static analysis but also a false sense of securit…

I have never encountered issues with JS libraries lying in their type definitions (like not including `T|undefined` in the type if `undefined` is a possible return value).

More often this can happen with external data (typing incoming JSON responses), but you have to run-time validate those anyway.

`null` is only rarely used in JS, `undefined` is by far the more common one, and of course the types reflect which one is a possible value, so it's not like you can miss it by accident.

Falsy values are only a problem with bad practices - inside `if`, I just always use the full form with the `===` operator, e.g. `if (variable !== undefined)` instead of `if (variable)`. A lint rule can be enabled for that. There is now also the `??` operator which prevents the common misuse of `||`, e.g. `const a = variable ?? 'default'`.

So those things aren't really issues in practice.

You are correct in assuming that I'm not very familiar with Dart, I have only used it very briefly. I have only checked whether specific features such as sum types were available.

Re: React Native for Windows and Mac

#387

I tried using this a few months ago, as well as React Native for mobile and React Native Web for web, and I felt like they were all just hacks glued together to get cross-platform support, and RN isn't even native, it still includes a Javascript bridge. Build dependencies and packages were a nightmare, things continuously broke. I tried Flutter afterwards and it just felt like a breath of fresh air. Everything "just…

I'm kinda surprised that everything "just works" for Flutter, even on Windows and Linux, which the official documentation seems to say are still in alpha stages and might be subject to breaking changes in the future.

I also couldn't find ways to easily implement things I want, e.g. native Mac MenuBar bindings/Mac App Store payment library etc.

Eventually I ended up using Quasar https://quasar.dev/, which allows you to use one Vue.js codebase but deploy to Cordova on mobile and Electron on desktop. Vue is definitely not the prettiest solution out there, but I had to be practical and actually get the app out.

Maybe I'm just one year too early for React Native/Flutter ecosystem to be developed enough for my app. The landscape is certainly changing rapidly, which is good.

Re: React Native for Windows and Mac

#388

Earlier quoted context omitted.

I remember when Spotify 'upgraded' from a native to a js application on MacOS. It bricked my wife's computer. She never installed Spotify again. This is someone who doesn't usually care about software. She did care about that annoyance.

It works fine for hundreds of millions of other users

Yeah, it sounds like a real fake anecdote. JS app did not brick the computer.

Re: React Native for Windows and Mac

#389
post #244
post #59

Earlier quoted context omitted.

> A fine grained capability system for packages would dramatically improve the safety profile I think Deno does that (the new project by Node's original creator): https://blog.logrocket.com/what-is-deno/

Deno gives all packages the same permissions of the main app. So if your app can make network requests, so can every dependency you use. It’s not a great situation. I’ve brought this up to them and their response is that per-package permissions would be too difficult to implement.

The app design is going to have to change around per-process permissions. build.ts doesn't need the same as main.ts but at that point what are you getting where you couldn't just use docker and abstract that pattern to literally all software and dependencies that aren't in deno.

Maybe it's a start of better tooling? Kicking out a graph of package/permission call stack might be useful to audit

Re: React Native for Windows and Mac

#390

Earlier quoted context omitted.

Wow, that React Native dep graph is crazy! But as I browse it, most of the dependencies seem to be build-time, not runtime dependencies (i.e. it seems like most of them are related to Babel). The React comparison doesn't include dev dependencies. While react-native does have more dependencies than vanilla react, on first glance the list doesn't seem too crazy https://github.com/facebook/react-native/blob/master/packa…

Am I the only one who just spent 5 minutes chasing moving nodes round in that graph looking for leftpad.js?

Why don't people copy the deb-tree to their local repo and/or pin the version that they want, so that they can be free of node terrorists?

EDIT: To be clear - maybe I am REALLY old-school, but every time we did a release, we archived our tool-chain (GCC blah blah, Make blah blah, bash blah blah), our depencies, our vendor libraries and our code, so that IF in 20 years, if we had to rebuild a particular release (12.x) for a particular client (Chase) on a particular platform (AIX), we could do so de novo. Maybe that was overkill, but in a world where everything changes, why wouldn't you snapshot everything for every release?

Post reply on HN