理解活在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,如果没有安装,则跳转到下载. 因为从来没有做过这个需求,因此这注定是 ...
随机推荐
- select2和bootstrap模态框一起使用导致select2的input获取不到焦点问题
select2和bootstrap模态框一起使用导致select2的input获取不到焦点问题 解决办法: 把页面中的 tabindex="-1" 删掉, 或者值改为1 代码片 ...
- ASP.NET MVC Core Starter Kit
上一篇博文<创建.NET Core程序的Nuget Package>提到准备创建一个Nuget包,用于自动生成一个简单的ASP.NET MVC Core的示例项目.本来是打算用Nuget实 ...
- spark2.4+elasticsearch6.1.1搭建一个推荐系统
目录 整体框架 安装相关的组件 elasticsearch安装 spark安装 下载es-hadoop中间件 安装计算向量相似度的elasticsearch插件 运行 结果展示 参考博客 本博文详细记 ...
- Tomcat源码分析——启动与停止服务
前言 熟悉Tomcat的工程师们,肯定都知道Tomcat是如何启动与停止的.对于startup.sh.startup.bat.shutdown.sh.shutdown.bat等脚本或者批处理命令,大家 ...
- Idea软件Vim插件问题
人家说用webstorm是纯前端,用Idea是java+前端,好,那就用Idea,装上试试,全选所有插件安装,奇迹出现了,选中一行代码,backspace,删不了,我的天,好吧,复制粘贴的快捷键也不行 ...
- Python——基本的方法
格式化 我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式 >>> 'He ...
- vs2015编译时CS1056 C# Unexpected character解决办法
https://stackoverflow.com/questions/42932577/error-cs1056-unexpected-character-running-the-msbuild-o ...
- C# 类库下 读取不到config里节点的问题
前提:要在当前项目下App.config配置信息里读取连接数据库的字符串.忘记创的是个类库.导致一直报错(对象未实例) 解决办法: 程序运行不会读取本项目下的app.config文件(实际它只是个模板 ...
- 如鹏网学习笔记(十五)ASP.NET MVC核心基础笔记
一.ASP.Net MVC简介 1,什么是ASP.NET MVC? HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大.工作量大.因此提供了ASP. ...
- 15、IO (转换流、缓冲流)
转换流概述 * A: 转换流概述 * a: 转换流概述 * OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节 * 将字符串按照指定的 ...