Commit Graph

15 Commits

Author SHA1 Message Date
Pascal Hartig
9f899c7026 Upgrade to SoLoader 0.8.2
Summary: No changes that should impact us in any way.

Reviewed By: priteshrnandgaonkar

Differential Revision: D19856578

fbshipit-source-id: 35113b4b9e56b6c0b09681ac5649705cf840f60c
2020-02-13 12:06:53 -08:00
Pascal Hartig
effa2ec5a5 Flipper Release: v0.31.1
Summary: Bugfix release for startup problem.

Reviewed By: cekkaewnumchai

Differential Revision: D19832703

fbshipit-source-id: 75451e39f53b2d231e1ad10219b37620593f0998
2020-02-11 06:09:58 -08:00
Pascal Hartig
72a140bd96 Flipper Release: v0.31.0
Summary:
== Highlights ==

- Database query favourites are now persisted across sessions (b0caaa7)
- Allow disabling iOS development in Settings
(aab004a)
- Various improvements to the sidebar
- FPS graph to visualize slow UIs for plugin developers (31df1db)
- Window theme attributes when clicking on a window in the inspector (c430fc3)
- Removed Stetho dependency (48d6ea4). Thanks, ZacSweers!
- Install plugins directly from package files (b9e7f5d6d1)

== Fixes ==

-  Mac plugins not showing up (02e0233)
- Doctor: log both shown and suppressed warnings (35d62e70cb). Thanks, mateosilguero!
- Fix default SDK path on Windows (e178221)
-  Doctor complains Android SDK is not installed
(b625efe)
-  Update welcome screen links (33ad41c)
- Fix 'Timed out waiting for device' error (060e8c0)

Reviewed By: priteshrnandgaonkar

Differential Revision: D19813089

fbshipit-source-id: 8b1fc6fb140d02b7f78adcadd7c45a3ed1755f2f
2020-02-10 07:03:07 -08:00
Janic Duplessis
912bfed0f8 Allow Flipper module instances to be created by applications (#786)
Summary:
This allows using the flipper RN module with TurboModules instead of using FlipperPackage.

## Changelog

[react-native-flipper] Allow Flipper module instances to be created by applications
Pull Request resolved: https://github.com/facebook/flipper/pull/786

Test Plan:
An instance of the Flipper module can now be created like this when using TurboModules:

```java
  Override
  public NativeModule getModule(String name, ReactApplicationContext reactContext) {
    switch (name) {
      ...
      case FlipperModule.NAME:
        return new FlipperModule(FlipperReactNativeJavaScriptPluginManager.getInstance(), reactContext);
      ...
    }
  }
```

Tested that it builds

Reviewed By: mweststrate

Differential Revision: D19812912

Pulled By: passy

fbshipit-source-id: 401b3e4552ea0cdb7444a2cf5d170c408edab4db
2020-02-10 05:54:55 -08:00
Pascal Hartig
3d66df2d86 Cleanup 4/4
Summary: I think that's it. Some more minor changes and removing an unused BUCK file.

Reviewed By: mweststrate

Differential Revision: D19471282

fbshipit-source-id: ceb85111f03a41141dca0bdd445cda12dfbac1c4
2020-01-24 07:00:15 -08:00
Pascal Hartig
2ec539acb1 Cleanup 3/n
Summary: Same treatment for FlipperReactNativeJavaScriptPlugin.

Reviewed By: mweststrate

Differential Revision: D19471257

fbshipit-source-id: b51d92074ae411c089f0010057f2b61ef6500de0
2020-01-24 07:00:15 -08:00
Pascal Hartig
4e77b37831 Cleanup 2/n
Summary:
Some more minor cleanups that don't (well, barely) affect
semantics.

- Fix singleton management in multi-threaded environments.
- Remove double assignment.
- Make all things final where they can be.
- Use ugly Hungarian notation.
- Weaken some types.

Reviewed By: mweststrate

Differential Revision: D19471227

fbshipit-source-id: 18833c3fe940f51b8d4cb3948a63387b8cd9316c
2020-01-24 07:00:14 -08:00
Pascal Hartig
6864556912 Cleanup 1/n
Summary:
Making some changes to make this more idiomatic and abide by
the Flipper/FB standards. This one just removes some unused
variables and annotations.

Reviewed By: jknoxville

Differential Revision: D19470676

fbshipit-source-id: 4beb516f00228b1d33e4e1b42d9bc4f8c29af565
2020-01-24 05:02:07 -08:00
Michel Weststrate
e306aeb010 Don't die when flipper isn't initialized and a plugin is used
Summary: This diff makes sure that the app doesn't die, or dies in a meaningful way if things are misconfigured.

Reviewed By: passy

Differential Revision: D19468273

fbshipit-source-id: 2471c263391906113446af57d795d1199eb1730e
2020-01-23 07:11:30 -08:00
Michel Weststrate
0fa0899299 Create React Native example project
Summary:
This diff creates a sample React Native project (based on the 0.62-rc.0 template).

This example is created like:
(Documenting this here as in the future this might be easier than upgrading the project itself)

1. Run `npx react-native init ReactNativeFlipperExample --version 0.62.0-rc.0`
2. Follow the installation steps to enable Flipper, that is, call `initializeFlipper(this, getReactNativeHost().getReactInstanceManager());` at the end of the `onCreate` method in `MainApplication.java`
3. Put `FlipperTicTacToe` in the root of the project, and call it from `App.js` as a component
4. install `react-native-flipper` as dependency
5. install `relative-deps` as dev dependency, and set it up as shown in `package.json`. This tool make sure that we build and test this project against the version of react-native-flipper in this repository, rather than against the one on NPM.
6. removed some stuff, like tests and linting, which is just in the way in this repo

This PR does not support iOS, as Flipper + RN iOS is still broken in 0.62.0-rc.0, and the current version of react-native-flipper doesn't support iOS yet either.

Documentation on how to set up Flipper in general is not part of this Diff

_N.B. since this is a **public** project, to be visible and runnable by our OSS community, the build setup is kept plain, vanilla, react-native, and **not** wired up to our normal / internal build processes. This is also the reason that lint suggestions beyond the license headers have been ignored. If any others should be applied, it is probably the official react native template that requires updating_

Reviewed By: passy

Differential Revision: D19449295

fbshipit-source-id: 2aeb6044f8dd01f09a95350c84fff2419d685a65
2020-01-23 04:47:52 -08:00
Anton Nikolaev
4d91f6eb60 Flipper Release: v0.30.2
Reviewed By: passy

Differential Revision: D19494145

fbshipit-source-id: d5d0bdf6a033c3de286029adec3e0f6245864a62
2020-01-21 03:56:46 -08:00
Michel Weststrate
1b7a30ae6c Publish react-native-flipper as NPM package
Summary:
This Diff makes the react-native-flipper package available on NPM.

For simplicity and traceability purposes, this package is released every time Flipper is released, under the same version number. Even though there will be often no changes.

Reviewed By: passy

Differential Revision: D19446815

fbshipit-source-id: 485930e57beac42a2f36dc34a8ac82eed2abe785
2020-01-17 08:21:05 -08:00
Michel Weststrate
28fd95589f Made flipper plugins a little more robust
Summary: Added some assertions and string casts to make plugins a bit more robust

Reviewed By: passy

Differential Revision: D19427909

fbshipit-source-id: 46a3138805db865b538f745fae25ce1897e35736
2020-01-16 05:06:22 -08:00
Michel Weststrate
08e2d54f62 Make sure callbacks are not reused and reloading works
Summary:
This diff is part of the bigger task T60496135

This diff changes the RN support from crude to decent citizen, making sure we don't recycle callbacks over the bridge, use subscriptions were possible, and making sure connecting, disconnecting, etc works correctly

For example, connect and disconnect hooks should work.

Finally, throw in hot reloading into the mix, which causes the registerPlugin to be triggered another time, without the old one every been unloaded.
This should trigger a new 'onConnect' on the client, to make sure it can restore any state / subscriptions necessary, even though the never disappeared in the Java world.

These cases should all be handled well.

Reviewed By: jknoxville

Differential Revision: D19347330

fbshipit-source-id: de64a08f4043f01528c794430ccc3c717abf0180
2020-01-16 05:06:22 -08:00
Michel Weststrate
c7158f4517 Make it possible to write JS only plugins
Summary:
This diff is part of the bigger task T60496135

This diff is based on D18706643, extracting only the react native module parts

It implements the entire Android client api for JavaScript, so that there is feature parity. However this implementation is happy path only, and edge cases will be handled in separate diffs

Reviewed By: jknoxville

Differential Revision: D19310265

fbshipit-source-id: 589716fe059952bdde98df84ed250c5c6feaa118
2020-01-16 05:06:22 -08:00