关于一个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 (一)的更多相关文章

  1. 理解活在Iphone中的那些App (四)

    App生存环境之宿主环境 终于开始说一些技术性的话题了,从这里开始的一些技术细节的东西,以前我也没有太刻意的注意过.为了写这个也是刚刚看了一点资料,如果有纰漏,恳请指出. 一个App生存的宿主环境主要 ...

  2. 理解活在Iphone中的那些App (二)

    app是什么,为什么而存在 存在即合理的说法,已经被批臭批烂了.所以,作为一个程序员不能简简单单的因为上面来了一个需求,就完成一个需求.让做一个app就做一个app,只是简单的认为存在即合理,头让写就 ...

  3. 理解活在IPHONE中的那些APP (五)

    为了让App活起来 上一篇简单的说了一下关于IOS的一些事情,现在有必要深入了解一些对于让App活起来比较关键的信息.比如IOS系统的架构,这个我就不赘述了,请移步http://blog.csdn.n ...

  4. 理解活在Iphone中的那些App (三)

    App的生存环境之宏观环境 从用户需求变成一个产品形体的App,是一个曲折的过程.主要的过程大概如此,分析用户需求,从用户需求中提炼出比较重要的部分,然后结合自己的创意,将其转化成产品.投放市场,接受 ...

  5. 导出iPhone中安装的APP的iPA文件

    1.让iPhone连接电脑,打开iTunes,选择本电脑,然后点立即备份. 2.完成上一步的操作之后,选择应用,在iTunes中就会列出你从App Store中下载的应用,自己连接真机调试的应用是没有 ...

  6. 如何将IPhone应用软件发布到App Store的

    转自:http://www.shtion.com/667.html 怎样将IPhone应用程序软件公布到应用程序商店? 2009年10月19日公布 分类: App store, iphone, 手机应 ...

  7. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...

  8. [iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ格式分析

    [iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ文件格式分析作者:yuezang - iTyran     在iOS的3D开发中常常需要导入通过3DS MAX之类 ...

  9. 浏览器中唤起native app || 跳转到应用商城下载

    前段时间遇到一个小需求:要求在分享出来的h5页面中,有一个立即打开的按钮,如果本地安装了我们的app,那么点击就直接唤起本地app,如果没有安装,则跳转到下载. 因为从来没有做过这个需求,因此这注定是 ...

随机推荐

  1. git 切换 远程仓库

    $ git remote rm origin $ git remote add origin '仓库地址.git' $ git branch --set-upstream-to=origin/mast ...

  2. 实现一个简单的"jQuery"

    本次博客记录一个简单的"jQuey"的实现方式,来加深对jQuery的理解: 代码: <!DOCTYPE html> <html> <head> ...

  3. [转].Net Windows服务安装完成后自动启动

    本文转自:http://www.cnblogs.com/hb_cattle/archive/2011/12/04/2275319.html 考虑到部署方便,我们一般都会将C#写的Windows服务制作 ...

  4. Python——爬虫学习2

    BeautifulSoup插件的使用 这个插件需要先使用pip安装(在上一篇中不再赘言),然后再程序中申明引用 from bs4 import BeautifulSoup html=self.requ ...

  5. WCF 之部署(VS2010)

    一. 环境vs2010,WCF应用程序,server 2008 第一步:WCF项目右键点击项目,选择生成部署包,如下图: 第二步:WCF项目上右键,选择:在windows资源管理器中打开文件夹,如下图 ...

  6. centos文件/文件夹操作-检查磁盘、内存、cpu使用情况-vi操作命令

    Part1:CentOS文件/文件夹操作 1.新建文件夹 即创建目录 mkdir 文件名 新建一个名为test的文件夹在home下 vi source1 mkdir /home/test 注意:当创建 ...

  7. Spring 创建 IOC 容器时加载配置文件的几种方式

    一.ClassPathXmlApplicationContext 类路径加载 1. 使用 classpath 路径,classpath 前缀加不加都可以. ApplicationContext act ...

  8. sql: Oracle 11g create procedure

    CREATE OR REPLACE PROCEDURE proc_Insert_BookKindList ( temTypeName nvarchar2, temParent int ) AS nco ...

  9. BZOJ1053 [HAOI2007]反素数 & BZOJ3085 反质数加强版SAPGAP

    BZOJ 1053 Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0<i<x ,则称x ...

  10. 地图的平移、缩放的实现(android版)

    一.平移地图 移动地图的原理是利用手指在屏幕上拖动的距离,转换为在地图上距离,把地图坐标加上偏移的距离实现地图移动. 由于地图是绘制到Bitmap上的,所以地图移动和缩放的过程只要改变Bitmap的矩 ...