With the newest version of Git 2.37.0, you can run just "git push" to push new branches. No more "--set-upstream origin". Enable with:
git config --global --add --bool push.autoSetupRemote true
Note to iOS developers working on an app for awhile: two Apple certificates used to sign your provisioning profiles expired today. When you try to submit your app for review you'll get an ITMS-90165 error. Fix is to get a new provisioning profile.
use-unmount-signal is a React Hook for canceling promises like network requests when a component is unmounted.
· Standards-friendly: works with any web or Node API that takes an AbortSignal
· Tiny: 269b minified/167b Brotli
· New: tell me if it's useful
Today, with much heavy lifting from
@cpojer
, we’ve replaced 100% of Haste in React Native with standard paths. Years in the making, this opens React Native up more to standards-compliant web tools and eliminates the whole class of Haste map errors.
expo-image is in beta and brings modern image formats to your universal apps
◆ AVIF, WebP, SVG, APNG, HEIC
◆ JPEG, PNG, GIF too
◆ Up to 91% smaller animations with AVIF:
◆ Universal: Android, iOS, web
👉 npm i expo-image && npx expo run:{android,ios}
🎉 expo-image just transitioned from alpha to beta! 🎉
Thank you all who gave us feedback during the alpha period 🙏
Check out
@expo
docs for more details on what it can do:
We’re open sourcing the Results API, a building block for batching operations that might succeed or fail.
· 1 KB minified
· 1st class TypeScript support
· 1st class plain JavaScript support
· 100% test coverage
· Matches Promise.allSettled results
We haven't shared a blog post on it yet but we've open sourced EAS's data layer called "Entity". Every time you log in to Expo, load an update, queue a build, add a team member, you're using Entity. We wrote Entity for security, correctness, and speed.
One of
@Expo
's internal services has been running
@bunjavascript
in production for five months 🤫
An update to Bun fixed a memory leak and now it runs with 1-2 millicores and 20-30 MB of RAM
Today the
@Expo
team is fully releasing Expo Application Services (EAS), the 1st chapter of a new era for Expo with support for native code and a yearlong+ team project. We've designed EAS to be optional but excellent for taking your Expo apps from development to the app stores.
Expo Application Services (EAS) is now available to everyone!
Build and Submit apps with a free account today!
We're also introducing Production and Enterprise plans suited to businesses and professionals.
In a world where Expo succeeds, the way we write apps multiple times today will seem pretty crazy to the new generation of programmers. Our next step towards that world is web support for Expo projects and we're sharing the first experimental release today.
Totally thrilled to finally give you all a peek at what
@Baconbrix
's been working on, and announce experimental* web support for the Expo CLI and SDK 😯🤯. Read on!
Some programming guidance I give is to understand at least one layer of abstraction above & below the layer you're working at. Ex: consider UX + VMs when writing JS. A few years ago Expo Android needed code that can't be expressed w/Java → ended up writing JVM bytecode directly.
Concurrent rendering in React enables stable frame pacing and responsiveness. If parallelized, React could outperform single-threaded native UI. I’ve been writing React for 10 years now. Concurrent rendering is one of the most important changes I’ve seen since React’s invention.
Making a new role at Expo called Developer Success Engineers. Looking for developers who are excellent at helping developers. Work on our open source repos, provide enterprise care for customers, make Expo help our customers be successful. Full post here:
The White House just released a report on the state of mobile app ecosystems w/a ✨very developer-friendly✨ conclusion and a call for more interoperability between platforms. Working on this every day and feels extra important now
Full report:
React Native 0.61 will ship with standard path-based imports and requires. This standards-compliance is the start of a new era of universal tools. And to Haste, “What do we say to the god of death?”
“Today.”
The judge of Epic Games v. Apple ruled Apple must let developers:
1. have buttons/links to other payment services (ex: Stripe) for IAPs
2. tell people how to pay for content
Good news for people who use apps and make apps (everyone except Apple/Google).
Ad hoc provisioning profiles for iOS app development let you install builds on up to 100 of your team's devices. Previously to add a teammate you'd rebuild your app with a new profile that included your new teammate's device. Now, you can re-sign an existing build right away.
a couple nice features that landed in EAS Build recently:
- eas build:resign - re-sign a build after adding a new device to your ad hoc device list, without creating a new build. much faster than running a whole new build!
- eas build:run - download, install, and run a sim build
In the 8 years I've written React, a few React libraries have stood out to me in their dedication. React Navigation has been a sustained effort for 3.5 years, a big part of React's lifetime and most of React Native's! Starting today, you too can sponsor
@reactnavigation
's future.
React Navigation is now on
@github
sponsors!
Check out this announcement blog post to learn about some great apps using it (from
@Brex
,
@coinbase
,
@Shopify
,
@HowWeFeel
, and more), a look at our recent accomplishments, and the team behind the library.
JS debugging will level up again with
@Expo
SDK 49! When our app's code is broken, we want our app to change as little as possible when enabling the debugger. The Hermes JS inspector + the Expo Tools for VS Code make this possible and accessible
React 16.9 is now available! It contains several new features, bugfixes, and new deprecation warnings to help prepare for a future major release.
Learn all about it on our blog:
We just set up the new GitHub issue templates for the
@expo
repo. When you open an issue you'll now see...
· an actual form w/helpful instructions
· clearly labeled fields
· big text fields for freeform text, dropdowns for selections
· no more <!-- instructions in comments! -->
He jokes, but Evan Bacon actually is one of those people who's worked so hard from a young age that his "years of experience" relative to others might exceed his age at some point.
A wild fact about Expo: for nearly six years we didn't have a module system. This year we're working on the Expo module system, official docs, etc. for writing native modules. Underlying layer will feel modern with Swift (iOS) & Kotlin (Android).
Rewriting the main internal Expo repo's history to remove unused files dropped its size from 6.7 to 1.2 GiB (-82%)! Also ended up being an opportune time to rename master to main with all the rebasing. A bit faster and a bit more modern now.
After half a decade of work, Concurrent Rendering is here and will be the cornerstone of React’s competitive advantage in my eyes. CR paves the way for React to outperform* the DOM and native.
(*like the way you might say Rust outperforms machine code though it’s compiled to it)
Our next major release is React 18. It will include out-of-the-box improvements like automatic batching, new APIs like startTransition, and a new streaming server renderer with built-in support for React.lazy.
@alexandr_wang
“How much was this project successful because this person joined?” v. “How much did this person join because the project was already successful?” Also reminds me of PG’s observation
Yesterday at RNCK I demoed our new React Native IDE project we developed
@swmansion
. Check out the thread for details on each specific feature from the clip
One of the best features of
@fbjest
is how it makes you think about your code. What do you want to test? What *don't* you want to test?
In the Expo push notification client we use Jest and fetch-mock to mock all network I/O. On GitHub Actions we get 99% test coverage in 2.6 s.
@10x_er
geohot is legit, I'm not sure I've seen anyone seemingly not get stuck as much as George and that was over 10 years ago, around the time HR asked him for a resume and he sent a link to his Wikipedia page (hired)
EAS Build's popularity is at an ATH and we're seeing customers needing to wait ~10 minutes for iOS builds. We strive for fast queues, usually < 1 minute, sometimes 5 minutes during busy times. More hardware is on order, hopefully will receive next week. Thanks for understanding.
Git and code reviews at
@Expo
. Our main branches are linear histories. Rebase and merge. We've also got a cabal of engineers who believe stacked PRs is the
#1
feature for GitHub could build (
@github
pls)
Start using custom native code in your universal apps with custom Expo development clients.
Build them on your own computer (Xcode/Android Studio) or use a cloud service like EAS Build. The feature preview is here today.
If you have multiple apps & libraries in your monorepo it's so great to link them together. Edit any JS/TS library and see your app change magically!
Have been using expo-yarn-workspaces for over a year to link 120+ packages in the official
@expo
repo! 🎂
Of the many ideas in Deno my three favorites are:
🤝 a stable API like the web
⚛️ native TypeScript & JSX
📦 moving node_modules to user space
I love these partly since
@ccheever
& I have been thinking similarly for
@expo
. Seeing Deno prove these ideas is helpful & inspiring!
@chancethedev
The bottleneck in Chrome is 750+ ms of rendering, attributed to "System (self)".
The main page element w/sidebars & newsfeed (4400+ child nodes for me) is set to "display: none" when showing a photo. Closing a photo removes "display: none", which alone took 1.05 s in this trace.
Made an extremely high-performance website at that loads over the network and renders in less than 30ms and has 100 on all Lighthouse metrics, 60 fps scrolling, and 100% a11y. Also the link to the new Discord is there.
Very impressed with Linear's macOS app let alone the maybe surprising fact it's built with the web. Both
@linear
and
@code
set the gold standard Electron/desktop web views in 2022 🏅
New instant mobile updates system from Expo continues to improve. Iteration speed like this is one of the holy grails of app development especially when you can deliver your latest work to both development and production.
EAS Update currently in preview:
Every screen in your app gets a URL with
@Expo
Router. When you can link to every screen, lots of things become easy or free:
"Copy Link" buttons
Restoring navigation state
Indexing app content with the OS
Universal links across Android, iOS, and the web
What else?
@mikeindustries
One question is whether the read receipts (timestamp, location, computer type) are considered the recipient's data and are subject to the GDPR. Does Superhuman need opt-in consent from each recipient to store their data? And give them a way to delete it?
🥳 Today we're announcing the release of 𝝠 Expo SDK 50!
We tackled some really difficult technical challenges in this release with a focus on solving important problems that we know you care about.
The goal of SDK 50 is to make it easier for you to build more powerful
W3C standard Crypto.getRandomValues is now available in Expo. expo-standard-web-crypto gives you a standards-compliant polyfill that works with typed arrays and generates random bytes synchronously.
If you're working at a YC company (any batch!) that needs a mobile app and are thinking about using
@Expo
+ EAS, ask the founder(s) to take a look at our YC deal to help you go even further when you outgrow the EAS Free plan.
Major new service joins Expo Application Services (EAS) in preview. We’re calling it EAS Update. It’s the evolution of “expo publish” like how EAS Build evolved from “expo build”.
EAS Build your app binaries
EAS Submit your app to stores
EAS Update your app nearly instantly
I want to give a shout out to
@cedricvanputten
for being such a thoughtful, knowledgeable, and positive contributor to
@expo
. Check out some of his work on the GitHub action () and React hooks ().
The
@Expo
repo guidance
@notbrent
added gives really great advice that will help you become a better engineer. Isolate your bug. Suss out the causes under the symptoms. Make it easy for people to help you when you need help. The best engineers I know excel at getting unstuck
This is a mod to add USB-C-to-C charging to devices without it. Very impressed by
@oshpark
's flex PCB service. The PCB needs to be dead accurate to solder to the USB connector pins (0.3mm wide) and the installed mod works perfectly.
Open source here:
Today
@Expo
is introducing Magic GitHub Labels to EAS. Link your GitHub repo to EAS and add a label called "eas-build-<platform>:<build profile>" to your PR
- Platform can be android, ios, all
- Build profile can be any profile name in eas.json
- Monorepos supported
- It's magic
A preview of the EAS Build GitHub integration is now available for EAS subscribers!
Try it out:
- Link your GitHub repository to your Expo project.
- Use the "Build from GitHub" button on the builds page.
- Or add the `eas-build` label to a GitHub PR to trigger a new build!
tsc on
@Expo
's API server:
25 seconds with Node
7 seconds with Bun
As Chief IDE, all editors shall now use Bun to run JavaScript tools
Nice work
@bunjavascript
and
@jarredsumner