http://www.reactnative.com/Ghost 0.11Mon, 19 Nov 2018 12:15:53 GMT60@reactnative: Our plan for React Native in open source
https://t.co/Sqx4X2nkm1]]>http://www.reactnative.com/tweet-from-reactnative-2/a4ba1bcc-682e-48ac-8854-bee280a9e64eFri, 02 Nov 2018 10:33:00 GMT@reactnative: Our plan for React Native in open source
https://t.co/Sqx4X2nkm1]]>@reactnative: We've been working on a new architecture for React Native.
Learn all about it in @nparashuram's talk at React Conf: https://t.co/M22Y5Hg1jT]]>http://www.reactnative.com/tweet-from-reactnative/9a8f7118-4a6f-464b-b209-38aae00498cbThu, 01 Nov 2018 10:32:00 GMT@reactnative: We've been working on a new architecture for React Native.
Learn all about it in @nparashuram's talk at React Conf: https://t.co/M22Y5Hg1jT]]>v0.57.0 on GitHub (npm)

Welcome to the 0.57 release of React Native! This release addresses a number of issues and has some exciting improvements. We again skipped a monthly release, focused on quality by extending the release candidate phase, and let some upstream packages reach stable

Welcome to the 0.57 release of React Native! This release addresses a number of issues and has some exciting improvements. We again skipped a monthly release, focused on quality by extending the release candidate phase, and let some upstream packages reach stable for inclusion.

This release includes 599 commits by 73 different contributors! In response to feedback, we've prepared a changelog that contains only user-impacting changes. Please share your input and let us know how we can make this even more useful, and as always let us know if you have any feedback on this process.

Highlights

New features

Accessibility APIs now support accessibility hints, inverted colors, and easier usage of defining the element's role and states; read more at @ziqichen6's excellent blog post

Better support for out-of-tree platforms. For details, please refer to the discussion that the community used to get this up and running (there will be a new page in the docs dedicated to it too) - huge props to @empyrical for working on this!

Tooling updates

Android tooling has been updated to match newer configuration requirements (SDK 27, gradle 4.4, and support library 27); building with Android plugin 3.2 doesn't work due to the gradle scripts, so please stay on Android Studio 3.1 for now

Support Babel 7 stable landed! Be sure to read here about using TypeScript and check out the Babel 7 migration guide for help migrating.

Metro has been upgraded (with Babel 7 and better transformer support), and in the next major release we plan on having two new features (ram bundles and inline requires) optional for you all to use - you can read how it will happen here; moreover, if you have a custom packager config, we recommend you read also the "updating to this version" section.

The Slimmening is happening

As mentioned a few times in the past, the core team is reviewing the repository to trim it to the base React Native features in order to make the whole ecosystem more maintainable (by using a dividi-et-impera approach, the community will move faster and enable pull requests to be reviewed and merged quicker). This change requires extracting some components into their own separate repos and removing old, unused code (details here).

0.57 is not directly effected by any changes, but we want you to know that:

NavigatorIOS will be fully removed from the main codebase starting 0.58.0 (via this commit); it is now deprecated

Updating to this version

Upgrade the version of React Native in the package.json from 0.56.0 to 0.57.0, and the React version to 16.5

Change the babel-preset dependency from "babel-preset-react-native": "^5", to "metro-react-native-babel-preset": "^0.45.0",, then change the .babelrc configuration to:

JSON
{
"presets": ["module:metro-react-native-babel-preset"]
}

Ensure that you have all the babel dependencies to version ^7.0.0 (you may also need to add babel-core": "7.0.0-bridge.0" as a yarn resolution to ensure retro-compatibility)

If you have a custom packager configuration via rn-cli.config.js, you probably need to update it to work with the updated Metro configuration structure (for full detail refer to Metro's documentation); here are some commonly encountered changes to rn-cli.config.js:

]]>http://www.reactnative.com/tweet-from-reactjs-3/33b62258-1bf2-4793-95ef-7ea2dce82686Thu, 14 Jun 2018 20:38:00 GMT@reactjs: We're working on a large-scale rearchitecture of React Native to make it more flexible and integrate better with native infrastructure in hybrid JavaScript/native apps.

As you'll see in a second, this new version has some important breaking changes that required a lot of extra efforts to bring to a stable 0.56. This was the main reason behind skipping June from the monthly release cycle, but looking

As you'll see in a second, this new version has some important breaking changes that required a lot of extra efforts to bring to a stable 0.56. This was the main reason behind skipping June from the monthly release cycle, but looking forward we are planning on going back to do a rollout every month.

Highlights

React Native now uses Babel 7.
When upgrading to 0.56, make sure to bump your react-native-babel-preset to v5 or newer.
If you have a library, please make sure that you update the preset there too as Babel 7 is not backwards compatible.

Node 8 is now the minimum required version. Trailing commas are now allowed.

iOS 9 is now the minimum required version.
Any device that can run iOS 8, can upgrade to iOS 9. Developers who support iOS 8 in their apps may continue doing so as this is a Xcode-level setting (IPHONEOS_DEPLOYMENT_TARGET).

WebView will only load http(s) URLs by default, geolocation disabled by default.

Added Flow types for several components.
We're migrating away from PropTypes and runtime checks and instead relying on Flow. You'll notice many improvements related to Flow in this release.

Heads-up: the Facebook internal team is currently working on a rewrite of some core architecture pieces. This is a work in progress and we do not expect it to be ready for use in open source quite yet, but we felt the need to let you know what those commits mentioning Fabric are about.

iOS specific removals

]]>Don't get this wrong, react-native-web is alive and well. It is also the safest bet right now for achieving React Native on the Web.

At React Europe last week though, we were lucky to hear from Vincent Riemer talking about his experimental, comprehensive port of React Native to the web.

]]>http://www.reactnative.com/react-native-dom/ff8c7498-b100-4595-876c-53c8469e971fFri, 25 May 2018 10:41:00 GMTDon't get this wrong, react-native-web is alive and well. It is also the safest bet right now for achieving React Native on the Web.

At React Europe last week though, we were lucky to hear from Vincent Riemer talking about his experimental, comprehensive port of React Native to the web.
What Vincent focused on was to uniform the development process and the tools between Mobile and Web platforms. He ended up filling the gaps between the two with Yoga (cross-platform layout engine which implements Flexbox) and by compiling it to Web Assembly.

Demos

Multithreaded by default: Following the exact same architecture as React Native on mobile, all of your react components/app logic are run in web worker, leaving the main thread to entirely focus on rendering.

Same layout behavior as React Native on mobile: Powered by custom bindings to Yoga and compiled to Web Assembly, avoid layout inconsistencies between your native and web projects.

Built with the same bundler used for existing React Native platforms: Build both the "native" main and JS threads with the Metro Bundler along with all the developer experience features it provides.

Ecosystem compatible escape hatch to the DOM: Using the same native module bridge, expose DOM-specific APIs in a more generic way that can easily be made into a cross-platform module.

iOS specific removals

[0.54]

Welcome to the February 2018 release of React Native! This release includes work done by the React Native team and the community in January, and there are some big changes here after the holidays. Thanks for 270 commits from 87 contributors, you all are great! Here are a few highlights from the release:

Long awaited Blob changes: upload, download, fetch locally, and more

Sticky headers now work on inverted Lists

Update to the newest React, which deprecated some lifecycle methods and added new ones – expect Yellowbox until React Native is updated

Space-evenly is now there (sorry for the confusion with 0.52's release notes)

A lot of under-the-covers work on Yoga, iOS's Text and TextInput, and a ton of other areas

Multiple crash fixes

The changelog is arranged by the customary added, removed, changed, and fixed plus internal; the changes are also organized by platform.

Added

✨ Blobs now can be: made from Strings, loaded by File using a FileReader API, uploaded and downloaded via XMLHttpRequest#fetch, and fetched on files to a local blob consistently (be56a3e and 854c233 by @satya164 and @fkgozali)

[0.53]

Welcome to the January 2018 release of React Native. The CLI now supports --port for both platforms, a few components were made to support consistent props across both platforms, and various fixes were made. There was a lot of under-the-cover work done with more test improvements and dependency updates. 118 commits were made by 43 contributors 🎉.

[0.52.0] - 2018-01-07

This changelog has been prepared by Ryan Turner (@turnrye) - thank you for
your time and making such a detailed changelog 🔥🔥

This release had a lot of work around the bundler and packager, a ton of
bugfixes, and updates to many of React Native's dependencies. Lots of
under-the-hood work was done as well to improve the layout engine. Happy new
year!

If you would like to help us with the next release changelog, please contact
@grabbou

]]>Android TV is the latest to be added to the long list of supported platforms by React Native. Until now, it contained: macOS, Ubuntu, Universal Windows Platform (UWP), Apple TV, and of course, iOS and Android.

]]>http://www.reactnative.com/react-native-added-support-for-android-tv-devices/479914d8-7e6d-4bba-ae9c-8ae03894f8c1Wed, 07 Mar 2018 15:30:51 GMTAndroid TV is the latest to be added to the long list of supported platforms by React Native. Until now, it contained: macOS, Ubuntu, Universal Windows Platform (UWP), Apple TV, and of course, iOS and Android.

Welcome to the February 2018 release of React Native! This release includes work done by the React Native team and the community in January, and there are some big changes here after the holidays. Thanks for 270 commits from 87 contributors, you all are

Welcome to the February 2018 release of React Native! This release includes work done by the React Native team and the community in January, and there are some big changes here after the holidays. Thanks for 270 commits from 87 contributors, you all are great! Here are a few highlights from the release:

Long awaited Blob changes: upload, download, fetch locally, and more

Sticky headers now work on inverted Lists

Update to the newest React, which deprecated some lifecycle methods and added new ones – expect Yellowbox until React Native is updated

Space-evenly is now there (sorry for the confusion with 0.52's release notes)

A lot of under-the-covers work on Yoga, iOS's Text and TextInput, and a ton of other areas

Multiple crash fixes

The changelog is arranged by the customary added, removed, changed, and fixed plus internal; the changes are also organized by platform.

If you want to get involved in the process of preparing releases and making changelog (yes, we need your help!), please get in touch with me.

Added

✨Blobs now can be: made from Strings, loaded by File using a FileReader API, uploaded and downloaded via XMLHttpRequest#fetch, and fetched on files to a local blob consistently (be56a3e and 854c233 by @satya164 and @fkgozali)

]]>http://www.reactnative.com/react-native-now-has-mit-licence/6429901c-c0e2-4a83-8e16-9cb155f0c061Sat, 17 Feb 2018 12:57:00 GMTClear the whiteboards as your last impediment has gone!
React Native and its dependencies (Fresco, Metro, and Yoga) have been granted MIT Licence.

This release had a lot of work around the bundler and packager, a ton of bugfixes, and updates to many of React-Native's dependencies. Lots of under-the-hood work was done as well to improve the layout engine. Happy new year!

This release had a lot of work around the bundler and packager, a ton of bugfixes, and updates to many of React-Native's dependencies. Lots of under-the-hood work was done as well to improve the layout engine. Happy new year!

If you would like to help us with the next release changelog, please contact @grabbou

Breaking changes

GENERAL

This is a breaking change that tells Metro to look at only the project's .babelrc file. Previously it would look at .babelrc files under node_modules and would run into issues because it didn't have the version of Babel nor the plugins/presets that node_modules/randompackage/.babelrc wanted. So as a workaround, people would write a postinstall step that deletes node_modules/**/.babelrc, which worked well. This flag (getEnableBabelRCLookup = false) has the same effect and hopefully fixes one source of cryptic bugs people run into.

To use the old behavior, create a config file named rn-cli.config.js with:

module.exports= {
getEnableBabelRCLookup() {
returntrue;
},
};

</div>
Go under node_modules, modify a used module to have a dummy .babelrc (`{"plugins": ["dummy"]}`) and ensure the JS bundle still loads.

Breaking changes and deprecations

General

New projects have a single entry-point (index.js) from now on (6e99e31) - @fson

Summary:

Before

When creating a new project with react-native init, generated template has two entry-points: index.ios.js and index.android.js

Those two files were always identical

After

When creating a new project, generated template has a single, shared entry-point: index.js

Updating your code

When upgrading to this release with react-native-git-upgrade or react-native upgrade, be aware that these tools will automatically update your code to use index.js instead of index.ios.js and index.android.js, as previously. However, they will not create an index.js file for you. This is a side-effect of the react-native-git-upgrade that has to be reverted. After running that tool, you have two options:

rename index.ios.js to index.js and remove index.android.js (providing that they were as generated by react-native init)

revert changes done by react-native-git-upgrade in order to keep separate entry files. That is, as soon as you upgrade, revert changes made to AppDelegate.m, MainApplication.java and build.gradle.

Before

Aspect ratio would do its best to fit within it's parent constraints

Aspect ratio would prioritize alignItems: stretch over other sizing properties.

After

Aspect ratio is allowed to make a node grow past its parent constraints. This matches many other aspects of flexbox where parent constraints are not treated as hard constraints but rather as suggestions.

Aspect ratio only takes alignItems: stretch into account if no other size definition is defined. This matches the interaction of other properties with alignItems: stretch.

Updating your code

You probably don't need to do anything but in case something does break in your product it should be as easy as adding {width: '100%', height: '100%', flexShrink: 1} to the style declaring the aspectRatio.