Loading...

Follow React Native Blog on Feedspot

Continue with Google
Continue with Facebook
or

Valid
React Native Blog by Use React Native - 1M ago
v0.59.0 on GitHub (npm) Changelog

Welcome to release 0.59 of React Native! For highlights of this release, please view the dedicated blog post. Thanks to those who gave feedback during the release candidate phase. If you're interested in helping evaluate our next release (0.60), subscribe to the dedicated issue here.

Added Android specific iOS specific
  • TextInput now has prop rejectResponderTermination to enable TextInputs inside Swipeables to function properly (11df0ea by @cmcewen)
  • ActionSheetIOS has a new prop destructiveButtonIndexes for an Array<number> of destructive indexes (67e7f16 by @sdg9)
  • Add isEventFromThisApp to KeyboardEvent notifications to disambiguate keyboard events when apps are running side-by-side (05f35c2 by @nossbigg)
  • Allow changing the project path in react-native-xcode.sh using env var PROJECT_ROOT (9ccde37 by @janicduplessis)
Changed Android specific iOS specific
  • Moved iOS build cache directory from ~/.rncache to ~/Library/Caches/com.facebook.ReactNativeBuild (1024dc2 by @sryze)
  • Keyboard API Event flow types have been improved (7ee13cc by @nossbigg)
  • Expose AsyncLocalStorage get/set methods to native code (7b8235a by @ejmartin504)
  • Clear RCTBridge launchOptions when bridge is reloaded (19d04a3 by @venik)
Deprecated

The following deprecations are part of our Lean Core initiative; read more about it in the blog post.

iOS specific
  • Replace deprecated stringByReplacingPercentEscapesUsingEncoding: with stringByAddingPercentEncodingWithAllowedCharacters: (61ca119 by @pvinis)
Removed
  • react-native-git-upgrade is now officially dead; use react-native upgrade instead (which uses rn-diff-purge under the covers) (a6bdacb by @cpojer)
iOS specific Fixed
  • KeyboardAvoidingView now shows the correct height after the keyboard is toggled (745484c by @shauns)
  • Adds fixes for react-native-windows UWP (dfcbf97 by @rozele)
  • The Map and Set polyfills no longer reject non-extensible object keys; also fix hash collision scenario (90850ca by @benjamn)
  • Corrected StyleSheet's transformation perspective to match iOS's behavior, regardless of screen density (4c10f93 by @syaau)
  • Fix yarn test in new projects (5218932 by @Esemesek)
  • Fix issue with getInspectorDataForViewTag that caused red screen when toggling inspector (46f3285 by @TranLuongTuanAnh)
  • Fix displayName for Image; this will make tests no longer mistake it as Component (4989123 by @linnett)
  • Fix regression of VirtualizedList jumpy header (e4fd9ba by @danilobuerger)
  • Set wait_for_recheck=true to work around crash in Flow (c599625 by @gabelevi)
  • Fix flow typing of Text (10c8352 by @sahrens)
  • Fix jest and jest-junit to be only development dependencies (c7b57f1 by @vovkasm)
  • Fix layout issue with SwipeableQuickActionButton (ad52f52 by @varungupta85)
Android specific iOS specific
  • Fix TextInput mistakenly capitalizing I's after emojiis (f307ac7 by @dchersey)
  • Fix TextView's setAttrbutedText for CJK languages on single-line text fields (05ebf77 by @mandrigin)
  • Fix RCTImageLoader multi thread crash (5ed31ce)
  • Fix removing keys of large values from AsyncStorage (27b4d21 by @esprehn)
  • Fix overscroll behavior on virtualized lists; behavior is now consistent (4d5f85e)
  • Fix Alert to not block input focus and blur (e4364fa by @zhongwuzw)
  • Fix broken JSIexecutor search path (2aa2401 by @amccarri)
  • Fix potential linker issues when using Xcode project (9f72e6a by @tyrone-sudeium)
  • Fix crash when scrollEnabled used in singleline textinput (9ff43ab by @zhongwuzw)
  • Fix crash in gif image usage (d0cd3ca by @zhongwuzw)
  • Fix geolocation to not constantly reset accuracy to default of 100 meters (bbcb97a by @omnikron)
  • Fix iOS build issue related to missing DoubleConversion and glog to cxxreact, jsi and jsiexecutor subspecs in React.podspec file (11c12d5 by @alexruperez)
  • Fix "'folly/folly-config.h' file not found" build error when using React via CocoaPods (415cc25 by @Salakar)
  • Fix image cache to follow MDN strategy (e98d5a2 and fb8ba3f by @zhongwuzw)
  • Fix crash due to IllegalArgumentException when creating CookieManage (fee5031 by @mdvacca)
  • Fix cursor placement after toggling secureTextEntry cursor spacing (c1392c2 by @ericlewis)
Read Full Article
  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 
React Native Blog by Use React Native - 1M ago

@reactnative: Check out our React Native Open Source update on our blog: https://facebook.github.io/react-native/blog/2019/03/01/react-native-open-source-update

Read Full Article
  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 
v0.58.0 on GitHub (npm) Changelog

Welcome to the January 2019 release of React Native. There are a number of significant changes in this version, and we'd like to especially call your attention to:

  • Modernizing and stengthening flow types for core components
  • Break changes to ScrollView, CameraRollView, and SwipeableRow that make it no longer bound to the component instance in certain methods
  • Support for mutual TLS in WebKit
  • Asset serving from directories besides /assets
  • Numerous crash fixes and resolutions for unexpected behavior

Thanks to those who gave feedback on our release candidates. If you're interested in helping evaluate our next release, check you our tracking issue here.

Added
  • Add support for publicPath to enable serving static assets from different locations (0b31496 by @gdborton)
Android specific
  • Bundler server host can now be set using Android System Properties, making for easier debugging across multiple apps or app installs adb shell setprop metro.host (e02a154 by @stepanhruda)
  • Native Modules can now reject a promise with an additional WritableMap arg for extra properties (userInfo). See the interface defined in Promise.java for available methods. This is accessible in JavaScript as Error.userInfo. This is to match iOS's existing Error.userInfo behaviour. See PR for examples. (#20940 by @Salakar)
  • Native Modules now expose a nativeStackAndroid property to promises rejected with an Exception/Throwable - making native error stacks available inside Javascript: Error.nativeStackAndroid. This is to match iOS's existing Error.nativeStackIOS support. See PR for examples. (#20940 by @Salakar)
iOS specific Changed Breaking Changes
  • Public methods of components converted to ES6 classes are no longer bound to their component instance. For ScrollView, the affected methods are setNativeProps, getScrollResponder, getScrollableNode, getInnerViewNode, scrollTo, scrollToEnd, scrollWithoutAnimationTo, and flashScrollIndicators. For CameraRollView, the affected methods are: rendererChanged. For SwipeableRow, the affected methods are: close. Therefore, it is no longer safe to pass these method by reference as callbacks to functions. Auto-binding methods to component instances was a behaviour of createReactClass that we decided to not preserve when switching over to ES6 classes.
Android specific iOS specific
  • Suppress yellow box about missing export for native modules (5431607 by @fkgozali)
Removed Fixed Android specific
  • Fix crash when removing root nodes (b649fa9 by @ayc1)
  • Fix various ReactInstanceManager deadlocks and race conditions (df7e8c6, 309f85a, and be282b5 by @ayc1)
  • Fix IllegalArgumentException when dismissing ReactModalHostView and DialogManager (e57ad4e and 38e01a2by @mdvacca)
  • Fix incorrect merged asset path with flavor for Android Gradle Plugin 3.2 (e90319e by @yatatsu)
  • Fix HTTP connection ontimeout callback (a508134)
  • Fix websocket properly closing when remote server initiates close (2e465bc by @syaau)
  • Fix compatibility issue for Android 16 device (5939d07, f22473e, and d4d457b by @gengjiawen)
  • Fix issue where Image.resizeMode isn't respected while source is loading, resulting in unexpected padding (673ef39 by @dulmandakh)
  • Fix Android 28's inverted ScrollView so that momentum is in the proper direction (b971c5b by @mandrigin)
iOS specific
  • Fix case where content of inline views didn't get relaid out (798517a by @rigdern)
  • Fix issue with ImagePickerIOS's inconsistent image when using the front-facing camera (4aeea4d)
  • Fix race condition and crash around shutdown of the JSC for iOS 11 and earlier (bf2500e by @mhorowitz)
  • Fix crash in NetInfo's _firstTimeReachability (eebc8e2 by @mmmulani)
  • Fix case where inline view is visible even though it should have been truncated (70826db by @rigdern)
  • Fix crash with ScrollView related to content offsets (f6566c7 by @shergin)
Read Full Article
  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 
React Native Blog by Use React Native - 7M ago

@reactnative: Our plan for React Native in open source https://t.co/Sqx4X2nkm1

Read Full Article
  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 
React Native Blog by Use React Native - 7M ago

@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

Read Full Article
  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 
v0.57.0 on GitHub (npm) Changelog

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
  • On iOS, WKWebView can now be used within the WebView component; read more at @rsnara's awesome 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.
  • Flow, React, and related packages have also been updated; this includes working support for the React Profiler.
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:

  • WebView will be moved to its own repo at react-native-community/react-native-webview. There is already a base implementation there. Help us out by giving that a try, and expect that WebView will be deprecated soon
  • NavigatorIOS will be fully removed from the main codebase starting 0.58.0 (via this commit); it is now deprecated
Updating to this version
  1. 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
  2. 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"] }

  3. 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)

  4. 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:

    ```diff -const blacklist = require('metro/src/blacklist') +const blacklist = require('metro-config/src/defaults/blacklist')

    // ...

    module.exports = {

    • watchFolders: alternateRoots,
    • resolver: {
    • blacklistRE: blacklist
    • },
    • transformer: {
    • babelTransformerPath: require.resolve('./scripts/transformer.js'),
    • },
    • getProjectRoots() {
    • return [
    • path.resolve(__dirname),
    • ].concat(alternateRoots)
    • },
    • getBlacklistRE() {
    • return blacklist;
    • },
    • transformModulePath: require.resolve('./scripts/transformer.js'), } ```
  5. Run yarn to ensure that all the new dependencies have been installed

Added: new features Android specific additions iOS specific additions Changes: existing functionality that is now different Android specific changes Fixed: bugs that have been resolved Android specific fixes
  • Fix issue with AsyncStorage not behaving properly on Android 7+ (1b09bd7)
  • Fixed extreme <TextInput> slowness (5017b86 by @gnprice)
  • Fixed <TextInput> placeholder not being completely visible (8402232 and 86f24cc by @jainkuniya)
  • Fix Horizontal <ScrollView>'s scroll position during layout changes with RTL content (de57327)
  • Fix Horizontal <ScrollView> overflow issue (d5465a9)
  • Fixing crash on SDK 15 on ReactTextInputLocalData (1bb2bea)
  • Fix Drawing Rect for ReactScrollView (6a16bec by @yungsters)
  • Fixed NoSuchKeyException Thrown From ReadableNativeMap bysafely unwrapping ReadableMap by defaulting to 0 if key not present (1a6666a by @Bhavik-P)
  • Fixed runAndroid to enable the use of a package on port <> 8081 for Windows (3cd0737 by @ihenshaw)
  • Don't crash on upload retry when trying to fetch on a varying quality network (7a246e4 by @dryganets)
iOS specific fixes
  • Fix TextInput.clear() and TextInput.setNativeProps({text: ''}) to work (057d3ef by @magicien)
  • Correct fishhook import in RCTReconnectingWebSocket (75a0273)
  • Change in RCTImagePickerManager to handle crashes if height/width is nil (82af7c9 by @abhi06276)
  • Fix controlled <TextInput> on iOS when inputting in Chinese/Japanese (892212b by @mmmulani)
  • Fixed <ScrollView> bug encountered with brownfield apps (fab5fff by @PeteTheHeat)
  • Fixed missing selection indicator lines on <PickerIOS> (e592d6f by @VSchlattinger)
  • Fix crash in RCTImagePicker on iOS (934c50f by @mmmulani)
  • Fix undefined_arch error received when building in Xcode 10 beta (e131fff by @futuun)
  • Add support for connecting to the Packager when running the iOS app on device when using custom Debug configuration (079bf3f)
  • Fixed RCTAnimation import for integrating with cocoapods (7525f38 by @LukeDurrant)
Removed: features that have been removed; these are..
Read Full Article
  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 
React Native Blog by Use React Native - 1y ago

@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.

https://t.co/mXrtxHdAQL

Read Full Article
  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 
v0.56.0 on GitHub (npm) Changelog

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.
  • Fix project settings warnings on newer Xcode versions, remove unneccessary console logging.
  • Prettier files!
  • Lots of bug fixes.

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.

Added: new features Android specific additions iOS specific additions Changes: existing functionality that is now different iOS specific changes Android specific changes Fixed: bugs that have been resolved
Read Full Article
  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 
React Native Blog by Use React Native - 1y ago

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.
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.

Here are the differences between the two:

Demos react-native-dom on GitHub
  • 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.

Bridging React Native Back to its Roots - Vincent Riemer (@vincentriemer) at @ReactEurope 2018
Bridging React Native Back to its Roots - Vincent Riemer (@vincentriemer) at @ReactEurope 2018 - YouTube
Read Full Article
  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 

Separate tags by commas
To access this feature, please upgrade your account.
Start your free month
Free Preview