美文网首页我爱编程
React-kua:基于Web的跨平台方案

React-kua:基于Web的跨平台方案

作者: 超级大柱子 | 来源:发表于2017-02-01 01:02 被阅读261次

    初衷

    大部分应用的功能只有两个:

    1. 呈现内容给用户
    2. 用户浏览内容过程中输入信息

    如果是这样,程序的性能要求就不是很高.优化过的web,其实可以达到Native的效果.

    我们可以用手机看看React-Motion中的Demo,这是没有针对移动端优化的,我们只看动画性能如何:

    这里我们要规避几个高性能消耗的的地方:

    • 谨慎使用非Transfrom动画,例如模糊,阴影,透明的等等.
    • 长列表中的cell不要过于复杂, 复杂的cell即便是Native中也是需要性能集中优化的地方

    我们还要让Web页面更像App

    • 屏蔽双击放大网页
    • 屏蔽iOS-WebView中的选中Html元素的额外颜色效果
    • 屏幕长按选择非纯文本内容的文字,例如按钮中的文字,在Moblie中是不可以框选的
    • 非ScrollView\ListView\TableView类型的页面,不可随意滚动
    • 屏蔽网页左右滚动
    • 屏蔽MouseMove事件
    • 针对Touch事件,做设计,例如按钮的点击效果
    • 添加一些通用手势,例如长按,拖动元素等

    如果需要在应用市场上架

    • 制作一个没有地址栏, 布满全屏的WebView的iOS和Android应用
    • 启动加载页面改为黑色, 在web中模拟启动加载
    • 未来不同的应用,只要替换不同的url即可
    • 尽量规避iOS内付费的设计

    和传统Phonegap, APICloud之流有什么区别?

    Phonegap和APICloud的目的都是一样的:使用Web嵌入在移动端, 从而缩减开发时间.

    相对于他们,ReactNative远比他们更出色, 更好的性能, 同样的开发成本, ReactNative>APICloud>Phonegap.

    而我的初衷是跨平台,并不是缩减移动端开发时间.目的是一套代码在所有端运行:

    • PC程序
    • MacApp
    • 移动Web(微信)
    • iOSApp
    • AndroidApp

    并且要缩减打包成本.此时使用React是最好的方案, 但是React只是提供一个基础的UI框架, 并没有针对各端做适配, 所以有了: Kua.

    Kua的目的是多端适配,其理念是指定一个通用规范,让设计师在此规范下进行多端设计,并最终使用Kua实现多平台.

    为什么这么关注移动端的Web体验?

    因为在移动端WebAPP的对手是NativeApp, 而PC浏览器中的WebApp的对手是它自己(所以不需要担心)

    选择Web的长期收益

    未来任何一个设备都可以运行浏览器, 而呈现内容的性能随着设备性能的提高逐步不会是问题, 所以Web有可能是UI的最终寄主.

    主角kua

    GitHub:https://github.com/ymzuiku/react-kua

    kua是一个基于react的跨平台集成方案, 思路是让移动端和pc端使用同一套代码, 适配同样的设计.这一切都是基于web.
    因为相信Web是最终跨平台解决方案.

    Kua现在框架和相关开发包都已经配置好了,正在完善里面的UI系统, 当然你也可以直接使用, 作为TypeScript React的Start工具.

    Install

    npm i -g react-kua-cli
    

    Create project

    mkdir projectName & cd projectName
    npm init
    

    Use

    kua web
    

    用到的包

    • 语言使用typescript
    • 打包工具使用webpack
    • 开发服务器使用webpack-dev-server
    • UI框架使用react
    • UI组件使用react-ymui-kit
    • 路由使用react-router
    • 动画使用react-motion

    关于react-ymui-kit(还未完善,填坑中)

    kua提供一套UI组件, 使用此组件达到跨平台的目的
    react-ymui-kit设计理念分为三个层级:

    1. basic, 基础层级

    适配移动端的触碰操作, 设计移动和web通用的基础控件

    2. design, 设计层级

    使用basic控件, 和一套设计语言设计带设计的基础控件.
    design层可以有多个分支,根据不同的项目,业务的需要使用不同风格的控件

    3. fit, 组装层级

    应用层, 应用层会使用design控件, 完成一些最终可以直接使用的复杂控件, 例如导航栏, 时间选择器等等

    扩展性

    • 根据未来不同的平台, 适配更多平台的basic组件
    • 根据basic层, 可以扩展多个design分支
    • 完善更多的fit组件, 并且fit组件输入不同的design分支, 可以得到全新的视觉

    关于tool

    tool是kua提供一系列糖果类小工具

    为什么用TypeScript?

    有了类型检测, 我们能够更加安全,快速的进行JavaScript开发.

    特别是配合VScode, 如图:

    • 如图, 识别Html css


    • react的箭头函数中识别Props


    相关文章

      网友评论

        本文标题:React-kua:基于Web的跨平台方案

        本文链接:https://www.haomeiwen.com/subject/kautittx.html