Facebook发布Tweaks:让微调iOS应用变得更简单

假设,你正在开发一款iOS应用。
你的iOS应用有很多动画效果,而你(或你的设计师)希望让那些动画效果的持续时间恰到好处。那华丽的抽屉特效是应该耗时半秒钟,还是四分之三秒呢?
通常情况下,开发者会对合适的时间进行猜测,编译他们的应用程序,测试,修改,重新编译,清理,调整,周而复始。鉴于复杂的应用可能需要相当长的时间来进行编译,那些小小的变化就会开始吞噬你的时间,你开始痛恨进度条。
为什么要为了如此简单的东西进行重新编译呢?如果负责调整时间的人的角色更多的是设计师,而不是程序员,那会怎样呢?他们应该为了调整动画速度而去研究源代码吗?
当然了,这里面也有各种快捷方式。比如,你可以将动画速度的变量跟屏幕上的滑块进行关联,让那些测试应用预发布副本的用户可以实时进行调整——不过,你需要手动植入代码,并记得在正式发布前将之移除。这是完全有效的选择,但它不是很规范,而且你希望进行实时调整的每个地方都意味着额外的代码。这种事情可以更简单。
Facebook认为他们已经做到了。
该公司刚刚发布了一个名为“Tweaks”的库,让开发者可以方便地对特定事物进行标记——比如动画效果的时间,或者是按钮的颜色,或者是图片的透明度——并在使用设备实际运行应用时让开发者方便地进行实时调整。这个库把所有这些可调变量打包放到一个小小的隐藏设置页面上,等到正式发布应用时又将之全部清除。
正如Facebook说的那样:
改进一款应用的最好办法是每天使用它。虽然开发者可以提前把自己的想法构建成原型设计——比如使用Origami工具——但可能仍然需要一些时间来观察它在实际使用中的效果。
偶尔,应用在第一次尝试时即已完美。有时候,想法完全行不通。但更多的,开发者需要对应用进行一些微调。最后一种场景正是Tweaks的用武之地,它让那些细微的调整变得简单:不用更改代码,不用电脑,你就可以尝试不同的选项,并选出效果最好的设置。
当一款应用被编译到调试模式下,摇动手机可以弹出一个页面,让用户可以任意更改开发者开放出来的设置。当应用被编译成正常的“发布”模式(即它已经为在应用商店上架做好准备),Tweak的变量值就会被一个正常的、不可修改的值所替代,并且永久性地把配置页面隐藏起来。这样做你只需要添加非常少的额外代码,也不至于忘了将它们移除。
开发者在其代码中需要做的真正修改在于:他们不需要在源代码中写死变量值,而是将值设定成一个“Tweak”。在代码中,你不需要写成:
CGFloat animationDuration = 0.5
而是使用:
CGFloat animationDuration = FBTweakValue(@”Category”, @”Group”, @”Duration”, 0.5);
那么,这其中意义何在呢?
对开发者来说,这意味着可以使用更少的时间和代码对应用进行微调。而额外的好处是,它能够让那些不喜欢编码的设计师来帮助确定应用最佳设置,不需要他们深入源代码或是纠缠开发团队编译出众多新版本。大家都得到了好处!万岁!
Facebook已经在GitHub发布了Tweaks,开发者可以基于非限制性的BSD开源协议免费使用。(译:王灿均)
http://techcrunch.cn/2014/03/26/facebooks-new-tweaks-library-lets-developers-fine-tune-their-ios-apps-on-the-fly/
Facebook发布Tweaks:让微调iOS应用变得更简单的更多相关文章
- spring 第一篇(1-1):让java开发变得更简单(下)
切面(aspects)应用 DI能够让你的软件组件间保持松耦合,而面向切面编程(AOP)能够让你捕获到在整个应用中可重用的组件功能.在软件系统中,AOP通常被定义为提升关注点分离的一个技术.系统由很多 ...
- [翻译]Kafka Streams简介: 让流处理变得更简单
Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Ka ...
- Kafka Streams简介: 让流处理变得更简单
Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Ka ...
- 深入解析 Kubebuilder:让编写 CRD 变得更简单
作者 | 刘洋(炎寻) 阿里云高级开发工程师 导读:自定义资源 CRD(Custom Resource Definition)可以扩展 Kubernetes API,掌握 CRD 是成为 Kubern ...
- 快开宝PDA开单器出入库扫码:让批发零售变得更简单
快开宝PDA开单器出现前 批发商户是这样开单和管理的 ★员工痛苦:需要记客户.价格.库存等等,应对报错价.错漏单.盘错货等各种状况. ★老板麻烦:每天要守店.对单.核账,经常因错漏单.库存乱.积压货. ...
- 让全链路压测变得更简单!Takin2.0重磅来袭!
自Takin社区版1.0发布两个多月以来,有很多测试同学陆续在各自的工作中运用了起来,其中包括金融.电商.物流.出行服务等行业.这个过程中我们收到了很多同学的反馈建议,同时也了解到很多同学在落地全链路 ...
- spring 第一篇(1-1):让java开发变得更简单(下)转
spring 第一篇(1-1):让java开发变得更简单(下) 这个波主虽然只发了几篇,但是写的很好 上面一篇文章写的很好,其中提及到了Spring的jdbcTemplate,templet方式我之前 ...
- Moq让单元测试变得更简单
[ASP.Net MVC3 ]使用Moq让单元测试变得更简单 前几天调查完了unity.现在给我的任务是让我调查Moq. 以下是自己找了资料,总结并实践的内容.如果有表述和理解错误的地方.恳请指正. ...
- Winform 让跨线程访问变得更简单
Winform 让跨线程访问变得更简单 前言 由于多线程可能导致对控件访问的不一致,导致出现问题.C#中默认是要线程安全的,即在访问控件时需要首先判断是否跨线程,如果是跨线程的直接访问,在运行时会抛出 ...
随机推荐
- android dialog,popupwindow,toast窗口的添加机制
Dialog 窗口添加机制 代码示例 首先举两个例子: 例子1 在Activity中 @OnClick(R.id.but) void onClick() { Log.d("LiaBin&qu ...
- VC调试方法大全
VC调试方法大全 一.调试基础 调试快捷键 F5: 开始调试 Shift+F5: 停止调试 F10: 调试到下一句,这里是单步跟踪 F11: 调试到下一句,跟进函数内部 Shift+F11: ...
- C语言I作业12——学习总结
1.我学到的内容 二.我的收获 作业 链接 第一次作业 https://www.cnblogs.com/liuxiangjiang/p/11579877.html 第二次作业 https://www. ...
- [Python3 练习] 001 温度转换1
题目:温度转换 I (1) 描述 温度的刻画有两个不同体系:摄氏度 (Celsius) 和华氏度 (Fabrenheit) 请编写程序将用户输入的华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度 转换 ...
- Java数据结构之稀疏数组(Sparse Array)
1.需求 编写的五子棋程序中,有存盘退出和续上盘的功能.因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据,为了压缩存储所以采用稀疏数组. 2.基本介绍 当一个数组中大部分元素为0,或者为 ...
- 剑指Offer编程题(Java实现)——替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 解题思路1 在字符串尾部填充任 ...
- ARM汇编3
一. 什么是协处理器? 1.1. SoC内部另一处理核心,协助主CPU实现某些功能,被主CPU调用执行一定任务. 1.2. ARM设计上支持多达16个协处理器,但是一般SoC只实现其中的CP15.(c ...
- win32 socket 编程(三)——TCP/IP
一.TCP/IP解析 TCP/IP协议的核心部分是传输层协议(TCP.UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现.因此用户一般不涉及.编程时,编程界面有两种形式: 1. ...
- VS Code 设置双快捷键(快速移动光标)
平时写代码会经常用到上下左右键,比如打出两个括号 () ,编辑完之后得按到右括号后面 难免有这样的场景需要在编辑代码的时候小范围地移动光标,笔者在别的ide的习惯是通过“alt + jkli”来实现光 ...
- hadoop HA + HBase HA搭建:
hadoop HA搭建参考:https://www.cnblogs.com/NGames/p/11083640.html (本节:用不到YARN 所以可以不用考虑部署YARN部分) Hadoop 使用 ...