Reapp 混合应用 - 帮助构建不曾有过的强大应用(Reapp Hybrid apps - help you build powerful apps like never before)

Reapp 混合应用 - 帮助构建不曾有过的强大应用

(Reapp Hybrid apps -  help you build powerful apps like never before)

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

Git 托管

reapp

Hybrid apps, fast

React, Webpack, ES6 and our platform help you build powerful apps like never before.

npm install -g reapp

reapp new app

cd app && reapp run

Get StartedGithubTwitter

Kitchen SinkHacker News

Try it live

What is it?



React UI Kit



npm Modules



Webpack Build System



Easy CLI

  Reapp Ionic Touchstone Supersonic
Platform React Angular React Angular
Routing react-router Angular ? Angular
CLI ? ? ? ?
Docs ? ? ? ?
Animations Interactive JS CSS CSS CSS
Build System Webpack Gulp Gulp ?
Hot Reload ? ? ? ?
Themes Customizable JS CSS CSS CSS
Layout Flexbox Block Flexbox Block
Icons SVG Icon Font Icon Font Icon Font
  Views Views Views Views
Interactive ? ? ? ?
Customizable ? ? ? ?

The UI Kit ?

Animations

Dynamic & fully interactive JavaScript-powered animations.

Styles

JavaScript + Flexbox. Composable, dynamic, with a declarative interface.

Themes

Constants, styles and animations. Mix and match them all to make your theme.

Views

Views, ViewLists, even nested ViewLists. Build your own!

Components

Load individually for optimal load & build times.

Mixins

Use all our animation and styling mixins externally.

Example

import React from ‘react‘;
import { DottedViewList, View, List } from ‘reapp-ui/all‘;

export default React.createClass({
  render() {
    return
      <DottedViewList>
        <View title="Hot Articles">
          <List wrap>
            {HotArticles.map(a => a.title)}
          </List>
        </View>

        <View title="Other">
          <p>Second view contents</p>
        </View>
      </DottedViewList>
  }
});

DottedViewLists show Views side-by-side with a dot indicator, just like the Twitter app.

Reapp has NestedViewList and DottedViewList, but you can use the ViewListMixin to make your own.

Lists can automatically wrap an array of items with ListItem components using the wrap property.

Read the docs

What else?

A set of optional packages. Once generated, mix and match them as you like.

reapp-component

A decorator and dependency injector

reapp-pack

Generate & run webpack configs

reapp-platform

Some mixins and helpers for React apps

reapp-reducer

A tiny reducer for use with flux apps

reapp-request

Superagent + bluebird + promises

reapp-routes

DRY route to require w/react-router

reapp-server

Express assets for Reapp-structured apps

reapp-object-assign

A polyfill, for Object.assign

Why?

A new stack, designed for software instead of documents, is needed.

having everybody in need of transportation buy the necessary spareparts to build a car is insane.

React enables incredible boosts of both productivity and performance. It‘s declarative components with lifecycles are the future of making apps.

JavaScript has grown up as well. We have amazing build tools that bring us new features. Webpack and 6to5 give you ES6/7, JSX and more. With react-hot-loader you have insanely fast development.

We want to get you running without locking you into a framework. So we built a simple CLI that bootstraps you in minutes. It even runs your server and builds out of the box.

Enjoy flexibility without needing all the glue. We‘re making hybrid apps, fast.

What is it?

Reapp is everything you need to build amazing hybrid apps with React: a collection of modules that work together, a UI kit, and our CLI that bootstraps your app and has a pre-configured build server.

Help

Examples

We have two example apps you can check the source to:

Installation

Installation is done through npm, though you can pick and choose any pieces you‘d like and roll your own stack. To get the reapp CLI:

npm install -g reapp

Once that‘s done you can generate a new base reapp stack with:

reapp new [name]

Where [name] is the name you‘d like to give your new stack.

CLI

The CLI has two main functions that it helps you with. The first is creating new apps. For now, it simply makes a bare clone of a repo we keep updated with the current best-practice. The goal is eventually to have a variety of baseline repo‘s to choose from.

It also lets you run your app, using reapp-server, a simple express server that works well with the default app structure.

CLI Usage:

Usage: reapp [options] [command]

Commands:

  new [name]  creates a directory with a new reapp-starter scaffold
  run         runs a reapp application with express/webpack-dev-server
  build       builds a reapp application to a bundle in ./build
  debug       use this to for opening issues!
  help [cmd]  display help for [cmd]

Running & Building Reapp

The run command has a few options to help you out. You can do:

  • reapp run -d (debug) to output information on how it‘s running your app
  • reapp run -e production (env=production) to run your app in production mode, which is much faster
  • reapp run -t source-map (tool=source-map) to have full sourcemaps rather than the "eval" style sourcemaps we default to

The build command is used once you‘re ready to deploy your app (to either the web or to cordova). For now, we provide two types of builds:

  • reapp build targets the web for mobile sites.
  • reapp build ios targets cordova ios devices.

You also have the same flags available as the run commands, to adjust tools and envs.

When you run reapp build you‘ll notice a new ./build folder where your assets have been copied to. We‘re working on adding more documentation soon on how to get those assets into a Cordova/Phonegap app.

Structure of your applications

You can see the exact app that‘s generated through the reapp-starter repo. Only the /app/app.jsentrypoint and /assets/layout.html is "necessary". In the future, we could have a config file to make this completely custom. For now, it‘s very simple:

/app
  /components
  /theme
  app.js
  routes.js
/assets
  layout.html
/config (optional)

/app/app.js is your entry point. Everything in the app folder should be pretty self-explanatory. /assets contains static assets, with a layout.html that is used to serve your app within. In general, you should‘t have to touch the layout, even for adding styles.

The /theme folder is reapp-ui specific. You can find docs for it in the repo, but it also should be pretty easy to understand.

If you place a build.webpack.js or run.webpack.js in your /config dir, the reapp CLI will use these configs when you run reapp build or reapp run. To see some example configs, check out the files in the ./config folder of the reapp-pack repo.

Your First App

There are a number of pieces we‘ve included in a reapp. Let‘s explore a few of them in order of when you‘ll encounter them in your codebase. Think of this as a tour of a reapp app, giving an introduction to packages as we encounter them.

You can check out the reapp project on Github for more info.

To start, you‘ll want to open ./package.json. Notice we have the following packages:

You also have an entry point defined as app/app.js. This starts your app. The most important part here is the routing. Lets start there.

reapp-routes (Routes generator)

reapp-routes is a DRY nested route-to-directory mapping system. As long as your routes map to your component file structure, you can save lots of time and enforce consistency in your app, a win-win.

Notice how the import looks for reapp-routes/react-router. The first import in app.js is your router. We love react-router, so we included a reapp-routes generator for that by default, but you could write your own.

You‘ll notice that the pre-defined routes all perfectly map to the structure of ./app/components. To see more about how this works, check out reapp-routes.

This is the reapp-routes syntax. The key to note here is the require that is passed to the routes function at the top level, which is how it dynamically requires your components based on the route tree.

reapp-ui (UI Kit)

The next theme we require is the ./app/theme.js file. reapp-ui has it‘s own documentation, but themes are the core of reapp-ui. They have three things they need: constants, styles, and animations. You can just use the included iOS theme, but we‘ve included the ./app/theme folder as an example of how you can easily customize themes.

Other packages

Why

Reapp wasn‘t built purposefully to be a framework. Instead, it started as a UI kit. From that kit, two apps were built. While this isn‘t a lot, it was enough to see repetition between the two that could be extracted.

From those two apps, over a period of months, we extracted a set of packages, ensuring to keep each of them completely independent. It was an experiment in seeing if a framework was necessary.

What we found was this: if you can subscribe to a certain file structure, you can avoid the framework. With that file structure, we can provide helpers via a CLI. Bootstrap your app in one command and you have a mature build system built in, without having to do anything.

Really, Reapp is simple. You could even just use the UI kit and roll your own app. We just went through that headache, and decided to make it easier to avoid it if you like how we make apps.

Roadmap

Our initial goals are simple: focus on completeness, consistency, and performance. Also, a theme for Android.

Down the road we‘d like to achieve the following:

  • Isomorphic - Render first on server, pass data over to client to continue from there (easily achievable).
  • Responsive - Support for tablet style interfaces and JS-powered responsive styling.
  • Physics - A spring based physics library into the animation library with an easy syntax.
  • Interaction - A simple, declarative interaction library that can be composed well with reapp

Development Environment

Sublime users, some helpful plugins for you to install:

reapp

Hybrid apps, fast

React, Webpack, ES6 and our platform help you build powerful apps like never before.

npm install -g reapp

reapp new app

cd app && reapp run

Get StartedGithubTwitter

Kitchen SinkHacker News

Try it live

What is it?



React UI Kit



npm Modules



Webpack Build System



Easy CLI

  Reapp Ionic Touchstone Supersonic
Platform React Angular React Angular
Routing react-router Angular ? Angular
CLI ? ? ? ?
Docs ? ? ? ?
Animations Interactive JS CSS CSS CSS
Build System Webpack Gulp Gulp ?
Hot Reload ? ? ? ?
Themes Customizable JS CSS CSS CSS
Layout Flexbox Block Flexbox Block
Icons SVG Icon Font Icon Font Icon Font
  Views Views Views Views
Interactive ? ? ? ?
Customizable ? ? ? ?

The UI Kit ?

Animations

Dynamic & fully interactive JavaScript-powered animations.

Styles

JavaScript + Flexbox. Composable, dynamic, with a declarative interface.

Themes

Constants, styles and animations. Mix and match them all to make your theme.

Views

Views, ViewLists, even nested ViewLists. Build your own!

Components

Load individually for optimal load & build times.

Mixins

Use all our animation and styling mixins externally.

Example

import React from ‘react‘;
import { DottedViewList, View, List } from ‘reapp-ui/all‘;

export default React.createClass({
  render() {
    return
      <DottedViewList>
        <View title="Hot Articles">
          <List wrap>
            {HotArticles.map(a => a.title)}
          </List>
        </View>

        <View title="Other">
          <p>Second view contents</p>
        </View>
      </DottedViewList>
  }
});

DottedViewLists show Views side-by-side with a dot indicator, just like the Twitter app.

Reapp has NestedViewList and DottedViewList, but you can use the ViewListMixin to make your own.

Lists can automatically wrap an array of items with ListItem components using the wrap property.

Read the docs

What else?

A set of optional packages. Once generated, mix and match them as you like.

reapp-component

A decorator and dependency injector

reapp-pack

Generate & run webpack configs

reapp-platform

Some mixins and helpers for React apps

reapp-reducer

A tiny reducer for use with flux apps

reapp-request

Superagent + bluebird + promises

reapp-routes

DRY route to require w/react-router

reapp-server

Express assets for Reapp-structured apps

reapp-object-assign

A polyfill, for Object.assign

Why?

A new stack, designed for software instead of documents, is needed.

having everybody in need of transportation buy the necessary spareparts to build a car is insane.

React enables incredible boosts of both productivity and performance. It‘s declarative components with lifecycles are the future of making apps.

JavaScript has grown up as well. We have amazing build tools that bring us new features. Webpack and 6to5 give you ES6/7, JSX and more. With react-hot-loader you have insanely fast development.

We want to get you running without locking you into a framework. So we built a simple CLI that bootstraps you in minutes. It even runs your server and builds out of the box.

Enjoy flexibility without needing all the glue. We‘re making hybrid apps, fast.

时间: 2024-12-11 01:04:53

Reapp 混合应用 - 帮助构建不曾有过的强大应用(Reapp Hybrid apps - help you build powerful apps like never before)的相关文章

Windows Azure HandBook (2) Azure China提供的服务

<Windows Azure Platform 系列文章目录> 对于传统的自建数据中心,从底层的Network,Storage,Servers,Virtualization,中间层的OS,Middleware,Runtime,最上层的Application,Data,都需要企业进行管理.这就好比农村自建房. 对于公有云平台,一般分为三种类型: IaaS, PaaS和SaaS. Microsoft Azure平台属于IaaS和PaaS范畴. 1. IaaS 对于用户来说,底层的Network,

混合开发

1.混合开发概述 Hybrid App主要以JS+Native两者相互调用为主,从开发层面实现"一次开发,多处运行"的机制,成为真正适合跨平台的开发.Hybrid App兼具了Native App良好用户体验的优势,也兼具了Web App使用HTML5跨平台开发低成本的优势. 目前已经有众多Hybrid App开发成功应用,比如美团.爱奇艺.微信等知名移动应用,都是采用Hybrid App开发模式. 2.移动应用开发的三种方式比较 移动应用开发的方式,目前主要有三种: Native A

Hybrid APP混合开发的一些经验和总结

Hybrid APP混合开发的一些经验和总结 写在前面: 由于业务需要,接触到一个Hybrid APP混合开发的项目.当时是第一次接触混合开发,有一些经验和总结,欢迎各位一起交流学习~ 1.混合开发概述 Hybrid App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发.Hybrid App兼具了Native App良好用户体验的优势,也兼具了Web App使用HTML5跨平台开发低成本的优势. 目前已经有众多Hybrid App开

减负!云端编译构建,这样让你的开发省时省力……

传统本地编译构建的问题 ○ 环境搭建耗时费力,且易因环境差异引入问题 研发人员耗费大量精力到环境的搭建配置及调测,不能聚焦业务开发.不仅造成开发人员精力的浪费,也由于时间消耗带来等待成本.同时,很难保证本地构建环境的完全同步,引发问题: ○ 本地硬件配置不高,编译构建速度慢 众所周知,编译构建硬件资源消耗大,但中小型企业和创业者受资金投入限制,硬件配置普遍不高,造成编译构建速度慢,影响开发效率: ○ 突发项目资源消耗大,结束后闲置 企业经常有突发性项目,对编译构建资源的需求突发性增加,让企业陷入

Android Studio的优化/Gradle构建

转自链接http://bbs.itheima.com/thread-204217-1-1.html 使用Android Studio进行开,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下. 开启gradle单独的守护进程 在下面的目录下面创建gradle.properties文件: /home//.gradle/ (Linux) /Users//.gradle/ (Ma

Gradle构建Java Web应用:Servlet依赖与Tomcat插件(转)

Gradle的官方tutorial介绍了构建Java Web应用的基本方法.不过在使用Servlet做上传的时候会碰到问题.这里分享下如何通过Servlet上传文件,以及如何使用Gradle来构建相应的Java Web工程. 参考原文:How to Build Web Scanning Application with Gradle Servlet文件上传 使用Servlet文件上传,可以参考Oracle的官方文档The fileupload Example Application.这里需要注意

加速Android Studio/Gradle构建

已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下. 开启gradle单独的守护进程 在下面的目录下面创建gradle.properties文件: /home/<username>/.gradle/ (Linux) /Users/<username>/.gradle/ (Mac) C:\Users\<

win7 jenkins搭建.Net项目自动构建

前提:操作系统win7, 确保需要的.NET Framework已经安装 1. 安装插件 Jenkins--系统管理局--管理插件--可选插件,搜索MSBuild Plugin并安装:重启tomcat,重新打开Jenkins,查看已安装,如下: 2.MSbuild插件设置 系统管理--系统设置,如下: 3.新建job 4.job设置,并构建. MSBuilder Version 为之前配置的 "Version 4.0" MSBuild Build File 是项目文件或者工程文件的名称

gitlab+jenkins+maven+docker持续集成(三)——自动构建

具体原理图,如下,构建项目配置,这里略过,我们直接配置gitlab的自动构建 通过webhook可以实现自动构建,当然jenkins的强大之处在于插件,我们先安装插件 Jenkins-->插件管理 Gitlab Hook Plugin GitLab Plugin 安装后,就可以开始 了 在项目--配置--构建触发器 选择, Build when a change is pushed to GitLab 这样我们就得到了URL和一串Secret token 然后在gitlab配置webhook ,