iOS开发---业务逻辑

 

1. 业务逻辑

iOS的app开发的最终目的是要让用户使用, 用户使用app完成自己的事就是业务逻辑, 业务逻辑的是最显眼开发工作.
但是业务逻辑对于开发任务来说, 只是露在大海表面为上那一小截冰山, 为了支撑业务逻辑, 需要大量的其他功能的开发.
如果只看到了业务逻辑的开发, 而没有全面的审视其他开发工作, 很容易在估计进度, 安排资源, 分解任务等方面估计不足.

开发冰山

那么, 开发一个iOS app, 业务逻辑之外, 或者说在支撑业务逻辑方面, 还有哪些容易忽略的开发工作呢?

2. 身份验证

大多数的app, 会需要一套身份验证系统, 把用户信息进行管理, 验证. 并且该功能在开发的时序上, 应该是靠前的. 会需要开发以下功能:

  • 让用户能够注册, 登陆, 登出.
  • 关联社交网络的账号, 导入社交账号信息, 解除社交账号绑定.
  • 对用户的会话, 或者令牌进行相关处理.
  • 针对用户是否登陆, 以及用户的不同类型, 屏蔽, 启用相关功能. 并且在用户登陆成功后, 跳转到登陆前要进入的视图.

4. 自定义控件

赞美伟大的UI设计, 他们进行设计的时候, 总是会考虑惊艳的视觉效果, 容易设计出一些iOS本身不存在的控件. 虽然在github上又大量的第三方开源控件, 但是很难说有和UI设计一致的.
这时候, 要么需要从头开发自定义控件, 要么需要将开源的控件进行代码修改. 通常这都是颇有难度的耗时工作.

3. 性能优化

一个运行缓慢, UI响应延迟的app不是好app, 一个耗费大量手机电量, 占用大量存储控件, 内存的app也不是一个好app, 一个会崩溃的app, 甚至都无法上架.
所有这些问题的解决, 都需要靠性能优化来解决. 这个工作常常需要在功能开发完毕后, 进行一次调整. 其中涉及较多有难度的技术问题, 更是增加了该工作的难度.

4. 测试和调试

很少有一个app, 开发完了之后即完全符合产品设计的意图, 又没有bug. 其实不是很少, 是完全没有.
当app功能开发完成的时候, 会发现不是想要的样子, 或者存在莫名的bug, 需要进行修改. 人们在估计工作量的时候, 很容易按照一次就能无bug完全正确的开发出功能, 这样估计太乐观.

5. 屏幕适配

iOS系统现在有4/4s, 5/5s, 6, 6p, ipad等多种尺寸, app需要支持几种设备, 界面就需要适配几种屏幕.
虽说有auto layout 之类的帮助你完成这项工作, 但是还是常常需要硬编码来进行适配.
想一想每开发完一个功能, 都需要在所有设备上都确认一下ok, 肯定会多花出一些时间.

6. 版本适配

iOS系统目前最多的是iOS7和iOS8, iOS6也有一些. 为了让app安装到更多人的手机上, 需要支持多个iOS版本.
但是, 各个iOS版本可提供的api, 以及系统的行为特性都是不一样的. 对于一些功能, 需要些多套代码, 调用不同的api来实现.

7. app操作引导

就是app使用教程, 做的好的一些app, 都加入了交互式的教程, 这在游戏类或者工具类的app中尤为常见.
这也是一项可能忽略的功能, 当然这个功能不是必须的.

8. 点评引导

为了增加好评率, 一个优秀的app会在合适的时机, 合适的位置, 弹出对话框, 对用户说"亲, 上app store给个五星吧!".

9. 分享

大多数的app需要支持分享, 需要把qq空间, 微信朋友圈, 新浪微博等等的分享集成进来. 集成工作花样繁多, 注册第三方的信息也过程繁琐.

10. 反复迭代

产品经理对产品的认识随着开发也会变化, 有的功能会死掉, 有的功能会变掉, 有的功能会加进来.
如果只看到项目启动时需求列表里的的功能, 并认为最后实现的就是那些, 就略显天真了.

11. 缓存的处理

对于有后端服务器的app, 通常需要对一些网络请求的资源进行缓存. 以图片等较大的文件数据为主.
可以使用第三方的, 也可以自己做, 反正这项工作是摆在那里的.
缓存的有效期, 怎成清除, 允许的最大空间, 也都是要考虑和处理的.

12. app的发布

需要设置app的名称, 关键字, 描述, 制作漂亮的截图, 甚至是视频. 提交之后, 还得等着一周以上的审核时间.

学习:http://www.jianshu.com/p/7e5670e0ca2f

iOS开发---业务逻辑的更多相关文章

  1. MVC5 网站开发之四 业务逻辑层的架构和基本功能

    业务逻辑层在Ninesky.Core中实现,主要功能封装一些方法通过调用数据存储层,向界面层提供服务.   目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 ...

  2. 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 6 - 业务逻辑

    Part 3: 设计逻辑层:核心开发 如前所述,我们的解决方案如下所示: 下面我们讨论整个应用的结构,根据应用中不同组件的逻辑相关性,分离到不同的层中,层与层之间的通讯通过或者不通过限制.分层属于架构 ...

  3. ASP.NET MVC5 网站开发实践(一) - 框架(续) 模型、数据存储、业务逻辑

    上次搭建好了项目框架,但还是觉得不太对劲,后来才想起来没有对开发目标进行定位,这个小demo虽然不用做需求分析,但是要实现什么效果还得明确.后来想了一下就做个最简单的网站,目标定为小公司进行展示用的网 ...

  4. 用c#开发微信 (7) 微渠道 - 推广渠道管理系统 2 业务逻辑实现

    我们可以使用微信的“生成带参数二维码接口”和 “用户管理接口”,来实现生成能标识不同推广渠道的二维码,记录分配给不同推广渠道二维码被扫描的信息.这样就可以统计和分析不同推广渠道的推广效果. 上次介绍了 ...

  5. 3、IOS开发--iPad之仿制QQ空间 (为HomeViewController添加交互逻辑 并 为导航条内容添加UISegmentedControl)

    1. 为bottomMenu添加点击效果 思路描述:        需求:        点击BottomButton的三个item,然后对应响应的是HomeViewController弹出对应的业务 ...

  6. 使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 6 - 业务逻辑

    翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 6 - 业务逻辑 Part 3: 设计逻辑层:核心开发 如前所述,我们的解决方案 ...

  7. DDD实战进阶第一波(八):开发一般业务的大健康行业直销系统(业务逻辑条件判断最佳实践)

    这篇文章其实是大健康行业直销系统的番外篇,主要给大家讲讲如何在领域逻辑中,有效的处理业务逻辑条件判断的最佳实践问题. 大家都知道,聚合根.实体和值对象这些领域对象都自身处理自己的业务逻辑.在业务处理过 ...

  8. Odoo 12 开发手册指南(八)—— 业务逻辑 – 业务流程的支持

    在前面的文章中,我们学习了模型层.如何创建应用数据结构以及如何使用 ORM API 来存储查看数据.本文中我们将利用前面所学的模型和记录集知识实现应用中常用的业务逻辑模式. 本文的主要内容有: 以文件 ...

  9. 减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同

    本篇文章讨论并不是:不要使用存储过程,因为有些事情还是要存储过程来完成,不可能不用.而是关于:"业务逻辑是不是要封装在存储过程中实现,这样子php.java等就是调用存储过程". ...

随机推荐

  1. ostu进行遥感图像的分割

    城市地区道路网的简单的阈值分割.采用的是单ostu(最佳阈值分割)算法,废话少说,如果不太清楚该算法,请参考文献[1]中的图像分割这一章的介绍.程序直接运行的效果如下.

  2. 【Linux】CentOS7 alien命令 转化deb 与 rpm的相互转化

    -d, --to-deb Make debian packages. This is the default. -r, --to-rpm Make rpm packages. -t, --to-tgz ...

  3. pc_lint的用法转

    PC-Lint是一款C/C++软件代码静态分析工具,不仅可以检查一般的语法错误,还可以检查潜在的错误,比如数组访问越界.内存泄漏.使用未初始化变量.使用空指针等.在单元测试前使用PC-Lint来检查代 ...

  4. solr 常用命令

    1.启动和关闭 a.启动和重启 启动和重启命令有很多选项让你运行在SolrCloud模式,使用示例配置,以hostname为开头或者非默认端口,指向本地ZooKeeper. bin/solr star ...

  5. cocos2d-x 2.2.0 图片选中聚焦 ,图片描边 CCClippingNode 实现

    效果例如以下图 左边箭头是x方向翻转的.右边箭头有旋转和缩放action. 大概实现方法:用箭头作为遮罩层,底图是一个绘制的矩形,得到一个黄色箭头背景.在用schedule尾随要聚焦箭头动作.这个 ...

  6. hdu 1030 Delta-wave(数学题+找规律)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1030 Delta-wave Time Limit: 2000/1000 MS (Java/Others ...

  7. S4:装饰模式 Decorator

    动态的给一个对象添加额外的一些职责,就增加功能而言,比继承更具灵活性. 如果仅有一个ConcreateComponent,也可以让Decorator继承ConcreateComponent来实现装饰功 ...

  8. python——双下划线与python命名机制

    python中双下划线的作用(1)所有以双下划线开头的成员是私有的(2)python对于私有变量是会进行扎压(mangling)的,扎压规则是原始定义:class A():    __function ...

  9. Xcode强大的多视图立体分层显示View UI Herarchy

    Xcode能够显示执行页面的立体uivew结构图,能够让你看到一个页面包括哪些视图,在哪一层,在页面的什么位置. 一看就能看到你的uiview是否显示.显示在哪里了. 用鼠标点击页面移动鼠标能够看到页 ...

  10. SQLserver备份数据库示例

     BACKUP DATABASE [yee]TO  DISK = N'D:\数据库备份\yee2015.9.11.bak'WITH  NAME = N'yee - 备份',  NOFORMAT, NO ...