YIFEIYANG 易飞扬的博客

2,054 views
21十二/110

敏捷开发实践(2) — 敏捷软件开发者的习惯

敏捷开发实践(2) — 敏捷软件开发者的习惯

敏捷开发的最小单位就是参与敏捷开发的个人。将这些敏捷开发者聚集起来,就形成了敏捷开发团队。

正如上回介绍的,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,它以最大可能地发挥团队的作用为目的。根据需要,随时改善,以降低软件开发中的风险。

敏捷开发者的态度

敏捷开发者首先需要有忠实,勤恳的态度,在此之上要有持续改善和迅速达成目标的紧迫感。如何让开发者养成敏捷的心态,如何磨练开发者敏捷的意志,让开发者了解敏捷的习惯很重要。

习惯来自于经验,习惯需要用实践来养成。我们来看看作为敏捷软件开发者必备的4种技能 :

  • 编故事(Creating Stories)

    这里不是让你去写一部小说,而是让开发者站在用户的视点,用用户能理解的词汇描述软件系统的机能,行为。只有理解了[......]

Read more

7,890 views
3十二/114

iPhone开发技巧之环境篇(11) — 让Xcode对应多个版本的iOS SDK

iPhone开发技巧之环境篇(11)— 让Xcode对应多个版本的iOS SDK

每次Xcode升级,以前的iOS SDK都会被覆盖掉;这是许多人碰到并头疼的问题—-如果想用旧版本的SDK编译就没有办法了。

这里就介绍一下Xcode与多个SDK版本并存的方法。针对Xcode的安装顺序总结了两种方法 :

安装新版Xcode时备份旧版SDK

这是最简单的方法 —- 每当安装新版的Xcode时,备份之前旧的SDK,安装Xcode之后,回复到指定目录下即可。

备份SDK路径
1
2
3
4
5
iOS 设备用
$ /Developer/Platform[......]

Read more

标签: 4 评论
5,821 views
20十一/110

iPhone开发技巧之发布篇(5)— 在程序中添加广告

iPhone开发技巧之发布篇(5)— 在程序中添加广告

iPhone/iPad的程序,即使是Free的版本,也可以通过广告给我们带来收入。前提是你的程序足够吸引人,有足够的下载量。

这里,我将介绍一下程序中集成广告的方法。主要有两种广告iAdAdMob。(还有其他多种可被植入的广告SDK,这里就不都一一介绍了)

iAd

从iOS 4开始,Apple增加了叫做 iAd 的架构,通过它我们可以在程序中提供Apple的广告服务。Apple会支付给开发者60%的广告收入。

iAd Framework中有例程,我们可以下载学习。这里,把简单的步骤说明一下 :

追加iAD Framework

首先,在X[......]

Read more

3,770 views
13十一/110

iPhone开发技巧之环境篇(10)— 在控制台调试iPhone应用程序

iPhone开发技巧之环境篇(10)— 在控制台调试iPhone应用程序

使用Xcode调试程序的时候,是否觉得有时候运行速度太慢。用Xcodebuild编译好程序之后,Xcode作为IDE纯粹是为了debug,使用iPhone模拟器而用的。其实iPhone模拟器只是Xcode自带的一个工具,不需要Xcode也可以启动的。这里,我们来看看一个叫做iphonesim的东东,通过控制台来模拟调试我们的iPhone程序。有了它就可以解决Xcode过于庞大,运行速度慢的问题。

首先,我们从github上下载了程序源码,通过Xcode编译。这之后iphonesim接生成了,可以通过命令行来使用它。

比如我调试一个Test.app的程序
1
2
3
4
5
6
 $ pwd
 /Users/Tester/Downloads/iphon[......]

Read more

2,966 views
9十一/110

敏捷开发实践(1) — 走进敏捷软件开发

敏捷开发实践(1) — 走进敏捷软件开发

敏捷开发是什么

敏捷软件开发是一个概念意义上的框架,用来取代软件工程项目的概念;它强调在项目的整个生命周期中,拥抱并促进由于软件进化式的发展所带来的变化。

简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

敏捷开发中涵盖多种开发元素:迭代开发,增量交付,测试驱动,结对编程,Usecase驱动,持续集成,重构等。我们知道软件开发项目中式样变更,需求变更是影响开发进度、成败的重要因素,而敏捷开发元素的利用可以有效地规避这些风[......]

Read more

14,789 views
6十一/114

iPhone开发技巧之调试篇(3)— 程序Crash后的调试技巧

iPhone开发技巧之调试篇(3)— 程序Crash后的调试技巧

当我们的程序突然死掉了,Xcode突然送出一段 "message sent to deallocated instance" 的错误,我们该怎样定位我们的程序bug呢?

又或者我们已经通过AdHoc发布了我们的β版程序,更甚至于我们的程序已经发布到了app store上;而当我们的程序突然在测试人员,或者是最终用户那里突然当掉,是否能收集到这样的日志信息,供我们解析bug呢?

下面的文章中我将逐步深入地说明这些技巧

模拟器上显示堆栈信息

当我们在模拟器上调试时,[......]

Read more

2,470 views
5十/110

乔布斯教给我们十条经验

 

从网上看到的文章,觉得很有学习的价值。

乔布斯带给我们的不光是iPhone, iPad, Mac电脑,更多的还是他的思想,他给予我们的人生启迪。

 

-----

 

几年后,儿孙会问,生活在史蒂夫·乔布斯担任苹果CEO的时代是怎样的。他们会说:“乔布斯是最棒的商界CEO。他是怎样的人?你从他那里学到了什么?”你怎样回答?忽视当下事物的重要之处是人之天性。与我们同时代的伟人显得比较普通,因为他们也呼吸我们呼吸的空气。

    但是,别搞错。史蒂夫·乔布斯一旦离去,人们情感就会大爆发。对他的称颂和悼念将会无穷无尽。此外还会有一种共同的惋惜:当他在世的时候,我们没有更清醒,对他更关注。

     他的每次重要演讲,或者收入报告会或者 YouTube上播放的闲谈看起来都会智慧[......]

Read more

6,757 views
12一/112

iPhone开发技巧之环境篇(9)— Xcode中的注释

在用Xcode编辑 Objective-C 代码的时候,我们常常使用类似 "#pragma mark" 的注释。使用它可以在Xcode的Function Menu中显示具体的列表。

Xcode #pragma mark

Function Menu 是 Xcode 编辑器中表示的上下文菜单。通过它,我们可以很方便地调到想去的地方,并把握源代码的全局信息。

Xcode #pragma mark

Xcode #pragma mark

比如向下面简单地写到:

Xcode #pragma mark

就可以在 Function Menu 中得到:

Xcode #pragma mark

如果使用 "#pragma mark -" 将得到一条分割线:

Xcode #pragma mark

Xcode #pragma mark

另外,我们还可以写一些 TODO:1 , FIXME: 等注释,类似下面的样子:

Xcode #pragma mark

所有的如下:

Xcode #pragma mark

Xcode #pragma mark

1. 这里要[......]

Read more

8,608 views
10一/112

iPhone开发技巧之数据篇(2)— iPhone程序中的加密处理

iPhone开发技巧之数据篇(2)— iPhone程序中的加密处理

CCCrypt

在Objective-C语言中,加密时常用到CCCrypt(3cc) Mac OS X Manual Page。下面的代码使用 CCCrypt() ,给 NSData 类增加了 AES256EncryptWithKey, AES256DecryptWithKey 方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57[......]

Read more

4,890 views
8一/111

iPhone开发技巧之调试篇(2)— 保存日志

大部分人调试程序都是看日志吧,这里我就给大家总结一下iphone程序中添加保存日志的方法。

Objective-C开发程序的时候,有专门的日志操作类NSLog,它将指定的输出到标准的错误输出上(stderr)。我们可以利用它在Xcode的日志输出窗口,或者是输出到具体的文件当中。

下面是我在程序中常用到的日志宏,用DEBUG开关管理,也就是说只有在DEBUG模式下才让日志输出 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifdef DEBUG
#  define LOG(fmt, ...) do {                                            \
        NSString*[......]

Read more

Page 2 of 12«12345»10...Last »