React Native: v0.40.0 Release

Release date:
January 4, 2017
Previous version:
Could not determine previous release version
Magnitude:
0 Diff Delta
Contributors:
0 total committers
Data confidence:
Commits:

Top Contributors in v0.40.0

Could not determine top contributors for this release.

Directory Browser for v0.40.0

We couldn't find a release before this one

Release Notes Published

This is the first release with the new monthly cadence, so 0.40 is known as December 2016. The next version will be 0.41 - January 2017, and will be released at the end of the month.

Breaking Changes

iOS native headers moved

This change affects all native modules and application code on iOS that refer to react native .h files

After https://github.com/facebook/react-native/commit/e1577df1fd70049ce7f288f91f6e2b18d512ff4d, Native code on iOS must refer to headers out of the react namespace. Previously the following would work:

#import "RCTUtils.h"

But now all headers have been moved:

#import <React/RCTUtils.h>

This means that all iOS native libraries need a major version bump for RN 0.40. We attempt to minimize changes of this magnitude, and we apologize for any inconvenience caused.

require('image!...') no longer supported

Support for require('image!…'), which has been deprecated for a long time, is now removed. If you are still loading images that way in your apps, make sure to check the documentation for alternatives.

getTransformModuleOptions is removed

If you were having custom rn-cli.config.js in your app and for some reason, using getTransformModuleOptions, make sure to check @davidaurelio commit ca58e0a for details on the changes.

Android

Bugfixes

  • Fix WebView crash for links of unknown schemes (35e75c8) - @rigdern
  • Fix Overlay for Marshmallow 23+ (e335ca0) - @jpshelley
  • Stop silently failing for requires on Android (63eb4df) - @javache
  • Fix SamplingProfiler and HeapCapture for apps that lazy load react modules (d919eb7)
  • Call handleUpdateLayout even if the content didn't change (fb23000) - @Kerumen

New features and enhancements

  • Add ability to specify main Activity in run-android (9fb520e) - @grabbou
  • Add disableExtractUI prop to TextInput on Android (1b870d2) - @rigdern
  • Add DatePicker mode configurations (eaccd7e) - @pandiaraj44
  • Enable apps to provide a custom configuration to Fresco (8b199a7) - @rigdern
  • Speed up EventEmitter emit() by ~50% (c4046d6) - @Venryx
  • Enable ad-hoc dependencies to be pre-downloaded (aac8daf) - @rigdern
  • Keep ScrollView content visible after edits (528a3c7) - @rigdern
  • Decrease cost of reflection (911c05a) - @rigdern
  • Update android gradle plugin version to 2.2.2 (3ee5c5b) - @raycohen
  • Expose Android's includeFontPadding for Text (7b3e67d) - @benvium
  • Handle "Never Ask Again" in permissions and add requestMultiplePermissions (51efaab) - @cmcewen
  • Remove Jackson dependency (6fef014)
  • Remove REACT_HEADERS from RN BUCK file (9024998) - @javache
  • Implement onViewAppear by creating a new EventListener on ReactRootView listening for when it's attached to a RN Instance (e06b8db) - @donyu

iOS

Bugfixes

  • Fix autoCorrect doesn't revert to initial state (8016d83) - @rigdern
  • Fix NativeAnimation invalidation & races on iOS (c858420) - @ryangomba
  • Fix an image loader crash (70d4023) - @rigdern
  • Fix iOS Picker item colors (4dea892) - @JakeDawkins
  • Fix dequeueTasks crash in image loader (d043775) - @rigdern
  • Remove deprecated RCTReloadNotification (cd2b384) - @javache
  • Fix LayoutAnimation delete scaleXY animation (fc23784) - @rcaferati
  • Fix memory leak in Chrome debugging (230de71) - @EmingK
  • Fix shake to open Dev Menu only work once (abf1438) - @VojtechBartos

New features and enhancements

  • Introduce spellCheck prop to TextInput (0e55f5b) - @rigdern
  • Make run-ios find if a device is booted better (0b5ff0d)
  • Start exposing RCTWebSocketObserver using a protocol (48cb8d3) - @adamjernst
  • Add fastlane to default .gitignore (5e008c9) - @KrauseFx
  • Move all header imports to "<React/..>" (see breaking change notes) (e1577df) - @javache
  • Remove deprecated push notification method info (9c7952d) - @sharnik
  • Add badgeColor property (a50bafa) - @skv-headless
  • UnselectedItemTintColor property available since iOS10 (8378142) - @skv-headless

General

Bugfixes

  • Fix up recent fix to flex basis and put it behind an experimental flag (dad5204) - @emilsjolander
  • NavigationExperimental: Fix animation in fast navigation between scenes (df43cc7) - @gitim
  • Fix invariant in scrollResponderZoomTo (20e99f5) - @gre
  • Fix double callback invocation in ModuleGraph/Graph (021b313) - @davidaurelio
  • Fix usage of weak references to check for null (4902a03) - @emilsjolander
  • Fix a bug in determining if yarn is available (9b53408) - @mkonicek
  • Fix packager asset requests on windows (d77b4fd) - @janicduplessis
  • Fix the parse error when specifying an unknown version (c2db59e) - @ncuillery
  • Fix babel 'strict mode' error (5478649) - @karpoff
  • Red Box should open PyCharm at line number of error (be16907) - @bigsassy

New features and enhancements

  • ScrollView: Don't dismiss keyboard when tapping another text input (552c601) - @janicduplessis
  • Add support for aspectRatio style prop (5850165) - @emilsjolander
  • Packager: add GlobalTransformCache (5d30045) - @jeanlauliac
  • Add CLI basics in docs (5e8e6b8) - @GantMan
  • Add deprecated flag for nativeImageSource (1fe0f4d) - @frantic
  • Add StyleSheet.setStyleAttributePreprocessor (346858a) - @brentvatne
  • Packager: Cache assets only for production environment (d196ca7) - @grabcode
  • Dispatch native handled events to JS (b49e7af) - @janicduplessis
  • Packager: Bring back programmatic API (f9d80a4) - @davidaurelio
  • Read byte code format version from custom JSC executor only if custom JSC is enabled (b4dbf2b) - @indragiek
  • Update Flowconfig in CLI template to Flow v0.36.0 (eb45367) - @mkonicek
  • Packager: Module: better type for transformOptions (c284e0c) - @jeanlauliac
  • Packager: Bundler: use transform module hash instead of mtime (e485f69) - @jeanlauliac
  • Packager: Bundler: use stable paths for cache key (188093a) - @jeanlauliac
  • Packager: Bundler: hash all the cache key components (6740207) - @jeanlauliac
  • Packager: GlobalTransformCache: better aggregation (9b9fd2f) - @jeanlauliac
  • Packager: GlobalTransformCache: globalized keyOf (cb254d1) - @jeanlauliac
  • Packager: Module: gives global cache more retries (59873d7) - @jeanlauliac
  • Packager: Kill shouldThrowOnUnresolvedErrors option (b1fd7bd) - @cpojer
  • Packager: Make legocastle script to write to the global cache (46f8eb0) - @jeanlauliac
  • Packager: Support relative paths in haste map (6c65cda) - @davidaurelio
  • Packager: ModuleGraph: Also call back with module objects of entry points (88409f6) - @davidaurelio
  • Change isPolyfill to type = 'module' | 'script' (da079f7) - @davidaurelio
  • Kill fastfs (6554ad5) - @cpojer
  • CLI: Allow configuring the way CLI installs react-native (8f0aed6) - @mkonicek
  • CLI: Show npm / yarn output during 'react-native-init' when installing React and Jest (63804db) - @mkonicek
  • CLI: Remove dependency on Yeoman (8fb2440) - @mkonicek
  • CLI: Use Yarn if available (ca403f0) - @mkonicek
  • GitUpgrade: Upgrade React and React Native at the same time (a0f3a93) - @ncuillery
  • Remove HMR require from initialization code (c3e2c30) - @davidaurelio
  • Packager: Allow custom platforms on a per-project basis (5b37c3e) - @andrewimm
  • Better error for ART <Group /> (4a216f6) - @grabbou
  • Do not call toString on functions in buildStyleInterpolator (25fb2ba) - @michalgr
  • NavigationExperimental: Update type check for NavigationCardStack (6432839) - @lgan1989
  • Reworking keyboardShouldPersistTaps to have a middle ground (276485b) - @MaxLap
  • Deprecate MapView in favor of airbnb/react-native-maps (5dbdb12) - @mkonicek