react-native/Examples/UIExplorer
Andrei Coman b7352b4667 Open source permissions
Summary:
This moves into open source the PermissionsModule and the activity and listener interfaces
necessary to make permissions work.
It also moves the PermissionsExample into the UIExplorer. In order to make this
work, the device has to be Android M and above, and the target sdk of the app has to be 23+, so I changed the uiexplorer manifest to
target that API. This has the unfortunate consequence that people testing on
devices with API 23+ will have to enable the `draw over other apps` setting that
react needs for RedBoxing. The app will automatically send the user to that screen,
so enabling the setting and resuming the app should be trivial.
For testing, try requesting permission for a permission that is currently
revoked. If a permission is granted, it can be revoked via adb (`adb shell pm
revoke com.your.app android.permission.PERMISSION_NAME`), and then requested.

Reviewed By: bestander

Differential Revision: D3431324

fbshipit-source-id: 8cbaea676d2b5727cb5191cdb77a02e213bf9ba3
2016-06-15 09:43:58 -07:00
..
AnimatedGratuitousApp remove paddingTop in AnimatedGratuitousApp 2016-05-25 00:13:31 -07:00
NavigationExperimental Fix typo, rename NavigationHeaderScenesTabs-example.js. to NavigationExperimental/NavigationCardStack-NavigationHeader-Tabs-example.js 2016-06-14 16:28:47 -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 Refactored subview management 2016-06-07 00:14:39 -07:00
UIExplorer.xcodeproj Add support for native animations on iOS 2016-06-09 10:43:51 -07:00
UIExplorerIntegrationTests Add support for reverse flex directions on Android and iOS 2016-06-10 03:28:45 -07:00
UIExplorerUnitTests Fixed unit tests 2016-06-07 12:43:49 -07:00
android/app Open source permissions 2016-06-15 09:43:58 -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 react-native-github: turn on strict type args in Flow, codemod stragglers 2016-06-03 02:43:57 -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 Replace deprecated ActivityIndicatorIOS and ProgressBar with ActivityIndicator 2016-06-13 22:28:24 -07:00
CameraRollView.js Replace deprecated ActivityIndicatorIOS and ProgressBar with ActivityIndicator 2016-06-13 22:28:24 -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 Replace deprecated ActivityIndicatorIOS and ProgressBar with ActivityIndicator 2016-06-13 22:28:24 -07:00
KeyboardAvoidingViewExample.js Open sourced KeyboardAvoidingView 2016-06-07 07:43:49 -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 Add support for reverse flex directions on Android and iOS 2016-06-10 03:28:45 -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 Fixed MapView's draggable annotation 2016-06-07 07:28:27 -07:00
ModalExample.js Modal Animation Types 2016-04-28 16:00:32 -07:00
NativeAnimationsExample.js Add support for native animations on iOS 2016-06-09 10:43:51 -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
PermissionsExampleAndroid.android.js Open source permissions 2016-06-15 09:43:58 -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
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 line break mode for ios 2016-06-10 04:28:37 -07:00
TextExample.ios.js line break mode for ios 2016-06-10 04:28:37 -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 Typo fix in Touchable example 2016-06-03 17:58:23 -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 Remove prop `onNavigate`. 2016-06-09 17:58:27 -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 Replace deprecated ActivityIndicatorIOS and ProgressBar with ActivityIndicator 2016-06-13 22:28:24 -07:00
UIExplorerList.android.js Open source permissions 2016-06-15 09:43:58 -07:00
UIExplorerList.ios.js Add support for native animations on iOS 2016-06-09 10:43:51 -07:00
UIExplorerNavigationReducer.js Clean up NavigationStateUtils 2016-06-08 15:13:31 -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 Implement CSS z-index for iOS 2016-06-07 07:43:49 -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 progressListener for android when using FormData to upload files 2016-06-04 08:43:21 -07:00
XHRExample.ios.js add progressListener for android when using FormData to upload files 2016-06-04 08:43:21 -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).