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. Log4j配置的经典总结,打印日志文件,日志存库

        一.介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制 日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Sy ...

  2. Linux命令:chmod命令

    chmod命令:改变文件或目录的存取权限 #权限代号 -r 文件被读取 4 -w 文件被写入 2 -x 文件被执行 1 #权限范围 -u 文件所有者 -g 文件所有者所在组 -o 其他 -a 全部 # ...

  3. 谈一下关于C++函数包装问题

    在C++中,我们经常遇到在某个特定的时刻,需要将函数进行包装调用,尤其是当我们需要将不同签名的函数放到同一个集合时,由于函数签名不一致导致我们不能直接将各式各样的函数指针放到诸如list这样的集合中, ...

  4. 【vc】14_网络编程_socket编程

    1.计算机网络基本知识 最简单的网络程序如图: 提示:IP地址就相当于一个公司的总机号码,端口号就相当于分机号码.在打电话时,拨通总机后,还需要转到分机上. (1)协议 ·为进行网络中的数据交换(通信 ...

  5. PHP做支付宝即时到账需注意

    注意:1按照人家的参数规则,规范填写参数列表:2商家信息填写正确:3然后提交走后注意此时告别了咱们的服务器,将在咱们服务器的订单信息提交到了支付宝服务器,然后支付宝服务器进行支付宝支付流程,当如果支付 ...

  6. python3 读写excel

    一直认为python3可以很快的实现很多简单的功能,今天要读excel表格数据,想来很简单,网上一搜,用xlrd即可,然后很多人给出了不同的版本,号称xlrd3,实际上官网一看,xlrd0.9.4兼容 ...

  7. python split()黑魔法

    split()用法: #!/usr/bin/python str = "Line1-abcdef \nLine2-abc \nLine4-abcd"; print str.spli ...

  8. php 钩子函数原理 解析

    目前对钩子的理解:<转载:http://www.cnblogs.com/del/archive/2008/02/25/1080825.html> 譬如我们用鼠标在某个窗口上双击了一次, 或 ...

  9. Ubuntu14.04 安装QQ(国际版)

    1.在/etc/apt/source.list文件中添加: deb http://packages.linuxdeepin.com/deepin trusty main non-free univer ...

  10. C# 程序性能提升篇-2、类型(字段类型、class和struct)的错误定义所影响性能浅析

    前景提要: 编写程序时,也许你不经意间,就不知不觉的定义了错误的类型,从而发生了额外的性能消耗,从而降低了效率,不要说就发生那么一次两次,如果说是程序中发生了循环.网络程序(不断请求处理的)等这些时候 ...