腾讯高手出品!动效设计基础(一):运动曲线与缓动

Heyu:作为设计师,我们经常接到这样的需求:XX App中的动效好酷啊,我们也做一个吧。这时,一些习惯了把设计输出 = PSD的同学往往无从下手。那什么是动效设计?什么时候需要用什么样的动效?动效越酷炫越好吗?这里,我会用几篇文章分别回答这些问题。首先,我们先了解动效设计中如何用运动曲线表达动效以及缓动设计。为什么要动效?动效是元素的位移、姿态、大小和可见度等随时间的变化

超赞!从七个经典童话中学到的用户体验知识

编者按:生活处处都是用户体验,童话也不例外。我们熟悉的三只小猪、豌豆公主、狼来了和皇帝的新装等等经典童话,都让这篇文章的作者强行科普了一番用户体验的知识,令人吃惊的是完全说得通,而且内容质量不俗。编剧大师罗伯特·麦基曾经这样写道:故事是人类交流的货币。故事是我们对周围世界的感知的方式。我们越是了解周围的环境,我们就越有可能有生存的机会,我们通过讲故事来交换这些赖以生存的知识

如何写好需求分析:需求规格说明书(Volere版)

1.产品的目标1.1 该项目工作的用户问题或背景对引发开发任务的工作和情况的描述。同时也应描述用户希望用将要交付的软件来完成的工作。该节内容为该项目提供了合法的理由,你应该考虑用户的问题是否严重,是否应该解决和为什么应该解决。1.2 产品的目标用一句话或很少的几句话来说明“我们希望该产品做什么?”换言之,即开发该产品的真正原因。项目如果没有一个表述清晰、易于理解的目标,就会

产品小白的成长之路-产品策略规划

【相关推荐】产品小白的成长之路-BRD文档(方法论+案例干货)产品小白的成长之路-版本、功能、优先级(上)产品小白的成长之路-版本、功能、优先级 (下)产品小白的成长之路-竞品分析产品的战略规划就像是智慧和创造力的艺术。乔尔罗斯和迈克尔卡米曾说过:“没有战略规划的组织就像没有舵的船一样会在原地打转,就像流浪汉一样无家可归”。如同世界上重要的事情的发生一样,任何一款伟大的产品

绝对专业!超全面的UI界面字体选取与使用指南

编者按:不论是UI设计师还是网页设计师,每天都在同字体与文本打交道,可是我们真的了解文本/字体 对于界面的意义和功能么?Viljami Salminen 今天就来帮你刨根问底,从根子上开始帮我们普及UI界面中字体与文本的使用之道~早在2004年,我刚刚开始职业生涯的时候,sIFR 还是一个特别火的概念。Shaun Inman 所创造出来的这项技术,通过Flash + JS

超赞!从七个经典童话中学到的用户体验知识

编者按:生活处处都是用户体验,童话也不例外。我们熟悉的三只小猪、豌豆公主、狼来了和皇帝的新装等等经典童话,都让这篇文章的作者强行科普了一番用户体验的知识,令人吃惊的是完全说得通,而且内容质量不俗。编剧大师罗伯特·麦基曾经这样写道:故事是人类交流的货币。故事是我们对周围世界的感知的方式。我们越是了解周围的环境,我们就越有可能有生存的机会,我们通过讲故事来交换这些赖以生存的知识

Objective-C数据类型 - NSObject

Objective-C数据类型 - NSObject对象Objective-C(下称ObjC)语言是一个C语言的面向对象的封装,从英文名字上就能看出端倪,Object即为对象,等同于C++、Java中的类(Class)。对象(object),就是ObjC中编程的核心。所谓对象和类,就是抽象出来的一类事物的总称,例如我们要写一个像微信的应用程序,我就要创建联系人这个对象,联系

Objective-C基本数据类型

Objective-C基本数据类型因为Objective-C(下称ObjC)本质是一个C语言的超集,所以所有C语言支持的基本数据类型,ObjC同样支持,并且ObjC还支持一些其它的常用数据类型。int 与 NSIntegerC语言中的int,在ObjC中同样支持,但不建议你用int,而推荐使用Cocoa框架中的NSInteger,详见NSInteger定义# if __LP

简单设计

作者:袁英杰原文地址:https://codingstyle.cn/topics/185我们一直在谈简单设计,但究竟什么是简单设计?更具体的说,对于同一个问题,设计决策A和B,究竟哪一个更符合简单设计的要求?对于这类问题,如果没有一个明确的标尺,那么"简单设计"就不免会成为一句无法评判的空洞口号,让程序设计者无从判断和遵守。对此,Kent Beck给出了清晰的答案:通过所有

常用js设计模式整理

在做canvas、webGL游戏时,很深切的感觉到,游戏编程玩的都是设计模式。架构没预先设计好,强耦合性代码在后期维护简直灾难。大型单页应用里,复杂度上升到一定程度时,没有适当的设计模式进行降耦,后续的开发也难以下手。而设计模式正是为了降耦而存在。参考《javascript设计模式》——曾探函数节流var throttle = function(fn, interval){

Android 学习系列 - Fragment

Android Fragment关于Fragment代表了 Activity的子模块,因此可以把Fragment理解成Activity片段。Fragment用于自己的生命周期,也可以接受它自己的输入事件。Fragment必须被“嵌入” Activity中使用,因此虽然Fragment也拥有自己的生命周期,但Fragment的生命周期会受它所在的Activity的生命周期的控

Android 学习系列 - Itent

Android Intent关于对比android 和 IOS的很大不同点是, iOS的应用是沙箱,android的应用却可以相互调用。 而Intent主要解决的问题就是解决android 应用组件之间的通讯问题。 Intent也可以理解为对将要执行的操作的抽象描述。构造public Intent(Context packageContext, Class cls)Inte

Android 学习系列 - Java 多线程

Java 多线程Threadsampleclass MyThread extends Thread {private String name;public MyThread(String name) { this.name = name;}@Overridepublic void run() { //.....}}class Main {public stati

Android 学习系列 - 线程模型

线程模型android UI 线程如何使用 child-processANR 错误由于单线程而导致的ANR错误: ANR错误(Application Not Responding),指主UI进程被阻塞超过5秒钟而出现的错误,它会终止程序的正常运行,我们要避免它 ,而产生ANR错误的原因就是:单线程。public class MainActivity extends Acti

对Yii2行为(behavior)的理解 跟继承的区别

行为是一种设计模式,继承是编程语言的特性 继承:感觉更像物种的进化,物种的扩展,生成新的物种,这些新的物种又具有不同的特性。 也就是说,我必须生成新的具有某种特性或者功能的物种去实现我想要的。 行为:想要实现某种功能的时候需要借助别的工具,我想用笔记本电脑画画,那我就买一个触控板,接上就可以。 但是前提是我的笔记本要预留跟触控板链接的接口,behavior就相当于这个预留的

PHP设计模式(八):工厂模式

原文地址:PHP设计模式(八):工厂模式Introduction在PHP设计模式(七):设计模式分类中我们提到过创建设计模式(Creation patterns),创建设计模式专注于设计对象(Object)和实例(Instance)的创建过程。创建设计模式包括下面五种设计模式:抽象工厂设计模式(Abstract Factory)生成器模式(Builder)工厂设计模式(Fa

坑系列 —— 缓存+哈希=高并发?

今天继续坑系列,高可用已经讲过了,当前互联网时代,怎么少的了高并发呢?高并发和高可用一样, 已经变成各个系统的标配了,如果你的系统QPS没有个大几千上万,都不好意思跟人打招呼,虽然可能每天的调用量不超过100。高并发这个词,我个人感觉是从电商领域开始往外流传的,特别是电商领域双11那种藐视全球的流量,再把技术架构出来分享一把,现在搞得全互联网都在说高并发,而且你注意回忆一下

什么是「设计模式」?

很多人应该听说过设计模式(Design pattern),又或多或少的看过或用过设计模式,但是实际用在开发过程中总有点心有余而力不足的感觉。那肯定是对设计模式的理解有少许偏差或者不够深入。先不谈某种具体的模式,先来看看什么是设计模式?从概论结合实际场景分析什么是设计模式?设计模式是一套代码设计「经验的总结」。项目中「合理的」运用设计模式可以「巧妙的解决很多问题」。经验的总结

使用Powershell实现自动登陆域帐号

问题背景因为越来越烦于单位里处理办公事务的电脑开机访问站点时弹出的域帐号登录对话框,于是就寻思着想个办法解决一下。单位为了处理这个问题已经为每人提供了叫USB Key的东西,插入U盘接口后,再访问需要身份认证信息的网站时就可以自动获取这些信息而不用手工输入了。但不幸的是我的这个工具自打发下来后就以没有好用过,幸好还可以像以前一样用域帐号登录,只是每次第一次打开需要身份认证的

改善Java方法链特性:使用this代替void作为方法返回值

方法链(method chaining)是API设计提倡的fluent interface的一种实现,能够提高代码可读性。当一个类拥有很多属性并且允许这些属性拥有缺省值时,构造对象往往会变得很麻烦。要么,会有一个很长的构造方法,你需要记住每个参数的位置,并且在构造时会显式的传入缺省值,比如:public class Person{String name;int age;ch