假设,你正在开发一款iOS应用。ios
你的iOS应用有不少动画效果,而你(或你的设计师)但愿让那些动画效果的持续时间恰到好处。那华丽的抽屉特效是应该耗时半秒钟,仍是四分之三秒呢?git
一般状况下,开发者会对合适的时间进行猜想,编译他们的应用程序,测试,修改,从新编译,清理,调整,周而复始。鉴于复杂的应用可能须要至关长的时间来进行编译,那些小小的变化就会开始吞噬你的时间,你开始痛恨进度条。程序员
为何要为了如此简单的东西进行从新编译呢?若是负责调整时间的人的角色更多的是设计师,而不是程序员,那会怎样呢?他们应该为了调整动画速度而去研究源代码吗?github
固然了,这里面也有各类快捷方式。好比,你能够将动画速度的变量跟屏幕上的滑块进行关联,让那些测试应用预发布副本的用户能够实时进行调整——不过,你须要手动植入代码,并记得在正式发布前将之移除。这是彻底有效的选择,但它不是很规范,并且你但愿进行实时调整的每一个地方都意味着额外的代码。这种事情能够更简单。app
Facebook认为他们已经作到了。工具
该公司刚刚发布了一个名为“Tweaks”的库,让开发者能够方便地对特定事物进行标记——好比动画效果的时间,或者是按钮的颜色,或者是图片的透明度——并在使用设备实际运行应用时让开发者方便地进行实时调整。这个库把全部这些可调变量打包放到一个小小的隐藏设置页面上,等到正式发布应用时又将之所有清除。post
正如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/