react-native/Examples/UIExplorer
Adam Comella ee8496f364 iOS: Support HTTP headers for source prop on <Image> components
Summary:
Allows developers to specify headers to include in the HTTP request
when fetching a remote image. For example, one might leverage this
when fetching an image from an endpoint that requires authentication:

```
<Image
  style={styles.logo}
  source={{
    uri: 'http://facebook.github.io/react/img/logo_og.png',
    headers: {
      Authorization: 'someAuthToken'
    }
  }}
/>
```

Note that the header values must be strings.

Works on iOS and Android.

**Test plan (required)**

- Ran a small example like the one above on iOS and Android and ensured the headers were sent to the server.
- Ran a small example to ensure that \<Image\> components without headers still work.
- Currently using this code in our app.

Adam Comella
Microsoft Corp.
Closes https://github.com/facebook/react-native/pull/7338

Reviewed By: javache

Differential Revision: D3371458

Pulled By: nicklockwood

fbshipit-source-id: cdb24fe2572c3ae3ba82c86ad383af6d85157e20
2016-06-01 10:43:28 -07:00
..
AnimatedGratuitousApp remove paddingTop in AnimatedGratuitousApp 2016-05-25 00:13:31 -07:00
NavigationExperimental Clean up examples. 2016-05-31 11:43:29 -07:00
Navigator Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
Thumbnails Fixed zero-size images 2015-11-18 15:23:30 -08:00
UIExplorer Fixed UIExplorer 2016-05-24 02:58:23 -07:00
UIExplorer.xcodeproj Reduce boxing overhead of arrays in uiBlockWithLayoutUpdateForRootView 2016-05-31 08:43:24 -07:00
UIExplorerIntegrationTests Updated AppState module to use new emitter system 2016-05-23 09:13:37 -07:00
UIExplorerUnitTests iOS: Support HTTP headers for source prop on <Image> components 2016-06-01 10:43:28 -07:00
android/app Allow building UIExplorer with Buck 2016-04-12 13:05:24 -07:00
AccessibilityAndroidExample.android.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
AccessibilityIOSExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
ActionSheetIOSExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
ActivityIndicatorExample.js Cross platform ActivityIndicator 2016-05-26 13:58:17 -07:00
AdSupportIOSExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
AlertExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
AlertIOSExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
AnimatedExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
AppStateExample.js Update RCTNetworking, RCTNetInfo and RCTLocationManager to use new events system 2016-05-25 04:28:36 -07:00
AssetScaledImageExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
AsyncStorageExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
BorderExample.js Fix 'Can't find variable: React' 2016-04-24 07:13:29 -07:00
BoxShadowExample.js Fix 'React not found' issue 2016-04-24 16:27:25 -07:00
CameraRollExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
CameraRollView.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
ClipboardExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
DatePickerAndroidExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
DatePickerIOSExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
ExampleTypes.js Update FBSource to use Flow 0.22 2016-03-08 12:39:29 -08:00
GeolocationExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
ImageCapInsetsExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
ImageEditingExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
ImageExample.js Add Image#getSize for Android 2016-05-20 18:43:38 -07:00
LayoutAnimationExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
LayoutEventsExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
LayoutExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
LinkingExample.js Fix Linking Example 2016-05-20 13:28:19 -07:00
ListViewExample.js clarify highlightRow usage with UIExplorer example 2016-05-05 03:43:47 -07:00
ListViewGridLayoutExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
ListViewPagingExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
MapViewExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
ModalExample.js Modal Animation Types 2016-04-28 16:00:32 -07:00
NavigatorIOSColorsExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
NavigatorIOSExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
NetInfoExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
PanResponderExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
PickerExample.js Display platform-specific examples 2016-05-05 09:10:26 -07:00
PickerIOSExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
PointerEventsExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
ProgressBarAndroidExample.android.js Cross platform ActivityIndicator 2016-05-26 13:58:17 -07:00
ProgressViewIOSExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
PushNotificationIOSExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
RCTRootViewIOSExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
README.md Allow building UIExplorer with Buck 2016-04-12 13:05:24 -07:00
RefreshControlExample.js Allow to set refresh control title color 2016-04-16 15:15:25 -07:00
RootViewSizeFlexibilityExampleApp.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
ScrollViewExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
ScrollViewSimpleExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
SegmentedControlIOSExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
SetPropertiesExampleApp.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
SliderExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
SliderIOSExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
SnapshotExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
StatusBarExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
StatusBarIOSExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
SwitchExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
TabBarIOSExample.js Add renderAsOriginal to selectedIcon 2016-05-24 01:58:23 -07:00
TextExample.android.js Added support for textDecorationLine style prop on Android 2016-04-12 03:37:34 -07:00
TextExample.ios.js iOS: Enable views to be nested within <Text> 2016-05-31 10:28:25 -07:00
TextInputExample.android.js Implement returnKeyType/returnKeyLabel on Android 2016-05-05 10:22:19 -07:00
TextInputExample.ios.js Replaced old password prop with secureTextEntry 2016-06-01 06:58:24 -07:00
TimePickerAndroidExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
TimerExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
ToastAndroidExample.android.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
ToolbarAndroidExample.android.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
TouchableExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
TransformExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
TransparentHitTestExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
UIExplorerActions.js Kill NavigationExperimental Containers 2016-05-05 16:52:19 -07:00
UIExplorerApp.android.js Add support for delete animation in LayoutAnimation on Android 2016-05-26 05:28:26 -07:00
UIExplorerApp.ios.js Handle old navigation state safely. 2016-05-27 15:43:23 -07:00
UIExplorerBlock.js Fix warnings in UIExplorer example pages 2016-04-07 21:14:29 -07:00
UIExplorerButton.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
UIExplorerExampleList.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
UIExplorerList.android.js Cross platform ActivityIndicator 2016-05-26 13:58:17 -07:00
UIExplorerList.ios.js Cross platform ActivityIndicator 2016-05-26 13:58:17 -07:00
UIExplorerNavigationReducer.js Rename `navigationState.children` to `navigationState.routes`. 2016-05-22 16:28:27 -07:00
UIExplorerPage.js Fix warnings in UIExplorer example pages 2016-04-07 21:14:29 -07:00
UIExplorerStateTitleMap.js D3321403 [NavigationExperimental][CleanUp]: Rename `scene.navigationState` to `scene.route`. 2016-05-20 18:13:30 -07:00
UIExplorerTitle.js Fix warnings in UIExplorer example pages 2016-04-07 21:14:29 -07:00
URIActionMap.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
VibrationExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
VibrationIOSExample.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
ViewExample.js Revert "Revert "fix border style without borderRadius"" 2016-05-06 09:23:22 -07:00
ViewPagerAndroidExample.android.js Ability to disable/lock the android ViewPager scroll from props 2016-05-11 16:51:17 -07:00
WebSocketExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
WebViewExample.js explicit type args in react-native-github 2016-05-24 18:28:26 -07:00
XHRExample.android.js Add support for ontimeout and onerror handler when using XMLHttpRequest for Android and iOS 2016-04-15 05:17:21 -07:00
XHRExample.ios.js Update RCTNetworking, RCTNetInfo and RCTLocationManager to use new events system 2016-05-25 04:28:36 -07:00
XHRExampleCookies.js Add WebView integration example to cookies example 2016-04-25 09:44:26 -07:00
XHRExampleFetch.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
XHRExampleHeaders.js Fix up this pattern var React = require('react-native'); 2016-04-08 20:37:22 -07:00
XHRExampleOnTimeOut.js Add support for ontimeout and onerror handler when using XMLHttpRequest for Android and iOS 2016-04-15 05:17:21 -07:00
bunny.png add remote image support to toolbar 2015-09-30 09:21:27 -07:00
createExamplePage.js Fix warnings in UIExplorer example pages 2016-04-07 21:14:29 -07:00
flux@3x.png Managed assets support for RCTConvert 2015-09-29 09:21:39 -07:00
hawk.png add remote image support to toolbar 2015-09-30 09:21:27 -07:00
helloworld.html Support non-image assets in packager 2016-02-03 17:30:39 -08:00
relay@3x.png Add renderAsOriginal to selectedIcon 2016-05-24 01:58:23 -07:00
slider-left.png Add option for both min/max track image. 2015-12-21 10:30:39 -08:00
slider-left@2x.png Add option for both min/max track image. 2015-12-21 10:30:39 -08:00
slider-right.png Add option for both min/max track image. 2015-12-21 10:30:39 -08:00
slider-right@2x.png Add option for both min/max track image. 2015-12-21 10:30:39 -08:00
slider.png Add option for both min/max track image. 2015-12-21 10:30:39 -08:00
slider@2x.png Add option for both min/max track image. 2015-12-21 10:30:39 -08:00
uie_comment_highlighted@2x.png Update Image docs and examples to the new asset system 2016-01-27 13:47:45 -08:00
uie_comment_normal@2x.png Update Image docs and examples to the new asset system 2016-01-27 13:47:45 -08:00
uie_thumb_big.png added method to set thumb image 2015-11-24 16:10:04 -08:00
uie_thumb_normal@2x.png Update Image docs and examples to the new asset system 2016-01-27 13:47:45 -08:00
uie_thumb_selected@2x.png Update Image docs and examples to the new asset system 2016-01-27 13:47:45 -08:00
websocket_test_server.js Add support for sending binary data in websockets 2016-04-20 08:53:25 -07:00

README.md

UIExplorer

The UIExplorer is a sample app that showcases React Native views and modules.

Running this app

Before running the app, make sure you ran:

git clone https://github.com/facebook/react-native.git
cd react-native
npm install

Running on iOS

Mac OS and Xcode are required.

  • Open Examples/UIExplorer/UIExplorer.xcodeproj in Xcode
  • Hit the Run button

See Running on device if you want to use a physical device.

Running on Android

You'll need to have all the prerequisites (SDK, NDK) for Building React Native installed.

Start an Android emulator (Genymotion is recommended).

cd react-native
./gradlew :Examples:UIExplorer:android:app:installDebug
./packager/packager.sh

Note: Building for the first time can take a while.

Open the UIExplorer app in your emulator.

See Running on Device in case you want to use a physical device.

Running with Buck

Follow the same setup as running with gradle.

Install Buck from here.

Run the following commands from the react-native folder:

./gradlew :ReactAndroid:packageReactNdkLibsForBuck
buck fetch uiexplorer
buck install -r uiexplorer
./packager/packager.sh

Note: The native libs are still built using gradle. Full build with buck is coming soon(tm).

Built from source

Building the app on both iOS and Android means building the React Native framework from source. This way you're running the latest native and JS code the way you see it in your clone of the github repo.

This is different from apps created using react-native init which have a dependency on a specific version of React Native JS and native code, declared in a package.json file (and build.gradle for Android apps).