Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Mobile Platform Support #3999

Merged
merged 2 commits into from
Dec 17, 2019
Merged

RFC: Mobile Platform Support #3999

merged 2 commits into from
Dec 17, 2019

Conversation

ibgreen
Copy link
Collaborator

@ibgreen ibgreen commented Dec 11, 2019

For #

Background

  • This is intended as a strategic alignment RFC, Align tech leads on a "longer term" strategy for Mobile and Native Mobile Platform support
  • If someone picks up this work, it will be advantageous to have an agreed-upon strategy for how what should be done.

Change List

  • New RFC.

@coveralls
Copy link

Coverage Status

Coverage decreased (-2.4%) to 80.674% when pulling 3496533 on ib/mobile-platform-rfc into 7cdf284 on master.

@tgorkin
Copy link
Contributor

tgorkin commented Dec 11, 2019

I agree that the WebView approach seems like the most logical to initially research. A concern will be mobile browser WebGL version and extension support. Is there any "prior art" we can refer to, such as three.js with WebViews that we can look into to evaluate the scope of this work and viability?

@ibgreen
Copy link
Collaborator Author

ibgreen commented Dec 12, 2019

A concern will be mobile browser WebGL version and extension support.

deck.gl already run on mobile browsers. Not sure on current state, WebViews used to have some limitations compared to the main mobile browsers but should support same WebGL extensions.

Is there any "prior art" we can refer to, such as three.js with WebViews that we can look into to evaluate the scope of this work and viability?

We should look around though I am not aware of any pre-packaged setups, as what is being served in the webview is a deployed URL, not a framework.

This is where the "native API messaging proxy" comes in to let the native app and deck.gl talk... as one idea, maybe we can use our JSON transport to create native Android/iOS layer classes similar to how pydeck offers python classes...

Also, @tsherif has worked with a similar setup in the past and had good experience with WebViews, and suggested the integration SDK approach.

@tsherif
Copy link
Contributor

tsherif commented Dec 12, 2019

My understanding is that the Webviews on iOS and Android are essentially the renderers from their default browsers, so I don't expect there to be any compatibility concerns other than the ones already existing in those browsers.

The pieces I imagine being involved in this are:

  • Decouple input handling from deck core. This would involve setting creating methods to control deck programmatically separating that from a set of default handlers that would implement the current interactions. This would allow us to set up alternative input handling to that used for the web and potentially allow native input events and UI elements to control deck.
  • Set up whatever callbacks are necessary for the native application wrapping deck to send and receive messages from deck. I believe this is simply a matter of checking for some global variable and setting up callback functions if they exist, but it's been a while since I've looked at code that does this.

Overall, I don't think it would be too difficult to make deck amenable to be used in a webview.

@ibgreen ibgreen force-pushed the ib/mobile-platform-rfc branch from eb02cba to 63afe09 Compare December 17, 2019 14:49
@ibgreen ibgreen merged commit f43214c into master Dec 17, 2019
@ibgreen ibgreen deleted the ib/mobile-platform-rfc branch December 17, 2019 15:03
tgorkin added a commit that referenced this pull request Dec 18, 2019
* master:
  v8.0.0-beta.2
  Layer bug fixes (#4040)
  Fix WebGL BlendEquation warnings (#4037)
  Support preprojection in PolygonTesselator (#4035)
  [Fix]: CPU Aggregation: filter out points outside of viewport. (#4026)
  React module fixes (#4032)
  Bump math.gl and probe.gl dependencies (#4029)
  RFC: Mobile Platform Support (#3999)
  Fix playground examples (#4030)
chrisgervang pushed a commit that referenced this pull request Jan 31, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants