Git Product home page Git Product logo

magic-script-components-react-native's People

Contributors

darek607 avatar dependabot[bot] avatar grozdanov avatar grzegorzdec avatar kpiascik avatar leoyanggit avatar lucas-koehler avatar mateuszmwojcik avatar panwrona avatar pleszkiewicz avatar sofomomobile avatar tonycuadra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

magic-script-components-react-native's Issues

Create user documentation

Getting Started
API Documentation
Samples
Guide to creating prefabs
Guide for iOS
Guide for Android
Guide for Lumin
Guide for complex app

Limited size of UI node: WRAP_CONTENT issue

Size of ViewRenderable (UI node) is limited by the maximum possible texture size which depends on GPU driver as reported here. Moreover, ArCore uses some kind of "comfortable mode" for view sizing - as a result, for example, the text node may wrap the content earlier than expected if width is not set explicitly.
So, how should we manage the WRAP_CONTENT mode while setting the width and height of a UI node? We should also limit the specified width and height to avoid artifacts.

ARComponentManager lifecycle issue

After exiting application with back button and opening it again, the node's creation methods are not invoked again (ARComponentManager instance survives). However the ARView is recreated correctly (Activity and AR Fragment also are rebuilt as expected). I think that the custom tags' parser should recreate the whole scene in such case.

Update:
I've also noticed that nodes hierarchy is created even if the ArView is not currently rendered in React Native. Although it's working without major issues we probably should address it if we want to allow creating normal apps containing not only the AR stuff. This would probably require re-implementing the platform-factory.js and other React Native code responsible for rendering the nodes.

File paths to images and models require more work.

Relative path (to local assets) needs to be handled in a different way. Right now we modify the path on the native side by adding a prefix (based on the app's mode: debug/release/device/simulator). As a solution, we considered adding support for require in the magic script for Lumin.

Implement base classes for iOS components:

Design and develop the API for native iOS components (SCNNode's) to match the interface of Lumin's components. This includes:

  • TransformNode, UiNode, GroupNode
  • attributes (shared and custom)
  • events/event handlers

Get rid of hack related to React Native bug (dynamically added native views not showing)

Because of a common bug in React Native described here (native Android views added dynamically are not showing), we are currently using this hack (suggested by @arsenalol69) to make it working. The hack is inside DynamicContainer view, which we instantiate inside ViewGroupManager. Note that we have to call requestLayout function manually after adding child view.

We should be aware of the issue and remove the hack when it's solved in React Native.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.