###(术)IOS应用的产品设计、交互设计理念断想

最近辞职在家,无意之酝酿,多有开发感触,故想做道法术器四文《(道)良性成瘾开发习惯养成策略》《(法)平衡出最优的team生产力组合》《(术)产品、交互设计理念断想》《(器)构建自由通行的IOS开发者地图》,此为其一,术。

个人的专注点在于IOS App开发,还有linux,Gcc等技术思想的摄取。只略有“App设计”癖好,由于大脑未曾接受得系统全面的设计理念集输入,所以本文属个人以往设计参与的回顾总结,还有对应的设计理念抽象断想。个人认为,对于设计的过程,同开发过程一样,其实也可以视它为一个“输入”和“输出”过程,输入是:

  • 1、系统全面的设计理念集;
  • 2、遍历整个设计历史演变;
  • 3、最大限度体会感悟当前的设计风格;

1

目前我的设计理念框架的还处在毛坯阶段。前两种输入还没有接触到,因为做了不少第三点输入,所以有点门外汉憋着想指点的感觉。接触IOS后,在持续时间里,我每天都在上瘾式地把玩着App Store的App,越积越大了一个“UI风格碎片集”。这也是我写此篇博客的将其进行总结一个原因。 在这里的”设计“包含了题目所提到两种类型,产品设计,交互设计。

  • ==>产品设计,指的是App功能定位,市场定位。
  • ==>交互设计,包括了界面逻辑设计,UI设计,操作体验设计。

对于交互设计中的界面逻辑设计,自从个人从UML图切换到思维导图时候,现在强烈推荐用思维导图。就如下图一目了然,是uml所达不到的

2

下面将介绍,个人对于“产品设计”理念,“交互设计”理念的断想。当然作为一只IOS程序猿,术业专攻不同,自然无法做到用精妙传神的语言将一种理念、风格传达的淋漓尽致。故将以另一种曲径传达的方式来表现个人的看法和思考,从而以”真实情景==>解决思路==>理念抽象==>加以印证”的流程方式来表现。

####====产品设计情景再现====

一、真实情景:某城市A川菜馆和B川菜馆一直是主要竞争者关系。A川菜馆率先引入了新颖的ipad电子菜谱营销方案,其新颖的点菜风格、快速的点菜流程迅速捕获了川菜爱好者的眼球。这一招,使得B川菜馆的一部分老顾客很明显地被A川菜馆吸引过去了。最后B川菜馆老板很受伤,他找到我们让我们帮他找个应付方案。并且他不想效仿跟风也实现ipad电子菜谱方案,而想用iphone来应付,外包我们开发个软件,这可把我们难住了。这可不只是外包的活了,重要是还得帮他设计产品解决方案。

二、解决思路:B川菜馆的目标就是为了抢回本城市的川菜爱好者。之前A川菜馆以新鲜的ipad菜谱,抢去了一部分顾客。而现在如何能够做到抢回来呢?试验预想了几种方案之后,感觉都不是很有冲破力。思索良久,后面平行类比出了一种思维,能否像QQ套住用户那样我们设计的app也能够套住顾客。如果做到,那么抢回顾客那是毫无疑问的了。问题是QQ靠“熟人联系纽带链条”来套住用户,我们靠什么?qq的“熟人联系纽带链条”对用户有一种意义式的依赖,我们的app也必须创造出这么一种依赖。这依赖可以是?本城市B川菜馆爱好者沟通平台?⋯⋯等等。后面我看中的依赖点是:顾客就餐历史互动曲线。如何实现?比方每次就餐都拍一张图片贴在自己的就餐历史曲线节点里面,而这条可视化的线既可以作为顾客的回忆碎片加以赋予个人意义,同时还可以作为新型的积分奖励模式。

三、理念抽象:经过这个真实的场景思考,我后面理清了一条原则。俺暂且命名为“Engels_APP吸引力三原则”。

“功能式吸引”

  • ==》如天气预报app,功能式必须依赖。
  • ==》如google map app获取公交路线,功能式必须吸引。
  • ==》如我查查app,为明了物价,功能式必须吸引。

“设计式吸引”

  • ==》如path 2 独特交互和设计,设计好感式吸引。
  • ==》如mindnode富有柔韧性,设计好感式吸引。

“意义式吸引”

  • ==》如qq长期积累出的“熟人联系纽带链条”,虽厌恶腾讯的无耻,但不可挡其具有意义式吸引。
  • ==》如Gmail长期的沟通工具,就像了电话号码, 具有意义式吸引。
  • ==》如evernote长期笔记的积累,越用越被套住,具有意义式吸引。 (上面的情景就是用到了第三条原则)

四、加以印证:下面就从我的“UI风格碎片集”抽出几张第二条原则吸引的UI碎片,加以印证。

3

简述==》美感:古朴、质感、大方

4

简述==》美感:简洁、灵动、现代式

5
简述 ==》美感:简洁意义、突出重点。一天一张照片的意义式吸引。

6
简述==》美感:层次感清晰、舒服逻辑感受

####====交互设计情景再现====

一、真实情景:XX房开商出品了一个新楼盘。让我们做一个ipad端app来作为展示和销售工具。房开商要求的功能界面非常多。估计他恨不得把整个楼盘的每一间房间都塞到这个app里面,好让所有潜在购房者能看够看完他的心血大作。这大而全的要求本身就违背了设计理念的初衷。主要问题是这么多界面有效组织起来本身就是一个大难题。谁叫我们IT民工和他的建筑民工一样是抓住房开商裤脚求口饭吃的料呢。咬咬牙给他解决。

二、解决思路:针对主要问题“大量界面交互层次,易造成逻辑混乱,使得功能方向感迷失”。这也是一般web1.0“内容为王”时代,多数网站容易出现的毛病。实际情况如下图。

7

解决思路中,层次原则“自顶向下,金字塔发散”。上图也已经涵盖。关键是当界面层次的深度,和界面层次的广度都到了不可控制的程度,那么就会冒出新问题,“大量界面交互层次,易造成逻辑混乱,使得功能方向感迷失”。如何解决?用传统方式的直接标志“目前所处位置导航”吗?如下图:

8

显然这虽是能够解决的方法,但是损失了设计风格。明显地违背了设计的美感原则,是不良解决思路。 传统的直接标注当前位置思路,其实质目的是为了“提醒用户当前所处位置”。那么同样可以达到这个目的,并且符合设计审美观的思路有哪些呢。⋯⋯(移开视线钱的屏幕,就会发现有很多种方式的)。 下面是我的思路,“动作形式的切换出子界面,并且不覆盖原来的父界面”。以“可视化层次结构”方式指明当前所处位置。如下示意图。

9

三、理念抽象:我所看到的设计风格原则有几条,上面的场景,我用到第三条来进行解决。

  • ==>风格匹配设计原则。
  • ==>高清细腻、拟物感设计原则。
  • ==>界面层次符合自然逻辑原则。 第三条原则的保证,避免了功能结构混乱,保证不会设计出给大脑造成逻辑障碍的app。

四、加以印证:下面列图印证了第二条原则“高清细腻、拟物感设计”。

10

简评==>高清细腻、拟物感,不言自明

11

简评==>高清细腻、拟物感,不言自明

12

简评==>高清细腻、拟物感,不言自明

简评==>高清细腻、拟物感,不言自明

简评==>时间轴拟成实物,时间轴形式表现微博

到此,算是完成了上一个阶段的设计理念的周期总结。个人预想未来设计师的产品主导将会得到明显加强,因为苹果指引了一条方向,所以进行着异常激烈的app大战,在技术基础,市场门槛都差距不大的情况下,能够异军突起的恐怕得靠一些天才的设计师了,其中path 2,clear,paper就是明证。

###(法)平衡出最优的team生产力组合 IT项目品质系统控制技巧


以此文分享于曾经被不良项目管理风格扎针难耐,苦逼得“曾经拥有健康”程序猿兄弟们。 最近辞职在家,无意之酝酿,多有开发感触,故想做道法术器四文《(道)良性成瘾开发习惯养成策略》《(法)平衡出最优的team生产力组合》《(术)产品、交互设计理念断想》《(器)构建自由通行的IOS开发者地图》,此为其一,法。 这篇文章的题目“平衡出最优的team生产力组合”,说白了其实就是“项目管理”。如果要掌握一门“软性能力”的技能,像“项目管理”。由于其不具有良好的实践机会去操作then反馈学习。 所以我建议的策略是战隼warfalcon的原话:“学习或研究一门新的知识时,最好的办法就是去学习这一领域名家的方法或系统,然后根据自己的情况进行调整,形成自己的系统,再不断实践并改进。” 这句话涵盖了几个点,根据我的领会方式,我把它分成:

  1. step1==>主题阅读,针对项目管理类书籍;
  2. step2==>系统思考,概括项目管理名家的一些思想;
  3. step3==>粗略构建自己的系统:书籍抽要+实践领会;
  4. step4==>试验性&碰撞出自己风格的系统;

首先,针对step1。“主题阅读”是个精辟的词汇,它明确了几点,@阅读种类、@阅读目标、@时间控制。那就让我们在一段时间内GTD掉step1吧。下图是我个人进行的主题阅读方式,其中的阅读循环中我比较推崇有两个关键点,@带着疑问去索引到目标页数,@理解不清的东西别舍不得放弃。

1

然后针对step2。“系统思考”同样也是个精辟的词汇,它也明确了几点,@思考的逻辑是一体的,@发掘出内在逻辑的联系和关系。惭愧,个人的积累程度还达不到系统思考地输出。下图是只是我的第一印象思考,也可抛砖引玉一起思考。

2

继而针对step3。“粗略构建自己的系统”,简单的就是,粗略系统=书籍抽要+实践领会;经历前两个step,还有加上你的一些经验,你大致印象认为项目管理需要那几个要素。

3

最后针对step4。“碰撞出自己的雏形系统”。而这套风格系统的目标就是本篇的题目—>“平衡出最优的team生产力组合”。实质上,项目管理这门科目建立的目标也是为了,平衡出最优的team生产力组合。 而下面就是我个人马虎经历了以上几个step加上得到恩师simon和战隼文章多次启发后,弯弯曲曲碰撞出来的我的雏形项目管理风格框架。

4

下面,我就简要点破每一项中个人颇有领悟之处: ####1、leader对架构设计思想深刻把握;

  • ==>首重MVC模式;
  • ==>了然“OOP的6个设计原则,23个经典设计模式”;

“跟对人,做对事”,这点是我一直以来很坚守的一个原则。对于项目中也同样是,如果项目leader很糟糕,而且你也尽力在你能够影响的范围内积极做出建议了,但是leader依然很糟糕。那么个人建议不管薪酬有多高,你的发展瓶颈是相当明显而且很难去突破的。那么再去找可以跟随的人吧。同时你也可以注重一下这方面的提升,他日也让人家来跟你又何乐不为。 “MVC”是一个被说烂了N回的词。而或许留意其意义并且加以实践到项目中的人就不多。就像多数IOS开发者都有看过斯坦福IOS课程2011版,其中有一张介绍MVC的PPT,里面有一张“MVC示意图”,而留意到这张示意图并且弄清楚这张示意图表明内容的人或许不多。

5

解析上面MVC这张图,可以抓住一个思路“两个圆圈的相互联系的管道(pipe)各是什么?各表示什么?”

  • 抓住C<–>V之间的pipe:V指向C有三条黄线,分别是action,delegate,datasource,可以理解为从“视图层V”输入一些事件,需要在“控制器C”进行响应;而C指向V有一条绿线outlet,可以理解为“控制器C”响应后通过outlet变量输出处理结果到“视图层V”上;
  • 抓住C<–>M之间的pipe:C到M有一条绿线,在这里绿线表示objc-c里面的[消息 传递],可能是方法调用,或者属性调用;而M没有直接到C的pipe,这是为什么呢?再仔细观察原来M有一根天线,备注文字是“Notifacation&KVO”,只是说明M中的数据变动通过通知的机制以KVO(基于键值的观察者模式)来进行捕获。

对于“OOP的6个设计原则,23个经典设计模式”,下面列图出来。至于吃透它的方法,大家估计各有千秋,理解记忆的几个核心个人认为还是几个关键词句,“艾宾浩斯记忆曲线”、“勤于基础动作练习”、“善于利用效率工具”(善假于物也);

6

7

####2、teamer对项目代码框架、设计模式了然把握:

  • ==>对每个模块,需声明用到的设计模式或构建思路;
  • ==>对每一模块,需同时生成有UML图; 在良好leader的前提下,组员会得到明确清晰地任务分派,以及建议或者讨论后的模块设计方法。那么对于个体组员来而言他需要做三个步骤工作: 草稿出模块的UML且声明构建思路==>编码操作出模块==>循环滚轮直到测试出稳定可用;

8

####3、规则先行,约定大于技术:

  • ==>项目进度表、进度日志;
  • ==>界面规则风格明确文档;
  • ==>代码风格文档;
  • ==>代码编写结构会议;

在项目管理里面,讲究的是team生产力,而不是个人英雄式生产力,所以有一等式:“约定规范”]] > “技术操作”。那我们就认可了“team规则”的重要性,那么团队的leader就必须生成制定出这相关的规范。 这些文档估计每家公司都会有的,只不过需要反思是否具有易用性和高效性。这里着重“代码编写结构会议”,因为这个必须有。这个会议的过程“可以抹清很多噪音和雾气”。我所比喻的噪音和雾气其实是,team成员经常会有的一种迷糊感,他不明白为什么这么做,从而他有很多意见或建议。而这些噪音和雾气如果太重就很不利于项目的健康推进了。

####4、项目开发日志:

  • ==>事务、时间日志线(可用于为“IT工作2.0”建立保障机制);

个人反思了N回。才发掘出这个开发日志方式,这也是我的项目管理认识里面最核心的一种思想和工具。这个“事务、时间日志线”,良好操作的前提必须是team成员都有已经良好时间管理意识。然后每天以下面的日志线风格进行事务管理、时间管理。

9

这个若是能够融入团队的文化基因。那么就太强大了,因为日志线追踪着项目中每一个微型的任务事务,同时确立了一条推进项目的高效轨道。我未来的假想是,若我成立一家公司,我将用这一机制来进行试验“IT工作2.0”是否可行。

####5、短时长、高频率“微会议”;

  • ==>严谨15min时间控制,善控制“讨论主题”、“讨论时间”、“讨论记录”;
  • ==>leader需“善于击破”木桶长板组员的随意,也需“善于引导”木桶短板组员实现自我的突破;

这也是一种高效率的机制建立。leader需要控制好节奏,目标是: 1、把脉各处工作推进情况; 2、同时疏通耦合环节; 这样,确保独立模块能够按进度稳妥推进,也确保多模块耦合环节不新冒出问题,对未来造成不可控制影响。

####6、MBA式对待team中“人”的问题;

  • ==>对事可“有则升堂,无则退朝”,对人需“有事没事还得和他有事”;
  • ==>沟通技巧和话术的方式;

人性化,氛围宽松,几乎是每一家公司都挂在嘴边的。但并不是每家都理解到、做到。总结出这个点,其实也是得到前公司恩师simon的多次启示下,在此甚感谢simon。项目团队,虽然是四面八方凑在一块一起合伙挣口饭吃。不过大家都是人,与人做事就得把握个良好的交流印象,这就是对人需“有事没事还得和他有事”; 而沟通技巧,下面我举几个例子,大伙可以举一反三: “我们一起考虑如何解决这个问题,明早上花五分钟交流一下,你看行吗?”; “你做的XX怎么样了?有什么地方需要我帮忙吗?⋯⋯如果一切顺利可以在后天早上完成交给我吧。”; 就是这种形式的沟通方式。如果需要更深层的把握估计就是MBA们该干的了。在此我也想到了一本书,也是在战隼warflcon那里发掘到的,叫《说话就是生产力》。这本书相当棒,我晚上发现的,第二天早上立马买了回来 。

####7、项目高效展开的几个保证;

  • ==>资料获取,公司书籍库(纸质or电子版);
  • ==>资料获取,公司模块库(封装好的.a文件);
  • ==>资料获取,公司通畅网络;
  • ==>leader效率工具,项目协作平台的使用;
  • ==>teamer效率工具,evernote做“事务时间日志”, mindnode做“逻辑分析辅助”, “UML tool”做uml图;

这点很关键。也是必须要基本保证的东西。说白了程序员也是个输入输出工具,你得给他输入资料他才能够输出代码解决方案。我最近就直接拒绝了一家给了我高薪诱惑,但是这点却没有保证好的公司,他们那里的程序员得到的“输入”相当有限,以致输出了一些让人匪夷所思的代码解决方案。以至于我极度怀疑这公司的实力,担心会不会月底拖欠我工资。

以上七点就是我为了达到“平衡出最优的team生产力组合”,所进行思考出的“engels项目管理风格系统雏形”。在“大家”前就献丑了,只求分享此文于曾经被不良项目管理风格扎针难耐,苦逼得“曾经拥有健康”程序猿兄弟们。

##构建自由通行的IOS开发者地图 IOS开发人员知识技能归档固化管理

最近辞职在家,无意之酝酿,多有开发感触,故想做道法术器四文《(道)良性成瘾开发习惯养成策略》《(法)平衡出最优的team生产力组合》《(术)产品、交互设计理念断想》《(器)构建自由通行的IOS开发者地图》,此为其一,器。

作为一只刚出道的程序猿,我常常受阻在新项目启动开发的初期。主要原因在于,不了解需要用到哪种技术解决,如何用其解决。问题的实质原因在于自己对“整体的技术脉络图”认识不清晰、不全面。

如果幸运,是在一个有好心大牛的团队里面,或许这个大牛就会用他大脑中长期潜移默化生成地“开发者技术地图”来点拨你,并且恰到好处的指点对位,这样就给程序猿有胜读十年书的一翻超然感受。

但是多数时候我们并不容易遇到这么好的引路人。既然如此,换一种思路。究其实质,我们既然可以抓住 “开发者地图”这个关键字, 为何不运用程序猿相对强大的自主意识去驱动这张“地图”快速有效地建立起来呢。

一般情况下,进行开发工作个三年五载的这张“地图”是会意想不到地在大脑中扎根存在的,也就是现在企业很看中的硬性技能经验的一种表现。而现在我讨论的就不是一般情况下缓慢的经验积累方式,我讨论的是运用高效学习探索思维,把“传统非量化的经验”转化为“开发者地图”这一实体,然后再拓展巩固这张可以被量化的“开发者地图”。我暂且称这一转化为“隐形经验转化为显性知识组织形式”。

如果有人疑惑,我为何要做这一番功夫。那么估计你还没有下意识到这是一种很高明的提升能力,提升经验的手段,可以告诉你的就是,在实践中可以有意识地通过建立、拓展、巩固、回温地方式运用这张“开发者地图”,它可以非常有效地提升你在同样时间量的经验积累程度。简单比喻,就是可以让你一年的经验值比得过人家三年的经验值。这是很可怕的比喻,但这是毫不夸张的说法。

针对不同的技术方向,“开发者地图”也分种类分层次,但是其“根地图”都必须是一样的,都基于“自然科学,工科科学的根地图”。所以“开发者地图”也可以做一个层次包含关系,由于我在此介绍“IOS开发者地图”,所以我下面绘制出“IOS开发者地图”如何从“根地图”派生出来。 “自然科学,工科科学根地图”==>“软件工程系统地图”==>“IOS开发者地图”

rootMap

下面,进入关键的操作流程,如何进行使用这张“IOS开发者地图”才能够让自己受用。

一言以蔽之,在实践中有规划地以建立、拓展、巩固、回温地方式运用这张“IOS开发者地图”。

首先,针对“建立”。如果现在让你在25分钟内快速建立一张“IOS开发者地图”,你将会采取哪种途径和方法来进行收集、整理、组织、建立?这点你可稍后去进行一个主题思考。在这里我告诉你我的方法:

  1. 10分钟,收集材料==> 最佳途径是询问IOS前辈,考虑出具有高价值含量的提问,如“XX前辈,能不能抽5分钟给我介绍一下IOS开发所需要的一些基础东西?和相关开发资源获取的方法?比如开发环境,开发语言,基础开发书籍,还有有哪些较好的论坛资源等等这些”。如果身边没有这种前辈,那么只有在搜索引擎中发掘出回答你上一个问题所需要的答案。

  2. 10分钟,整理、组织材料==>整理组织材料其实也是一门学问,所以大学才有了图书馆管理员的专业。有兴趣可以去看看最专业的材料整理思路应该是怎么样的。在这里我就用普通的整理方式做为例举,首先将一堆材料进行分类,同时保证每一类中的都有优质材料,否则迅速返回再收集环节。材料种类可分为:

  • 介绍开发工具Xcode的;
  • 介绍Obj-C语言的;
  • 介绍SDK(cocoa)的;
  • 介绍开发常用技巧的;
  • 介绍高级编程开发的(数据库编程,网络编程,多媒体编程);
  1. 5分钟,建立Developer Map==>既然我们称之为“IOS开发者地图”,那么自然这张地图必须是可视的。而采用哪种数据信息可视形式呢?采用哪种可视形式我们必须要考虑到,须方便结构调整,须方便增删。手绘方式不便频繁更新,排除。viso 或者 omnigraffle的结构图形排列方式太过费时,排除。我要推荐的就是”思维导图MindeNode“,最轻松做到”方便结构调整,方便增删节点“。 下图就是粗糙建立好的”IOS开发者地图“;

rawMap

然后,针对”拓展“。拓展应该在什么时候进行的呢。一般情况下,是用你的闲余时间来为你的这张”IOS开发者地图“进行添枝加叶。也有可能是在项目紧张进行过程中迅速的进行更新。为map添枝加叶,具体思路如何因人而异。我比较推荐的做法是,每天抽15分钟时间抓取博客园、CSDN或者cocoachina上关于IOS的技术文章,或者专门抓取某位IOS开发牛人的博客。相信我你只需要坚持十来次,那么你的”IOS开发者地图“肯定达到中等茂盛树的水平。到了这个程度,或许你已经有较强的自我感觉良好了。到了这个时候,你得有个意识你得回头再深究一下,每一个第二层节点结构位置是否得当(根节点”IOS开发者地图“为第一层节点),因为只有充分理清这些开发知识的相互关系和内在联系才能够做到”了然“。 下图是经过我优化结构后的”IOS开发者地图“;

optionMap

再然后,针对”巩固“。巩固应该在什么时候进行呢。通常情况下,你在项目中需要用到什么技术可以到这张”IOS开发者地图“去查询。不过既然我们的目标是要将这张map融入我们的大脑经验细胞中去,以达到经验积累速度优于他人的速度。那么我们就必须进行巩固。至于何时进行巩固,就看个人习惯了。当然我所推崇的方式就需要满足一些客观规律,比如”艾宾浩斯记忆曲线“,”碎片化的记忆纸片“等等。辅助的工具可以用移动app,mindnode或者thinkspace,或者截成图片后存于evernote。 下图是我正在使用的一种良性巩固流程循环,或许大家可以借鉴;

refrenceMap

最后,针对“回温”。其实这个回温也可以称之为进行多次“巩固”达到的状态。但是关键在这里“回温”必须要有一个要素“升华”,巩固的目标是识记,回温的目标是升华理解。对于每一次的回温,应该是在一种哲学自然式思维状态下面。实际的表现做法可以这么做,对于“回温”的每一个技术机制,都能够用抽象的语言来概括出其实质思想。 下图举例出我如何来以抽象的思考来升华对某一技术机制;

demoMap

写到这里,估计不少朋友都有所领会这”IOS开发者地图“的妙处了。这实质是将”隐性的经验知识“转化为”显性的结构知识树“,然后主动地去操作这张结构树,在边把这张developer map变得茂盛的同时,不断地进行反馈到大脑的经验细胞,从而以更强有力的途径提升了存在大脑中不好量化的经验积累。

###相关下载

原版思维导图 http://www.dwz.cn/filemindnode 导出的PDF http://www.dwz.cn/filepdf