理解活在Iphone中的那些App (一)
关于一个app的生命
干IOS开发两年多了,如果把大学中的时间也算上,编程也有六年了。这些时间中,从一个懵懵懂懂的学徒,变成一个还算熟练的码农,也多多少少有一点反思。于是,边促成了理解活在Iphone中的那些App这一些列文章的诞生(说是一系列文章,到最后能写多少就看时间了)。
首先,解释一下文章的名字。说是活在Iphone中的app,并不是使用了什么拟人的手法,故意将app拟人化。说app有了生命,能够生老病死。其实,app本来就有生命。
当用户在SpringBoard上点击了你的app,你的app就开始了他的一次轮回。开始申请各种资源,被加载进内存。然后你的app活了起来,或者Run了起来。
我们都知道,用户使用一个app是为了完成特定的需求。当然,完成这个特定需求只需要特定的时间。十分钟或者几秒钟。这段时间就是你的app这次轮回的生命周期。用户在你的APP上消耗一秒钟,需求多完成一点,你的app就“老”了一点(这里的“衰老”的特质是指对于用户需求的价值)。
当然,被所有程序员痛恨的Bug,会不时的跳出来,让你的app染上各种稀奇古怪的疾病。甚至直接crash掉。
最后,当用户的需求被彻底满足或者中途app crash掉了。你的app的这次轮回结束,他要面对短暂的死亡。
程序员或者软件工程师,就是app的上帝,就是app的创造者,同时也是app的医生兼管家。我们决定了app的一切运行时的特质,但是唯一不能够决定的时用户时怎样看待你的app的(关于用户需求的问题会在后续的章节中介绍,现在主要是关注编程方面的东西)。
同样的思路,我们可以去分析在app的生命周期中,由我们或者系统创建的每一个对象。我很喜欢面向对象编程,尤其是对象这个词,虽然现在还没有对象。因为对象很自然的会让人联想到生命,联想到每一个被创建出来的实例都是鲜活的。都是在内存中活跃着的积极分子。而我将要写的这一系列的文章,思路及其的图样图森破。就是从生命周期的角度去解构一个app。
理解活在Iphone中的那些App (一)的更多相关文章
- 理解活在Iphone中的那些App (四)
App生存环境之宿主环境 终于开始说一些技术性的话题了,从这里开始的一些技术细节的东西,以前我也没有太刻意的注意过.为了写这个也是刚刚看了一点资料,如果有纰漏,恳请指出. 一个App生存的宿主环境主要 ...
- 理解活在Iphone中的那些App (二)
app是什么,为什么而存在 存在即合理的说法,已经被批臭批烂了.所以,作为一个程序员不能简简单单的因为上面来了一个需求,就完成一个需求.让做一个app就做一个app,只是简单的认为存在即合理,头让写就 ...
- 理解活在IPHONE中的那些APP (五)
为了让App活起来 上一篇简单的说了一下关于IOS的一些事情,现在有必要深入了解一些对于让App活起来比较关键的信息.比如IOS系统的架构,这个我就不赘述了,请移步http://blog.csdn.n ...
- 理解活在Iphone中的那些App (三)
App的生存环境之宏观环境 从用户需求变成一个产品形体的App,是一个曲折的过程.主要的过程大概如此,分析用户需求,从用户需求中提炼出比较重要的部分,然后结合自己的创意,将其转化成产品.投放市场,接受 ...
- 导出iPhone中安装的APP的iPA文件
1.让iPhone连接电脑,打开iTunes,选择本电脑,然后点立即备份. 2.完成上一步的操作之后,选择应用,在iTunes中就会列出你从App Store中下载的应用,自己连接真机调试的应用是没有 ...
- 如何将IPhone应用软件发布到App Store的
转自:http://www.shtion.com/667.html 怎样将IPhone应用程序软件公布到应用程序商店? 2009年10月19日公布 分类: App store, iphone, 手机应 ...
- IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...
- [iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ格式分析
[iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ文件格式分析作者:yuezang - iTyran 在iOS的3D开发中常常需要导入通过3DS MAX之类 ...
- 浏览器中唤起native app || 跳转到应用商城下载
前段时间遇到一个小需求:要求在分享出来的h5页面中,有一个立即打开的按钮,如果本地安装了我们的app,那么点击就直接唤起本地app,如果没有安装,则跳转到下载. 因为从来没有做过这个需求,因此这注定是 ...
随机推荐
- 开源代码ViewPageIndicator的使用
1. 导入Android studio 使用SlidingMenu的方式导入Android studio不行,不知道为何,过会懂了再写上 2. 代码 activity_main.xml <?xm ...
- Angular 应用中的登陆与身份验证
Angular 经常会被用到后台和管理工具的开发,这两类都会需要对用户进行鉴权.而鉴权的第一步,就是进行身份验证.由于 Angular 是单页应用,会在一开始,就把大部分的资源加载到浏览器中,所以就更 ...
- NFS挂载时出现"access denied by server while mounting"的解决方法
NFS挂载时出现"access denied by server while mounting"的解决方法 2015-01-14 何敏杰 3条评论 44,071次浏览 NFS是 ...
- jQuery基础---常规选择器
内容摘要: 1.简单选择器 2.进阶选择器 3.高级选择器 发文不易,转载请注明出处! jQuery 最核心的组成部分就是:选择器引擎.它继承了 CSS 的语法,可以对 DOM 元素的标签名.属性名. ...
- JS实现一位数显示为两位
使用js脚本实现页面一位数字显示为两位,不足两位前面加“0”. function fix(num, length) { return ('' + num).length < length ? ( ...
- visualvm 插件 visual gc 使用介绍
visual gc 是 visualvm 中的图形化查看 gc 状况的插件. 具体详细介绍可参照: http://www.oracle.com/technetwork/java/visualgc-13 ...
- poj 2796 Feel Good 单调队列
Feel Good Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 8753 Accepted: 2367 Case Ti ...
- k:特殊的线性表—队列
队列的概念: 队列是另一种特殊的线性表,它的特殊性体现在其只允许在线性表的一端插入数据元素,在线性表的另一端删除数据元素(一般会采用在线性表的表尾那端(没被head指针所指的那端)插入数据元素,在线 ...
- LeetCode SQL: Second Highest Salary
, NULL, salary) as `salary` from ( ,) tmp Write a SQL query to get the second highest salary from th ...
- 自定义scoll样式
使用伪类自定义scroll样式 效果: 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8 ...