magic-script / magic-script-components-react-native Goto Github PK
View Code? Open in Web Editor NEWMagicScript Components renderer for ARKit and ARCore
Home Page: https://components.magicscript.org
License: Apache License 2.0
MagicScript Components renderer for ARKit and ARCore
Home Page: https://components.magicscript.org
License: Apache License 2.0
Model component should support .gltf/.glb file format.
Rename:
magic-script-components-platform-android
into magic-script-components-catalog
,+ Status: Project works fine with the magic-script-components of version 0.0.8.
Move iOS and Android implementation from main/component package to external repositories.
Use package.json
to integrate them into the main package during installation process.
Right now we can provide text content via text
attribute only:
<view>
<text text={'Some text'} />
<view/>
We need to support the following case as well:
<view>
<text>Some text<text/>
<view/>
Getting Started
API Documentation
Samples
Guide to creating prefabs
Guide for iOS
Guide for Android
Guide for Lumin
Guide for complex app
https://facebook.github.io/react-native/docs/native-modules-ios
Example of working rn module: https://github.com/814k31/TestReactNativeNativeModule
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.
Update Copyright/License header in implementation files according to plan.
Discover/develop script to run this across the repositories.
Android view added dynamically to the container which is instantiated and managed by ViewGroupManager disappears after leaving the app with back button and opening again. Currently it affects only our text edit node.
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.
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.
The tests should cover:
On Android the spinner node does not rotate inside the grid layout. The issue is related to #3 and it may be a bug in ARCore or React Native.
Add column to https://github.com/magic-script/react-native-magic-script/blob/master/docs/ComponentImplementations.md which links to markdown files showing property coverage details.
Integrate Unit test target with ios project of components.
There is a bug when using UiSpinnerNode
component: after disabling the screen and enabling it again the spinner's animation is not resumed.
Design and develop the API for native iOS components (SCNNode's) to match the interface of Lumin's components. This includes:
Move GLTF package from main/component package to external dependencie.
Try to integrate ARDemo with Cococapods.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.