react-native-macos/Examples/UIExplorer
Janic Duplessis 18f38ecdc0 Add StatusBar height constant and improve implementation
Summary:This adds a `HEIGHT` constant on `StatusBar` on Android. I needed only this for now but I will work on a better status bar dimensions API later (see TODO).

It also improves the implementation to fix a bug that happened when multiple `StatusBar` components get updated in the same frame as well as remove useless calls to the `StatusBarModule` when values did not change.

Instead of calling the `StatusBarManager` immediately when the component gets updated and relying on the order of the calls that get dispatched to native we now wait at the end of the frame to send the calls to the `StatusBarManager` using `setImmediate`. To make this work properly we need to change the data structure of the props stack a little bit to store the desired transition/animation too for each value.

Finally this updates the example to only show the ones that work for the current platform.

**Test plan**
In the UIExplorer Example, in the 'StatusBar dimensions' section it should show 25 for the height of the status bar.
A
Closes https://github.com/facebook/react-native/pull/6195

Differential Revision: D3017559

fb-gh-sync-id: d6f4c6a72a2dfde83496ecc0f56dca4abaf3055e
shipit-source-id: d6f4c6a72a2dfde83496ecc0f56dca4abaf3055e
2016-03-17 16:54:26 -07:00
..
AnimatedGratuitousApp Resolve react flow definitions 2016-02-25 02:45:34 -08:00
NavigationExperimental Port `onWillFocus` and `onDidFocus` from `Navigator` to `NavigationLegacyNavigatorRouteStack`. 2016-03-17 11:27:24 -07:00
Navigator Move cssVar out of react-native-github 2016-03-04 13:22:03 -08:00
Thumbnails Fixed zero-size images 2015-11-18 15:23:30 -08:00
UIExplorer App linking for UIExplorer iOS 2016-02-22 16:17:23 -08:00
UIExplorer.xcodeproj Added unit tests for module init 2016-03-01 09:44:37 -08:00
UIExplorerIntegrationTests Update examples for the converged Switch component 2016-01-11 12:46:50 -08:00
UIExplorerUnitTests Add a test for RCTBridgeModules that aren't auto-exported 2016-03-14 03:46:26 -07:00
android/app vibration module 2016-03-03 04:08:31 -08:00
AccessibilityAndroidExample.android.js Release React Native for Android 2015-09-14 18:13:39 +01:00
AccessibilityIOSExample.js Fix 16 linter warnings in Examples/ 2015-10-16 04:03:23 -07:00
ActionSheetIOSExample.js Added support for taking snapshots of the screen, window or individual views 2016-02-23 02:26:33 -08:00
ActivityIndicatorIOSExample.js [Flow] Properly fix new errors as of Flow v0.10. 2015-04-27 14:56:21 -08:00
AdSupportIOSExample.js [ReactNative] expose missing haste modules through 'react-native' node module 2015-06-30 18:57:26 -08:00
AlertExample.js Simplified AlertIOS 2016-01-21 10:57:26 -08:00
AlertIOSExample.js Resolve react flow definitions 2016-02-25 02:45:34 -08:00
AnimatedExample.js Resolve react flow definitions 2016-02-25 02:45:34 -08:00
AppStateExample.js Android AppState 2016-01-21 11:47:21 -08:00
AppStateIOSExample.js Fix 16 linter warnings in Examples/ 2015-10-16 04:03:23 -07:00
AssetScaledImageExample.js [Image] Improved loading of Assets Library and Photos Framework images. 2015-07-21 05:32:48 -08:00
AsyncStorageExample.js Fix all warnings for missing keys. 2015-12-11 21:23:29 -08:00
BorderExample.js add the ability to create triangles using css tricks 2016-02-19 02:59:30 -08:00
BoxShadowExample.js Improved shadow performance 2016-01-14 14:04:34 -08:00
CameraRollExample.js Open sourced Camera Roll module 2016-01-14 04:33:11 -08:00
CameraRollView.js Open sourced Camera Roll module 2016-01-14 04:33:11 -08:00
ClipboardExample.js Change the js signature to be Promise based and dynamically detect it used as a callback 2016-01-21 09:49:34 -08:00
DatePickerAndroidExample.js Open source Android date and time pickers 2016-01-26 10:31:17 -08:00
DatePickerIOSExample.js [Flow] Fix or suppress errors in react-native for Flow v0.13.0 2015-06-22 09:48:15 -08:00
ExampleTypes.js Update FBSource to use Flow 0.22 2016-03-08 12:39:29 -08:00
GeolocationExample.js Fix errors uncovered by v0.19.0 2015-12-01 20:11:26 -08:00
ImageCapInsetsExample.js Generalized image decoding and resizing logic 2016-01-20 11:11:13 -08:00
ImageEditingExample.js Resolve react flow definitions 2016-02-25 02:45:34 -08:00
ImageExample.js Convert Image resizeMode `contain` to FIT_CENTER 2016-03-08 12:12:34 -08:00
LayoutEventsExample.js Fix errors uncovered by v0.19.0 2015-12-01 20:11:26 -08:00
LayoutExample.js Migrate unit tests from FBReactKitModules to FBReactKit 2015-07-07 16:39:35 -08:00
LinkingExample.js Add 'Linking' example 2016-02-29 03:29:31 -08:00
ListViewExample.js Open source Android date and time pickers 2016-01-26 10:31:17 -08:00
ListViewGridLayoutExample.js Fixed missing rows on UIExplorer <ListView> - Grid Layout example 2016-02-10 08:37:57 -08:00
ListViewPagingExample.js Fixed missing rows on UIExplorer <ListView> - Grid Layout example 2016-02-10 08:37:57 -08:00
MapViewExample.js Add MapView annotation callback when it gets / lost the focus 2016-01-29 06:26:30 -08:00
ModalExample.js Make <Modal> visible by default 2015-10-30 17:09:27 -07:00
NavigatorIOSColorsExample.js Resolved UIExplorer StatusBarIOS deprecation warning 2016-02-22 08:28:33 -08:00
NavigatorIOSExample.js Seperate NavigatorIOS Example from UIExplorer Navigation 2016-02-18 21:56:33 -08:00
NetInfoExample.js Use promises in 'NetInfo' 2016-02-15 13:34:33 -08:00
PanResponderExample.js Fix errors uncovered by v0.19.0 2015-12-01 20:11:26 -08:00
PickerAndroidExample.js Remove 'displayName' prop from 'PickerExample' component 2016-02-27 16:19:35 -08:00
PickerIOSExample.js Fix PickerIOSExample 2015-12-08 13:48:28 -08:00
PointerEventsExample.js Update FBSource to use Flow 0.22 2016-03-08 12:39:29 -08:00
ProgressBarAndroidExample.android.js ProgressBarAndroid: default value for styleAttr 2016-01-07 12:02:37 -08:00
ProgressViewIOSExample.js [Flow] Fix or suppress errors in react-native for Flow v0.13.0 2015-06-22 09:48:15 -08:00
PushNotificationIOSExample.js Resolve react flow definitions 2016-02-25 02:45:34 -08:00
RCTRootViewIOSExample.js Resolve react flow definitions 2016-02-25 02:45:34 -08:00
README.md Add git clone step to READMEs 2015-11-16 22:55:45 -05:00
RefreshControlExample.js Open source Android date and time pickers 2016-01-26 10:31:17 -08:00
RootViewSizeFlexibilityExampleApp.js Resolve react flow definitions 2016-02-25 02:45:34 -08:00
ScrollViewExample.js Replace `ScrollView.scrollTo()` API with something less ambiguous. 2016-02-03 04:00:40 -08:00
ScrollViewSimpleExample.js Get back 100% in sync with fb codebase 2015-09-16 10:30:53 -07:00
SegmentedControlIOSExample.js Update SegmentedControlIOSExample.js 2015-07-08 12:52:04 -08:00
SetPropertiesExampleApp.js Clean up UIExplorer and seperate RCTRootView examples 2016-02-19 16:55:54 -08:00
SliderIOSExample.js Add option for both min/max track image. 2015-12-21 10:30:39 -08:00
SnapshotExample.js Removed 'screen' option from snapshot API 2016-02-24 09:06:31 -08:00
StatusBarExample.js Add StatusBar height constant and improve implementation 2016-03-17 16:54:26 -07:00
StatusBarIOSExample.js Fix all warnings for missing keys. 2015-12-11 21:23:29 -08:00
SwitchExample.js Update examples for the converged Switch component 2016-01-11 12:46:50 -08:00
TabBarIOSExample.js Managed assets support for RCTConvert 2015-09-29 09:21:39 -07:00
TextExample.android.js Add <Text> shadow support 2016-01-01 09:33:31 -08:00
TextExample.ios.js Added support for width & height for text images 2016-01-22 11:32:32 -08:00
TextInputExample.android.js Enable blurOnSubmit for text input in android 2016-03-02 07:07:32 -08:00
TextInputExample.ios.js Resolve react flow definitions 2016-02-25 02:45:34 -08:00
TimePickerAndroidExample.js Open source Android date and time pickers 2016-01-26 10:31:17 -08:00
TimerExample.js Fix all warnings for missing keys. 2015-12-11 21:23:29 -08:00
ToastAndroidExample.android.js Fix typos in example descriptions. 2015-10-20 04:38:21 -07:00
ToolbarAndroidExample.android.js Allow for styling of ToolbarAndroid's overflow icon 2015-10-22 04:43:25 -07:00
TouchableExample.js Add disabled TouchableNativeFeedback button example 2016-02-24 05:26:33 -08:00
TransformExample.js Added JS wrappers for ImageStore and ImageEditor 2015-12-23 10:08:07 -08:00
TransparentHitTestExample.js Hit testing now treats views with 0.0 opacity as interactable 2015-10-30 04:14:25 -07:00
UIExplorerActions.js Adopt NavigationExperimental in UIExplorer 2016-02-22 16:17:06 -08:00
UIExplorerApp.android.js Fix navigation in UIExplorer. Use current index instead of fixed valu… 2016-03-07 03:04:23 -08:00
UIExplorerApp.ios.js Clean up APIs. 2016-03-04 14:57:31 -08:00
UIExplorerBlock.js Fixed text background color 2015-05-28 09:31:57 -08:00
UIExplorerButton.js Add Timer example 2015-09-11 02:00:31 -07:00
UIExplorerExampleList.js Update FBSource to use Flow 0.22 2016-03-08 12:39:29 -08:00
UIExplorerList.android.js Removed eslint rule that checks modules 2016-03-10 15:59:22 -08:00
UIExplorerList.ios.js vibration module 2016-03-03 04:08:31 -08:00
UIExplorerNavigationReducer.js NavigationExperimental: Avoid double push on double-tap in UIExplorer 2016-03-10 11:16:33 -08:00
UIExplorerPage.js Update FBSource to use Flow 0.22 2016-03-08 12:39:29 -08:00
UIExplorerStateTitleMap.js Clean up APIs. 2016-03-04 14:57:31 -08:00
UIExplorerTitle.js [React Native] Fix padding in UIExplorer 2015-07-03 02:24:56 -08:00
VibrationExample.js vibration module 2016-03-03 04:08:31 -08:00
VibrationIOSExample.js [React Native] Sync from github 2015-03-27 22:09:11 -08:00
ViewExample.js Support dashed and dotted border styles on iOS 2015-12-23 10:07:28 -08:00
ViewPagerAndroidExample.android.js Add onPageScrollStateChanged for ViewPagerAndroid 2016-01-29 01:17:35 -08:00
WebViewExample.js Fix WebView example on iOS 2016-02-26 08:20:34 -08:00
XHRExample.android.js PixelRatio.pixel() 2016-01-15 05:15:31 -08:00
XHRExample.ios.js Resolve react flow definitions 2016-02-25 02:45:34 -08:00
XHRExampleCookies.js Resolve react flow definitions 2016-02-25 02:45:34 -08:00
XHRExampleFetch.js Resolve react flow definitions 2016-02-25 02:45:34 -08:00
XHRExampleHeaders.js Fix errors uncovered by v0.19.0 2015-12-01 20:11:26 -08:00
bunny.png add remote image support to toolbar 2015-09-30 09:21:27 -07:00
createExamplePage.js Update FBSource to use Flow 0.22 2016-03-08 12:39:29 -08: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
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

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.

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