Tim's blog

Tim's blog

Live in the future and build what seems interesting.

Thoughts | 思考

后乔布斯时代的苹果

2017年6月6日凌晨1点,WWDC 2017(Worldwide Developers Conference 苹果全球开发者大会)又一次的如期来到。当然也是吸引了所有人的眼光,这次的 WWDC 可以说是有“屎”以来内容最多,时间最长的一次。总的来说,软件更新了 “四大OS”,硬件按照惯例升级了配置,加上发布了一个音响。后乔布斯时代的苹果少有的一次给观众带来了如此多的内容,但吐槽声依旧,不是苹果不出色,而是乔布斯时代塑造的“颠覆”形像太过根深蒂固,只要不是“颠覆”就会惹来一片嘲讽。 发布会的内容在这里也就不再多说了,相信大家看的文章也不少。抛开这些,斗胆谈一下我对苹果这次发布会的一些看法。 * 铸造一堵更高的壁垒,完善“苹果圈” 即使年年吐槽没有创新,没有颠覆,但每年的苹果都是不断完善自己的生态。每年看似只打补丁,没有创新的更新,因为苹果的产品向来都是走均衡发展路线,几乎没有明显短板。只要你进入了“苹果圈”,它就可以让你在这个“圈”里得到目前市面上最好的体验,这是什么意思呢?举个例子:
4 min read
Thoughts | 思考

产品经理眼中的共享充电宝,到底怎么样?

突然间,因为聚美优品的陈欧公开申明3亿投资街电,王思聪隔空嘲讽道“共享充电宝能成我吃翔”的情节一下子就让“共享充电宝”成为了新的风口。到底事件会出现什么样的情节,我等吃瓜群众已经拿出板凳等着看戏。本人以产品经理的角度上来做一下共享充电宝的可行性分析?就当锻炼一下自己的产品水平,希望各位大大多给意见。 正文开始 用户在哪里? 高耗电用户,和低耗电用户来分 需求在哪里? 需求:为了解决移动设备电量耗尽而又没有办法 场景在哪里? 高耗电用户,第一印象肯定会有人想充电宝的设计就是为了他们而存在的,因为他们用电多,所以没电的情况肯定比低耗电用户更常见,有了共享充电宝,他们就可以随便的玩手机,不用在怕手机没电了,随用随充多好。其实不一定的,对于这群人来说,他们自己知道自己用电多,平时已经习惯了计算电量,换句话说这群人对于使用量对于电量的影响更为敏感和经验老道,所以随身携带充电宝已经是常态,设备多的或许还会携带多块充电宝进行备用,他们已经习惯了出门就带充电宝的设定。 当然还有另外一种场景会出现,就是高度用户因为某些原因,忘记携带了备用电源而出门,在已经知晓这种情况而出
6 min read
Creative customization
Design | 设计

Creative customization

创意定制 动画可以在很宽的范围内使用,它能够将功能和外观非常和谐的联系起来。 Animation may be used in a wide range of and contexts to unite beauty and function. 图标类型 Icon types 系统图标可以拥有双重功能。 System icons may perform dual functions. 产品表现的应该非常优雅。 Product icons should demonstrate polish. 图标 Icons 系统图标 System icons 一个图标可以具有双重功能。例如,一个菜单图标可以平滑的转换成返回控制,并再次恢复成菜单图标。这个效果既告诉了用户这个按钮的功能同时为交互增加了神奇的元素。 An icon may serve dual
4 min read
Choreography
Design | 设计

Choreography

编排 Choreography 运动的材料通过在过度中利用共享元素的交互来引导用户注意力。 Material in motion guides the user’s focus through interactions by sharing elements across transitions. 创建表面 Surface creation 新表面的创建过程中使用交错的编排效果。 Stagger the choreography of new surfaces being created. 径向反馈 Radial reaction 用户输入和表面反应通过波纹进行连接。 Connect user input to surface reactions with touch ripples. 连续性 Continuity 在变化中通过仔细的选择共享元素的数量和类型来保持清晰的焦点。 Maintain a clear focal
8 min read
Choreography
Design | 设计

Choreography

编排 Choreography 运动的材料通过在过度中利用共享元素的交互来引导用户注意力。 Material in motion guides the user’s focus through interactions by sharing elements across transitions. 创建表面 Surface creation 新表面的创建过程中使用交错的编排效果。 Stagger the choreography of new surfaces being created. 径向反馈 Radial reaction 用户输入和表面反应通过波纹进行连接。 Connect user input to surface reactions with touch ripples. 连续性 Continuity 在变化中通过仔细的选择共享元素的数量和类型来保持清晰的焦点。 Maintain a clear focal
8 min read
Transforming material
Design | 设计

Transforming material

材料变形 材料可以通过将表面分割,组合,改变形状,和改变大小让人们觉得他是活的。 Material can make surfaces feel alive by multiplying and dividing them, and changing their shape and size. 矩形变形 Rectangular transformation 不对称 Asymmetric 对称 Symmetric 波纹转变 Radial transformation 对称 和 圆形 Symmetrical and circular 当材料的形状和大小进行变化时,高度和宽度是沿着运动曲线异步变化的。其附近表面内部或它周围的元素的变形的动画是需要经过 编排。 When material changes shape and size, its width
5 min read
Movement
Design | 设计

Movement

运动 Movement 运动中的材料也会受到类似真实世界中相似的力,比如重力。 Material in motion abides by forces similar to those of the real world, like gravity. 屏幕内运动 On-screen movement 上弧线 Arc upward 下弧线 Arc downward 移入和移出屏幕运动 In-and-out screen movement 独立运动 Independent movement 相对运动 Relative movement 在屏幕边界内运动 Movement within screen bounds 屏幕边界内的元素在两点之间的运动要保持自然的弧度,所有屏幕内的运动要使用 标准曲线运动。 The movement of an
7 min read
Duration & easing
Design | 设计

Duration & easing

运动中的 Material(材料)是响应式和自然的。使用一些缓动曲线和持续时间模式来创造一些顺滑和连贯的运动。 Material in motion is responsive and natural. Use these easing curves and duration patterns to create smooth and consistent motion. 缓速曲线 Easing curves * 标准曲线 * 减速曲线 * 加速曲线 * 急弯曲线 * Standard curve * Deceleration curve * Acceleration curve * Sharp curve 速度 Speed 当元素从起始位置移动到目标位置时的状态,为了不让用户等待过长的时间,运动的速度应该足够快。但同时也要保证速度不能过快而导致用户无法了解你的目的。当用户能频繁看到时,则应该将变化时间变的缩短。 When elements
9 min read
Material motion
Design | 设计

Material motion

Motion(运动)在 Material Design 的世界中是以美丽和流畅的方式来描述空间关系,功能和目的手段。 Motion in the world of material design is used to describe spatial relationships, functionality, and intention with beauty and fluidity. 为什么 motion 很重要? Why does motion matter? Motion 表达了应用的组织方式和它能做什么? Motion shows how an app is organized and what it can do. Motion 作用:
7 min read
Split screen
Design | 设计

Split screen

仅支持 Android 设备。 Android only Split-screen(分屏模式)允许两个活动在屏幕上同时可见。 Split-screen mode allows two activities to be visible on screen at the same time. 用法 Usage 需要用户交互 User interaction required 应用程序不能自行调用 split-screen(分屏模式); 用户必须主动激活。 Apps are not allowed to invoke split-screen mode by themselves; the user must activate it. 启动新活动 Launching new
7 min read
Responsive UI
Design | 设计

Responsive UI

在 Material Design 中响应式布局可以适应任何尺寸的屏幕。这个 UI 指南包括一个灵活的栅格系统,它可以在跨平台的同时让布局保持一致性,breakpoint(断点) 的细节是在与内容如何在不同屏幕尺寸上来回流动,以及一个应用程序如何从小到大的屏幕进行扩展的描述。 Responsive layouts in material design adapt to any possible screen size. This UI guidance includes a flexible grid that ensures consistency across layouts, breakpoint details about how content reflows on different screens, and a description of how an
12 min read
Golang 学习笔记 03 -常量

Golang 学习笔记 03 -常量

常量使用关键字 const 定义,用于存储不会改变的数据。 存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。 常量的定义格式:const identifier [type] = value,例如: const Pi = 3.14159 在 Go 语言中,你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。 * 显式类型定义: const b string = "abc" * 隐式类型定义: const b = "abc" 一个没有指定类型的常量被使用时,会根据其使用环境而推断出它所需要具备的类型。换句话说,未定义类型的常量会在必要时刻根据上下文来获得相关类型。 常量的值必须是能够在编译时就能够确定的;你可以在其赋值表达式中涉及计算过程,但是所有用于计算的值必须在编译期间就能获得。 因为在编译期间自定义函数均属于未知,因此无法用于常量的赋值,但内置函数可以使用,如:len()。 数字型的常量是没有大小和符号的,并且可以使用任何精度而不会导致溢出: const Ln2=
3 min read
Golang 学习笔记 03 -常量

Golang 学习笔记 03 -常量

常量使用关键字 const 定义,用于存储不会改变的数据。 存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。 常量的定义格式:const identifier [type] = value,例如: const Pi = 3.14159 在 Go 语言中,你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。 * 显式类型定义: const b string = "abc" * 隐式类型定义: const b = "abc" 一个没有指定类型的常量被使用时,会根据其使用环境而推断出它所需要具备的类型。换句话说,未定义类型的常量会在必要时刻根据上下文来获得相关类型。 常量的值必须是能够在编译时就能够确定的;你可以在其赋值表达式中涉及计算过程,但是所有用于计算的值必须在编译期间就能获得。 因为在编译期间自定义函数均属于未知,因此无法用于常量的赋值,但内置函数可以使用,如:len()。 数字型的常量是没有大小和符号的,并且可以使用任何精度而不会导致溢出: const Ln2=
3 min read
Golang 学习笔记 02 - 程序的基本结构和要素

Golang 学习笔记 02 - 程序的基本结构和要素

包的概念、导入与可见性 示例 hello world.go package main import "fmt" func main() { fmt.Println("hello, world") } 包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。 如同其它一些编程语言中的类库或命名空间的概念,每个 Go 文件都属于且仅属于一个包。一个包可以由许多以 .go 为扩展名的源文件组成,因此文件名和包名一般来说都是不相同的。 你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。 一个应用程序可以包含不同的包,而且即使你只使用 main 包也不必把所有的代码都写在一个巨大的文件里:你可以用一些较小的文件,并且在每个文件非注释的第一行都使用 package main 来指明这些文件都属于
9 min read
Golang 学习笔记 02 - 程序的基本结构和要素

Golang 学习笔记 02 - 程序的基本结构和要素

包的概念、导入与可见性 示例 hello world.go package main import "fmt" func main() { fmt.Println("hello, world") } 包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。 如同其它一些编程语言中的类库或命名空间的概念,每个 Go 文件都属于且仅属于一个包。一个包可以由许多以 .go 为扩展名的源文件组成,因此文件名和包名一般来说都是不相同的。 你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。 一个应用程序可以包含不同的包,而且即使你只使用 main 包也不必把所有的代码都写在一个巨大的文件里:你可以用一些较小的文件,并且在每个文件非注释的第一行都使用 package main 来指明这些文件都属于
9 min read
Golang 学习笔记 01 -文件名、关键字与标识符

Golang 学习笔记 01 -文件名、关键字与标识符

Go 的源文件以 .go 为后缀名存储在计算机中,这些文件名均由小写字母组成,如 scanner.go。如果文件名由多个部分组成,则使用下划线 _ 对它们进行分隔,如 scanner_test.go 。文件名不包含空格或其他特殊字符。 你会发现在 Go 代码中的几乎所有东西都有一个名称或标识符。另外,Go 语言也是区分大小写的,这与 C 家族中的其它语言相同。有效的标识符必须以字符(可以使用任何 UTF-8 编码的字符或 _)开头,然后紧跟着 0 个或多个字符或 Unicode 数字,如:X56、group1、_x23、i、өԑ12。 以下是无效的标识符: * 1ab(以数字开头) * case(Go 语言的关键字) * a+b(运算符是不允许的)
2 min read
Golang 学习笔记 01 -文件名、关键字与标识符

Golang 学习笔记 01 -文件名、关键字与标识符

Go 的源文件以 .go 为后缀名存储在计算机中,这些文件名均由小写字母组成,如 scanner.go。如果文件名由多个部分组成,则使用下划线 _ 对它们进行分隔,如 scanner_test.go 。文件名不包含空格或其他特殊字符。 你会发现在 Go 代码中的几乎所有东西都有一个名称或标识符。另外,Go 语言也是区分大小写的,这与 C 家族中的其它语言相同。有效的标识符必须以字符(可以使用任何 UTF-8 编码的字符或 _)开头,然后紧跟着 0 个或多个字符或 Unicode 数字,如:X56、group1、_x23、i、өԑ12。 以下是无效的标识符: * 1ab(以数字开头) * case(Go 语言的关键字) * a+b(运算符是不允许的)
2 min read
Units and measurements
Design | 设计

Units and measurements

Some units have different meanings in different contexts. This chapter discusses the usage of device-independent pixels, scaleable pixels, as well as concepts like pixel density. 在不情境下,单位有着不同的含义。这章主要是来讨论独立设备像素,可扩展像素的使用方法以及像素密度的概念 Pixel density The number of pixels that fit into an inch is referred to as “pixel density.” High-density screens have more
4 min read
Design | 设计

Writing

Text should be understandable by anyone, anywhere, regardless of their culture or language. 文案应该可以让人和人都能理解,不论是这人在哪里,具有什么样的文化背景,说什么样的语言。 Clear, accurate, and concise text makes interfaces more usable and builds trust. 清晰,准确,简洁的文案可以让界面更容易与用户建立信任。 In addition to these guidelines, be sure to consult guidelines for specific UI elements, such as Errors, Dialogs,
19 min read
Imagery
Design | 设计

Imagery

Imagery is more than decoration. It’s a powerful tool to help you communicate and differentiate your product. 图像占的比重远超与其他的修饰,它是一个强有力的工具帮助你表达意图和区分你的产品 Bold, graphic, and intentional imagery helps to engage the user. 大胆鲜明并且有趣的图像能够帮助你吸引用户的注意。 Whether the mood is subdued and muted or bright and colorful, the following principles and best practices can help
15 min read