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开发第一个项目总结的更多相关文章

  1. Android菜鸟成长记1--环境的搭配和第一个项目的构建

    一.配置Android环境 1.下载JavaJDK的本地,然后拷贝出来(因为Android实在java的基础上开发的,所以要先配置java环境) 2.java环境变量的配置 配置方法(我的电脑上-&g ...

  2. React Native ios开发第一课

    前言 本篇文章的作用在于帮助你快速上手使用React Native编写iOS应用.如果你现在还不太了解React Native是什么以及Facebook为什么要创建React Native,你可以先看 ...

  3. iOS开发实用技巧—项目新特性页面的处理

    iOS开发实用技巧篇—项目新特性页面的处理 说明:本文主要说明在项目开发中会涉及到的最最简单的新特性界面(实用UIScrollView展示多张图片的轮播)的处理. 代码示例: 新建一个专门的处理新特性 ...

  4. 新手学习ios开发的辅助工具

    完整APP项目源码: Objective-C https://github.com/singro/v2ex Swift https://github.com/YANGReal/JokeClient-S ...

  5. Linux菜鸟成长日记 ( Linux 下的 ftp 文件传输协议 )

    https://blog.csdn.net/buster_zr/article/details/80244542 FTP FTP 是 File Transfer Protocol (文件传输协议)的英 ...

  6. iOS开发之开源项目链接

    1. Coding iOS 客户端 Coding官方客户端. 笔者强烈推荐的值得学习的完整APP.GitHub - Coding/Coding-iOS: Coding iOS 客户端源代码 2. OS ...

  7. ios开发第一步--虚拟机安装MAC OS X

    暂时还没买Macbook,先用虚拟机练练手. 先说说准备工作,我是在win8下安装的,这个不是关键的,只要Vmware版本和MAC OS X版本确定就行了,win7下同样可以. 1.虚拟机Vmware ...

  8. iOS开发系列-修改项目工程名

    当前有项目工程名为iOS,需要修改工程名为IFLY.在修改前注意备份项目 修改项目名 出现弹框,点击Rename 修改工程目录文件名 注意Tests与UITests不要删除 选中IFLY.xcodep ...

  9. iOS开发--Swift 最近项目开发中遇到的一些小问题与解决方法

    1, Swift 修改导航栏颜色 self.navigationController?.navigationBar.barTintColor 2, Swift button 属性设置时直接进行初始化 ...

随机推荐

  1. .NET 4.6

    http://referencesource.microsoft.com/ DownLoad 下载原代码

  2. 十一、C# 泛型

    为了促进代码重用,尤其是算法的重用,C#支持一个名为泛型的特性. 泛型与模块类相似. 泛型使算法和模式只需要实现一交.而不必为每个类型都实现一次.在实例化的时候,传入相应的数据类型便可. 注:可空值类 ...

  3. 原生js实现回到顶部

    网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...

  4. 百度地图实现车辆轨迹移动播放(baidu map api)

    开发技术:jquery,js baidu map api,json,ajax QQ1310651206

  5. HTML5拖放API

    拖放事件事件提供了拖放可以控制几乎所有方面的拖放操作.棘手的部分是确定每个事件触发:在拖项目火:别人火下降的目标.拖动项时,以下事件(按照这个顺序): 拖曳开始拖dragend此刻你把鼠标按钮和开始移 ...

  6. Sublime text3 JS语法检测工具安装及使用

    Sublime text3 JS语法检测工具安装及使用 工具/原料 sublime text3 nodejs sublimeLinter sublimeLinter-jshint 方法/步骤 首先ct ...

  7. Aspnet MVC 异步调用

    一个简图来描述下Aspnet MVC下的异步调用 { request } / \/ -------ISS------- > work thread | \ | \ route - aysn co ...

  8. IS打包

    1. 目的 让用户可以通过运行一个安装程序,安装程序到系统中正常运行. 2. 注意 当我们用项目向导生成的新项目时,InstallShield只为我们生成两个事件,分别是OnFirstUIBefore ...

  9. utf8_general utf8_general utf8_bin区别

    对与general来说 ß = s 是为true的 但是对于unicode来说 ß = ss 才是为true的, 其实他们的差别主要在德语和法语上,所以对于我们中国人来说,一般使用general,因为 ...

  10. 练习2 D 题- 第几天?

    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description 给定一个日 ...