美文网首页
设计迭代周期:可视调试控件

设计迭代周期:可视调试控件

作者: 沐风雨木 | 来源:发表于2018-11-01 20:48 被阅读7次

不管你在开发什么应用,快速调整 UI 总是非常痛苦的。如果工程师和设计师坐在一起调,整个处理过程会慢下来。

React Native 有一个 live reload 特性。这个特性使得 JavaScript 代码发生改变之后,界面会立刻自动刷新。这个特性可缩短设计迭代流程。

但如果一个组件在不同状态下表现得不一样时该怎么办?比如,有一个按钮,有默认样式,按下状态时的样式,正在加载时,加载完成时的状态。

为了避免每一次都在 app 中和控件交互,我们做了一个可视的调试控件 Playground

/* from js/setup.js */
class Playground extends React.Component {
  constructor(props) {
    super(props);
    const content = [];
    const define = (name: string, render: Function) => {
      content.push(<Example key={name} render={render} />);
    };

    var AddToScheduleButton = require('./tabs/schedule/AddToScheduleButton');
    AddToScheduleButton.__cards__(define);
    this.state = {content};
  }

  render() {
    return (
      <View style=>
        {this.state.content}
      </View>
    );
  }
}

这个控件简单地创建了一个空的 view,这个 view 可以被真正的控件置换。比如当我们在一个 UI 组件中,把这个和一些定义绑定,以 AddToScheduleButton 为例说明:

/* from js/tabs/schedule/AddToScheduleButton.js */
module.exports.__cards__ = (define) => {
  let f;
  setInterval(() => f && f(), 1000);

  define('Inactive', (state = true, update) =>
    <AddToScheduleButton isAdded={state} onPress={() => update(!state)} />);

  define('Active', (state = false, update) =>
    <AddToScheduleButton isAdded={state} onPress={() => update(!state)} />);

  define('Animated', (state = false, update) => {
    f = () => update(!state);
    return <AddToScheduleButton isAdded={state} />;
  });
};

在 UI 预览工具中我们可以看到:


image

这个例子定义了按钮正常态和按压态。为了预览过渡动画,还定义了在两个状态间循环往复的动画状态。
这让工程师和设计师在一起调整基础组件的视觉风格时变得相当快。
<Playground> 可以在任何 React Native app 中复用,如果你想使用它,只需要在 setup() 函数中加载 <Playground> 即可:

/* from js/setup.js */
render() {
  ...
  return (
    <Provider store={this.state.store}>
      <F8App />
    </Provider>
  );
}

变为:

/* in js/setup.js */
render() {
  ...
  return (
    <Provider store={this.state.store}>
      <Playground />
    </Provider>
  );
}

相关文章

  • 设计迭代周期:可视调试控件

    不管你在开发什么应用,快速调整 UI 总是非常痛苦的。如果工程师和设计师坐在一起调,整个处理过程会慢下来。 Rea...

  • 项目设计与原理分析

    一、CSS模块化设计 1、设计原则 a、可复用、能集成、要完整 b、周期性迭代 2、设计方法 a、先整...

  • 产品经理的业务迭代周期与 4 大能力

    业务迭代周期 做产品就是做 0 到 1,本质上是创新创造的工作。首先明确迭代推进产品的周期(迭代验证闭环周期): ...

  • 模块化与组件化

    css模块化设计 1.设计原则: a 可复用能继承要完整 b 周期性迭代 2.设计方法: a 先整体后部分再颗粒化...

  • 需求管理:需求迭代规划

    版本迭代周期规划 产品完成0-1后需持续迭代管理,产品的迭代周期是根据公司情况、产品情况而定的,可以是每周迭代、双...

  • 【区块链学习】程序员原则

    简单原则:简单设计;只在必要的地方增加复杂性。 透明度规则:设计可视性,使检查和调试更容易。 最小惊喜规则:在界面...

  • Postman请求运行顺序及Workflow

    作为一款接口调试利器, Postman的更新迭代速度很快, 不断加入了很多新的功能.使的api设计,测试,监控, ...

  • 2022-06-04反思5:迭代就是刻意练习,培养专注力,在元时

    迭代就是刻意练习 迭代,意味着一个循环周期的完毕。 快速迭代,多个循环周期。 从这个角度看,一万小时,刻意练习 是...

  • 前端架构认知(转载)

    前言 是架构设计作为软件生命周期的一部分,并不是说开始的时候 设计完成后就会一成不变,软件的生命周期包含了迭代、维...

  • 精益创业要知道的3个方面

    产品开发模式 瀑布式开发模式:需求-设计-实施-验证-维护 问题已知,解决方式已知 敏捷开发模式:短周期迭代交付...

网友评论

      本文标题:设计迭代周期:可视调试控件

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