菜鸟成长日记之新手备忘录-IOS开发第一个项目总结
2013年5月3号,开始找IOS开发工作(自学了大半年,做了一个功能不全的Demo,该出去见见世面了!),5月4号面试了第一家公司(是家刚成立一段时间的外包公司),5月5号第一家公司已二轮电话面试,5月7号接到offer,通知5月9号上班!5月8号从学校搬出来了!6月1号,老总发了第一笔工资,直接是正式员工的待遇(惊呼我没有试用期,直接是正式了)!后来的6月份,学校毕业设计,答辩,拍毕业照,吃散伙饭,请假了不少天!6月23我毕业了!开始了第一个项目!一开始一个人做,后来公司外聘(周末来上班,平时提供无偿咨询!哈哈!外聘的真的很牛)了位高级开发,开发了很长一段时间!7月9号因为开发出来的APP界面效果不是客户想要的,客户决定重新设计一套界面!7月10号,为了沟通方便外派客户公司上班!一个人全职开发了一段时间!客户公司为了加快上线,又聘了两位有一年开发工作经验的人来一起开发!现在是3个全职,一个半外聘高级开发!2013年8月15号项目提交审核!8月22号项目交接完,23,24,25,26!公司放我4天假(噢耶)!中间有加班到22点,有周末不放假的!过来了就不说了!那是财富!(嘚瑟一下)!说明一下:做的很一般,有服务器接口,有拍照,图片上传剪裁,社交平台登录,分享.....本地数据缓存,SQLite数据库存取...各种第三方库...不列了!大家就随便看看吧!就当新手备忘录!要是以下总结有不对的观点,大家可以吐槽!客户的项目我这就不帮忙推广了!直接用XXX代替项目名称吧!(XXX很牛的哦!)
对XXX这个项目的开发经历,总结了一些自己的想法:
1.APP的界面;
我觉得这次项目最大问题在:界面。首先界面这次第一版设计,我感觉不是很好,为什么我这么觉得:
第一APP界面要精致 精美 颜色要吸引用户,交互需要流畅。第一版我觉得界面不是很精致,不是很吸引用户!
第二,建议交互以后原有的界面素材上做编辑!第一版XXX中,很多控件动态显示!但是动态显示很难把持效果!因为我的经验不足,所以整个功能实现起来很不流畅!
第三,APP用户交互尽量减少用户自定义成分。首先我觉得:我们设计一款app,我们要用户有些什么选择,我们必须要考虑清楚!因为这是直接关系到我们设计这个app用途,用户可以做些什么!怎么使用!自定义标签这个功能!我觉得很不好!
第四.界面交互,以几个tabbar组织界面实现用户功能切换,这种方式很精典!但是现在的用户可能需要新颖的界面交互方式,比如:添加手势,实现侧边栏。
第五.关于界面风格:有一个问题我一直很好奇!中国人自己设计的软件我一样就能看出来这是中国人设计的!界面太复杂,操作点太紧凑了!这个可能与中国人的文化/认知有关系!我觉得APP界面以后可以简洁一些,明朗一些,界面风格清新!不过有可能会“水土不服”的风险!
第六,界面重新设计,太坑人了!架构变了,设计思路变了,相当与开发了两个App!不过这和客户对移动app的理解认识有关系!这个看客户!
第七,切图很重要!美工所提供的图,假如没有和开发沟通好的话!简直是场灾难!所以要是出现会根据用户操作做出变化的素材!要沟通好了!比如:搜索栏,很典型的用户操作界面会变化!不过这主要起决开发的经验,和美工对开发的理解!
2.关于功能实现:
第一,在界面布局;object-c在程序开发中因为xcode这个开发工具的关系,我觉还是比较易于开发的!在界面布局,这一块,在美工提供好素材之后,尽量注意素材的摆放位置,字体的颜色,加不加粗,字号是多少!这直接关系到界面的最后效果!另外尽量保持同一属性的控件对齐!
第二,第三方库的使用;第三方库我觉要是有第三方库能实现我需要的功能时候,我一定会使用第三方库的!这样太方便了!但是也要主要选择!太过复杂的还是要裁剪一下!不过功能实现优先!这个待平衡!
第三,加注释,方法模块化,这个待提高吧!这和开发者的经验有关系!不过我还是觉得不要在多个.h .m里引用来,引用去!太复杂了!可读性会很差!除非这个模块是多个界面都有可能调用!
第四,交互文档太重要了!客户随时都有可能会有需求!要是没有交互文档!首先我们实现起来会效率比较低!因为我们根本不知道客户要的是什么效果!客户有可能会随时变更需求!同时也反映出:客户他们自己对他们想要的最终产品,没有考虑清楚!app开发中细节才是决定最终产品!细节思考不到位!灾难!
第五,关于功能实现方式,建议在APP设计中引入.html,在比较简单的界面,建议直接用WebView加载.html!假如多个平台同时开发!像关于我们这种界面!可以使用一个“响应式网页”就可以实现!android也可以使用!这个我还在考虑,多种界面实现方式是否可行!
3。项目管理。
第一,被外派到客户公司上班!这个我觉得对项目管理来说很不好啊!除非客户那边有项目管理!要不随时都有可能会因为客户的一个新需求 或者新的想法!直接打乱原来的项目计划!
第二,关于项目进度报告!项目前期,要分功能模块/界面模块划分!这样比较容易规划产品开发周期!但是,这样的估计!我觉得在整个规划完成后!可能只会完成项目的40~60%,因为很多细节!不去测试,不去使用,开发是不会考虑到的!不过这和开发者的经验有关系!
第三,关于项目后期!后期,界面框架是固定的!测试应该开始工作了!这一时期!多半是功能实现不完美,也可能是新的需求添加,功能bug问题,UI布局等问题!还是有一份邮件,列出每天的bug!然后逐条修改!这样做多次迭代!修改!
4.关于多平台开发!
建议下次在APP中假如“响应式网页”这种.html文件!实现界面!这是趋势,也是加快开发,增加多中分辨率适配的好办法!这是建议,我再学习一下!
5.关于iPhone软件设计的思考
项目提交审核了,今天客户拿来一部iphone5说看看一个软件!发现有一款今年1月份上线的产品,到目前为止已经升级了5次了!他们使用传统的tabbar来组织视图,功能和我们开发的类似!这个市场上有同类产品,我们在做也是可以的!但是等我们都做出来了才发现,我觉得对所开发的APP所处市场就有点缺考察了!要是在产品规划的时候,我们就发现这款运用的话,我们可以参考,借鉴。开发出更好的产品!市场是需要竞争的,一个大的需求市场,可以有一两款产品相互竞争!
6.关于产品交互和开发
在开发不断完善产品的时候,同时也需要不断完善交互图!最后开发出来的APP和交互一致!这样可以提高工作效率,因为大家的意见一致,开发根据交互做产品,做产品发现交互没考虑到得,交互及时更新!
7.关于测试:
这个项目的后期,测试团队工作的很嗨啊!每天对产品做测试!提出了不少改进的意见!这次测试有个问题就是,完全是凭一个用户的角度去测试这个软件,也对各个功能点做了集中测试!但是缺了一个环节:需要参考交互文档,挨个功能点做测试!这个环节应该放在所有测试之前,这样已保证APP的每个功能点都完成,实现完整!
8.关于产品上线
这条只作为经验吧!说起来也感觉有点“2”。在提交审核后,7天了,苹果回邮件:说提供的测试账号不能用!一验证果真不能用!哎!不说啥了!{我是外派的,自然项目上线这种事,客户公司自己做的!}
初生牛犊不怕虎,文笔一般!你可以吐槽了!菜鸟成长日记!对了,经过这个项目,感觉写服务器很牛x!最近在学点Python+Django!
菜鸟成长日记之新手备忘录-IOS开发第一个项目总结的更多相关文章
- Android菜鸟成长记1--环境的搭配和第一个项目的构建
一.配置Android环境 1.下载JavaJDK的本地,然后拷贝出来(因为Android实在java的基础上开发的,所以要先配置java环境) 2.java环境变量的配置 配置方法(我的电脑上-&g ...
- React Native ios开发第一课
前言 本篇文章的作用在于帮助你快速上手使用React Native编写iOS应用.如果你现在还不太了解React Native是什么以及Facebook为什么要创建React Native,你可以先看 ...
- iOS开发实用技巧—项目新特性页面的处理
iOS开发实用技巧篇—项目新特性页面的处理 说明:本文主要说明在项目开发中会涉及到的最最简单的新特性界面(实用UIScrollView展示多张图片的轮播)的处理. 代码示例: 新建一个专门的处理新特性 ...
- 新手学习ios开发的辅助工具
完整APP项目源码: Objective-C https://github.com/singro/v2ex Swift https://github.com/YANGReal/JokeClient-S ...
- Linux菜鸟成长日记 ( Linux 下的 ftp 文件传输协议 )
https://blog.csdn.net/buster_zr/article/details/80244542 FTP FTP 是 File Transfer Protocol (文件传输协议)的英 ...
- iOS开发之开源项目链接
1. Coding iOS 客户端 Coding官方客户端. 笔者强烈推荐的值得学习的完整APP.GitHub - Coding/Coding-iOS: Coding iOS 客户端源代码 2. OS ...
- ios开发第一步--虚拟机安装MAC OS X
暂时还没买Macbook,先用虚拟机练练手. 先说说准备工作,我是在win8下安装的,这个不是关键的,只要Vmware版本和MAC OS X版本确定就行了,win7下同样可以. 1.虚拟机Vmware ...
- iOS开发系列-修改项目工程名
当前有项目工程名为iOS,需要修改工程名为IFLY.在修改前注意备份项目 修改项目名 出现弹框,点击Rename 修改工程目录文件名 注意Tests与UITests不要删除 选中IFLY.xcodep ...
- iOS开发--Swift 最近项目开发中遇到的一些小问题与解决方法
1, Swift 修改导航栏颜色 self.navigationController?.navigationBar.barTintColor 2, Swift button 属性设置时直接进行初始化 ...
随机推荐
- Session技术详解
1.session简介 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务器程 ...
- Android 学习手札(一) 应用程序架构
1.资源列表 Android支持的资源列表 目 录 资源类型 描述 res/anim XML 该目录用于存放帧(frame).动画或补间(tweened)动画文件 res/drawable ...
- 行列的几种命名方式.line-.colume======.row-.col=========.tr-.td
第一种从line-height的语义来来讲,line表示hang再贴切不过了,colume纵列或者柱子也很形象,缺点太长了 第二种组合模拟rowspan,colspan而来,想必这个col也是colu ...
- 绑定下拉框时避免触发SelectedIndexChanged事件
在从数据库读取数据集绑定到下拉框时会立即触发其SelectedIndexChanged事件造成异常,可对其SelectedIndexChanged事件采取先解除后附加的方法解决. cmbXl_gt.V ...
- 浅谈Chrome V8引擎中的垃圾回收机制
垃圾回收器 JavaScript的垃圾回收器 JavaScript使用垃圾回收机制来自动管理内存.垃圾回收是一把双刃剑,其好处是可以大幅简化程序的内存管理代码,降低程序员的负担,减少因 长时间运转而带 ...
- Linux系统分区
在Linux系统里面,"分区",被称作"挂载点" 挂载点 意思就是把一部分硬盘容量,分成一个文件夹的形式,用来做某些事情,这个文件夹的名字,就叫做:挂载点 (如 ...
- MongoDB 与传统关系型数据库mysql比较
与关系型数据库相比,MongoDB的优点: 转载自 http://blog.sina.com.cn/s/blog_966e430001019s8v.html①弱一致性(最终一致),更能保证用户的访问 ...
- js touch触屏原理分析
之前我们做过许多触屏的特效,那么,今天,我们来分析下js的触屏原理.事实上,大家百度一下js touch基本上可以找到这文章“指尖下的js ——多触式web前端开发之一:对于Touch的处理”,我想这 ...
- J - 计算两点间的距离
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 输入两 ...
- seajs打包部署工具spm的使用总结
相信使用seajs的好处大家都是知道的,接触seajs好像是在半年前,当时还不知道页面阻塞问题,这里不带多余的话了. seajs实现了模块化的开发,一个网站如果分了很多很多模块的话,等开发完成了,发现 ...