Rob Hogan

352 posts

Rob Hogan

Rob Hogan

@robjhogan

React Native (mostly Metro) @ Meta https://t.co/ofBaF9BqMw

Cambridge, UK Beigetreten Şubat 2015
343 Folgt556 Follower
Jarred Sumner
Jarred Sumner@jarredsumner·
Guess the next parser we're adding to Bun
English
116
1
453
68.3K
Rob Hogan
Rob Hogan@robjhogan·
@thymikee @Kelset Optimisations available in 0.84 under `unstable_transformProfile=hermes-stable` for the adventurous - currently that disables transpiling classes, soon it will remove several other unnecessary transforms once we’ve tested them in FB. It’ll be the default for the next release.
English
1
1
4
345
Rob Hogan
Rob Hogan@robjhogan·
@thymikee @Kelset FWIW - we dropped a bunch of Babel transforms not required even under legacy Hermes in 0.84, but we’re still not fully optimised for Hermes V1. We’ll drop more by default from 0.85.
English
2
1
7
561
Michał Pierzchała
Michał Pierzchała@thymikee·
Hermes V1 will ship as the default in React Native 0.84 for both iOS and Android. This means: • 2-8% faster startup time • 40%+ faster runtime • faster Metro compilation (less Babel transforms) Just landed in 0.84.0-rc.1
Michał Pierzchała tweet media
English
10
33
461
44K
Rob Hogan
Rob Hogan@robjhogan·
@HeadForPoints No mention of BA in the article, but they operate short haul (inc business) from Stansted in the summer, and have shared Escape in previous years.
English
0
0
1
29
Rob Hogan
Rob Hogan@robjhogan·
@Baconbrix @tmikov @CipolleschiR @cortinico Features should come more quickly now though - there was quite a lot of internal infra to untangle to allow us to roll out use of SH features without breaking legacy Hermes builds. The class transform will be the first next week. More to follow.
English
0
0
2
53
Rob Hogan
Rob Hogan@robjhogan·
@Baconbrix @tmikov @CipolleschiR @cortinico Module systems are trickier than most language features because obviously they’re heavily linked to resolution + bundling. I don’t think Hermes should internalise RN (or even JS) resolution, but I’d like to see a meeting in the middle with something like the ESM bundle proposal.
English
2
0
5
130
Evan Bacon 🥓
Evan Bacon 🥓@Baconbrix·
Bun bytecode (JSC) vs Hermes bytecode Wonder which could potentially run Expo better on iOS/Android 🤔
English
3
2
113
19.2K
Rob Hogan
Rob Hogan@robjhogan·
@Baconbrix @tmikov @CipolleschiR @cortinico Features behind a Hermes flag will be the next priority, but as @cortinico says we don’t want to make RN open source users our beta testers ahead of Meta apps. I am keen to make sure OSS gets these features as soon as we’re confident in them.
English
0
0
4
72
Rob Hogan
Rob Hogan@robjhogan·
@Baconbrix @krystofwoldrich @expo @huntie In principle, yep, but - - we were keen not to fork implementation / UX / maintenance by platform - it’s actually a higher value feature on Android due to emulator routing (10.0.2.2 etc) This particular bug actually looks like Error mangling instead though
English
0
0
1
93
Krystof Woldrich
Krystof Woldrich@krystofwoldrich·
@robjhogan @Baconbrix @expo @huntie I see that the stack of the console call is symbolicated already, but the logged content (e.stack) is not. I don't know how different would be the path of symbolication one or the other. Just thought it's worth mentioning.
English
1
0
0
119
Rob Hogan
Rob Hogan@robjhogan·
@Baconbrix @krystofwoldrich @expo @huntie CDT does handle this generally, symbolicating using the source maps it fetches up front. But IIRC it can go wrong when hostnames in stacks (ie device-relative URLs) don't match source URLs in the source maps fetched from the proxy/Metro. loadNetworkResource should fix that...
English
2
0
5
388
Rob Hogan
Rob Hogan@robjhogan·
@satya164 @hirbod That’d be my suspicion too. Xcode shell steps notoriously find their way around nvm (etc) to old Node versions. Requiring sync ESM graphs should work otherwise.
English
0
0
1
55
Satyajit Sahoo
Satyajit Sahoo@satya164·
@hirbod I have seen React Native sometimes using a different Node version than what's available in PATH, so it could be the reason 🤔 Otherwise the specific error about require of ESM won't be there, since this is specifically supported in newer versions of Node.
English
3
0
2
384
Hirbod
Hirbod@hirbod·
Hey @satya164, I have been working on an project where react-native-monorepo-config was installed, but it would fail with require() of ES Module metro.config.js is not supported. Renaming to .mjs or defining "type" module didn't work. The only way I could make it work was like so
Hirbod tweet media
English
2
0
12
2K
Jamie Birch
Jamie Birch@birch_js·
@Baconbrix @hirbod @expo @inkdrop_app Oh totally, I assumed Meta would be using it internally for their React Native projects, so I’m surprised. In that thread, Meta mention that they use the “latest main” of Hermes internally, but I guess that means “latest legacy Hermes” rather than “latest Static Hermes”?
English
2
0
5
514
Hirbod
Hirbod@hirbod·
Alright, took me a while to figure out, but react-native-quick-base64 wasn't working at all on newer iOS and React Native / @expo versions. PR for @inkdrop_app incoming. And now we're talking about TUS upload speed :D. What a weekend so far!
English
4
0
53
5.4K
Rob Hogan retweetet
Devon Govett
Devon Govett@devongovett·
The most important skill for a software engineer IMO is debugging. Writing code is easy. Willingness and ability to debug through layers of abstraction, through code you didn't write, perhaps deep into other areas of the stack (libraries, frameworks, the server, the browser engine, etc.) can prevent you from ever being "blocked". This is a skill I see lacking in a majority of developers these days. Too many people just stop as soon as they hit code they didn't write. They just report it to another team, file a GitHub issue, etc. And then complain when it isn't addressed for them immediately. Your dependencies are your code. You are responsible for them. You can't rely on other people to fix problems you run into all the time. Understand your stack deeply. Learn to debug. It'll help you immensely.
English
15
51
389
25.2K
Rob Hogan
Rob Hogan@robjhogan·
@satya164 @AndaristRake @grabbou Exactly. Because RN aligns for web APIs where it makes sense, users may find adding `browser` to their config improves compat with packages that don't specify RN - more browser-like than node-like. Ofc, we'd prefer authors to explicitly consider RN, so `browser` isn't default.
English
0
0
2
88
Satyajit Sahoo
Satyajit Sahoo@satya164·
@robjhogan @AndaristRake @grabbou You mean you expect that people may tweak their config to use the browser condition as well? Otherwise, to me, react-native, node, and browser feel like a similar level of specificity as each is their own env. Should've put it before 'module' though, it makes more sense.
English
2
0
2
150
Satyajit Sahoo
Satyajit Sahoo@satya164·
React Native 0.79 (Metro 0.82) enables package.json#exports by default. It was added back in 2019 in Node.js 12 for ESM, but the ecosystem is still catching up, and Node.js itself has undergone significant changes regarding how it works with ESM & CommonJS.
Satyajit Sahoo tweet media
English
4
5
71
5.7K
Rob Hogan
Rob Hogan@robjhogan·
@AndaristRake @satya164 @grabbou IMO it would be better to put `react-native` before `browser` for that reason. It’s more specific, and RN will always assert it. Still, most packages aren’t going to specify `react-native` and in those cases `browser` is more likely compatible than other (Node)
English
1
0
2
52
Mateusz Burzyński
Mateusz Burzyński@AndaristRake·
@satya164 @grabbou But never the browser build? I was just wondering if the above config is correct~ - given exports are order-sensitive
English
2
0
2
99
Rob Hogan retweetet
Evan Bacon 🥓
Evan Bacon 🥓@Baconbrix·
I’m hiring for the 𝝠 Expo Router project! We’re building: ◆ Universal file-based routing ◆ One-click native & web deployment ◆ Expo for web ◆ Server-driven UI Come build the universal React framework and push mobile dev to its absolute limits! 🚀 expo.dev/careers/softwa…
English
15
33
350
44.6K
Jamie Birch
Jamie Birch@birch_js·
I've been on outdated React Native for so long that it's the first time I've seen this warning that's present in 0.79.0. I'd heard of Meta and Microsoft making some steps to move off Cocoapods, but I guess it's really underway!
Jamie Birch tweet media
English
6
2
77
5.7K
Rob Hogan
Rob Hogan@robjhogan·
@birch_js “E.g. I maintain Unity, React Native, Flutter etc. A lot of these projects will (and should) be migrating to Swift Package Manager with time. As specified above, we are not breaking anything but bugs you may raise are unlikely to get fixed.”
English
0
0
0
49