GithubHelp home page GithubHelp logo

hhy5277 / render Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alexdrone/render

0.0 1.0 0.0 889.39 MB

Swift and UIKit a la React.

License: Other

Python 0.02% Ruby 0.11% C 13.75% Objective-C 20.38% Swift 63.68% Objective-C++ 1.31% Shell 0.01% HTML 0.04% JavaScript 0.60% CSS 0.10%

render's Introduction

Render Neutrino Swift Platform License

Render

Render is a declarative library for building efficient UIs on iOS inspired by React.

Disclaimer

Render is a pretty monolithic and opinionated library.

I have recently been working on splitting Render into some smaller and more customizable modules:

  • CoreRender More granular APIs for vdom reconciliation and layout, written in ObjC++ (fully Swift-compatible).
  • YAS Stand-alone YAML-based stylesheet engine.

Introduction

  • Declarative: Render uses a declarative API to define UI components. You simply describe the layout for your UI based on a set of inputs and the framework takes care of the rest (diff and reconciliation from virtual view hierarchy to the actual one under the hood).
  • Flexbox layout: Render includes the robust and battle-tested Facebook's Yoga as default layout engine.
  • Fine-grained recycling: Any component such as a text or image can be recycled and reused anywhere in the UI.

From Why React matters:

[The framework] lets us write our UIs as pure function of their states.

Right now we write UIs by poking at them, manually mutating their properties when something changes, adding and removing views, etc. This is fragile and error-prone. [...]

[The framework] lets us describe our entire UI for a given state, and then it does the hard work of figuring out what needs to change. It abstracts all the fragile, error-prone code out away from us.

Installing the framework

If you are using CocoaPods:

Add the following to your Podfile:

pod 'RenderNeutrino'
  • Remember to set use_frameworks! in your Podfile to tell Cocoapods to use Frameworks instead of Static Libraries.

If you are using Carthage:

Add the following line to your Cartfile:

github "alexdrone/Render" "master"    

Manually:

cd {PROJECT_ROOT_DIRECTORY}
curl "https://raw.githubusercontent.com/alexdrone/Render/master/bin/dist.zip" > render_neutrino_dist.zip && unzip render_neutrino_dist.zip

Drag RenderNeutrino.framework in your project and add it as an embedded binary.

Documentation:

Getting started

Components life-cycle

TableViews and CollectionViews (doc in progress)

Layouts

Animations (doc in progress)

Component-based Navigation bar (doc in progress)

Mod: Stylesheet and Hot-Reload (doc in progress)

Mod: Inspector (doc in progress)

Credits:

Layout engine:

In the Stylesheet Mod:

render's People

Contributors

alexdrone avatar byronanderson avatar delebedev avatar esam091 avatar hfossli avatar jconst avatar knpwrs avatar lfarah avatar metabren avatar ooga avatar readmecritic avatar stigi avatar tomaslinhart avatar wanbok avatar zdnk avatar

Watchers

 avatar

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.