Giter Club home page Giter Club logo

core's Introduction

syr js - development version

syr

syr

minimally obtrusive reactisque view engine, aimed at native developers

Build Status

Build dynamic UIs for Native Platforms, with less than 200kb of extra libraries!

The goal to provide, Native SDK developers the benefits of the React Native API, with a much smaller footprint and reduced complexity.

Easily package Syr with your Native SDKs and Apps and drive dynamic updatable experiences with JavaScript.

Syr uses a React like API with a custom JS API bridge, that allows an SDK developer to bundle an updatable experience through Apple's iTunes terms.

help

gitter: https://gitter.im/syrjs/general

otherwise open an issue.

breaking change

syr moved to scoped packages. Please move to @syr/core.

Read the Docs

https://syr.js.org/api/

Getting Started

Install

npm i @syr/core

Roadmap

Even (starting with 2) releases are stable, Odd (starting with 1) releases are development builds. Every fourth (starting with 4.0.0) release is an LTS and will be branched as well as tagged.

  • LTS Currently means support beyond 2 Stable Releases. Support for 4.0.0 will be sunset when 8.0.0 is released, as 6.0.0 will become the lowest LTS version.

How contributions will be scheduled for intake starting with version 2.0.0.

Major

  • Any Native Code Change in the Core Library Results in an Immediate Major Change.
  • Any Guest deprecations must force a major change.

Minor

  • Any Guest System Rendering Changes.
  • If new dependent features are changed, which causes instability it must be promoted to Major release schedule.

Patch

  • Corrects undesired consistent behavior.
  • Adds new features without collision

https://github.com/syrjs/syr/milestones

Development Example

native_checkout_syr

Running the local Sample

First steps:

  • Clone the repo
  • npm install
  • npm run serve

To run on iOS simulator:

To run on Android emulator, using Gradle:

  • cd android && ./gradlew installDebug
  • run the app on the Android emulator

To run the calculator sample, make the following change to webpack.config.js before npm run serve:

diff --git a/webpack.config.js b/webpack.config.js
index 7361b24..33b9561 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -7,3 +7,3 @@ module.exports = {
   entry: {
-    app: ['./samples/example.js']
+    app: ['./samples/calculator.js']
   },

Contributors

syr

core's People

Contributors

07cs07 avatar dmikey avatar edwinwebb avatar gabrielcsapo avatar harishannam avatar msiddharthreddy avatar pvenkatakrishnan avatar shermango avatar sridharrajs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar

core's Issues

Remove Constructor Setup.

We need to ensure that components can easily be constructed. The current construction chain, requires that the constructor take care of some wiring, and for that it needs arguments passed to it.

I think we should avoid this as much as possible.

Multiplex Bridge

One of the things that is interesting running inside a web browser, but not rendering a DOM, is that we can actually use iFrames to MultiPlex running apps into a one process sandbox.

There could be many great uses for this. Such ass running multiple modules for your program inside tiny sandboxes, without increasing the need for bridge instances to run them, in a single unified app.

Each mini instance could still own a RootView, or it's possible to allow them to share view. But sharing a view would mean that there should be Navigator support, so that they don't compete for rendering space - Unless thats desired (Banner Module for example, could render to the same UI view, but execute in it's own context).

I think PostRobot would be good for this.

Cascading Styling

Web cascades styles from parent to child. There should be some styles that a child gets from it's parent for styling.

Scroll View

Need to do a scroll view component, stubbed.

Box Model Implimentation

Would be nice to have a minimal box model implimentation with padding and margins to go with relative layout.

Resume Handling

Need to add resume handling to the bridge. UI comes back, but things like animation are not hydrated.

Web Raster is Rendering Containers as divs

Outer component is rendering a DIV as base tag. This should be changed. I think I picked this incase someone didn't add a Tag, but now I'm seeing this as a downside :) to our Functional Classes thing. lets remove this.

Fix Failing Travis Builds

The project has morphed a lot since the CI was setup, and we have been moving faster than we are able to keep up :) lets go back and fix CI

iOS Animator

Doesn't like casing for interpolation, likely other places where string compare is being done case sensitive.

Need syr link

should have a syr link cli command to ✨ automagically ✨ link native modules / assets

Hot reloading state

We have hot reloading, but it currently thrashes the render/state and starts over. Would be nice to preserve this to speed up developer for deep screens.

Needs setAttribute on component

Would like to pull out any constructor crap being done, into a setAttributes for bootstrapping props etc. This way the constructor remains pure and Super doesn't require args

tech debt

JSX to Native Module paring happens with some magic. Now that native module registration is in place, lets clean up the magic found in the raster when loading classes for rendering.

Relative Positioning

Would be nice to have Syr take care of relative positioning on Native Platforms, much like the DOM has a natural flow. This would mimic ReactNative more closely.

CLI Tool for syr

Will help to have more documentation on command-lines to be used on syr-cli

Could not file an issue directly there, so filing it here in the interim. Can PR them in as I figure out how to use that tool.

Should Syr Soft Fail when Selectors Change?

Wondering if Syr should soft fail, if it knows it has too many overloads for the selector it's running.

Currently it will hard fail - but this maybe this is expected behavior.

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.