Tinyfool的Blog

这就是我,Tinyfool,郝培强!身高180,体重240,标准的中年老胖子。 有妻有女,无房无车,现居上海,程序员。

第四讲,上周已经在公司讲过了,不过上周很忙一直没时间整理讲座的资料。这次的讲座其实非常简单,就是介绍了用Foundation框架里面的类和函数怎么进行最简单的网络通讯,这么安排的原因是有同事正好需要要做相关的工作。这部分很简单,所以讲的比较空。然后我当场做了两个DEMO:

第一个叫做,wordrobot,用最简单的NSData直接读取一个网络地址,例子中用的是Google翻译自带的tts接口,然后念出来一个英文单词的读音。

第二个叫做,mp3player,用NSURL,NSURLRequest,NSURLConnection用异步的方式把一个mp3从网络下载下来,然后播放,要使用这个代码需要把代码中的http://xxx.com/xxx.mp3改成一个实际存在的网络上的mp3文件的地址。

其实我准备了3个DEMO,当天因为时间的关系,第三个没有讲。叫做XmlAddress,程序从我的网站读取一个虚拟的通讯录数据文件,地址为 http://tiny4.org/address.xml ,把xml中的数据解析成一个NSArray包含多个NSDictionary的数据结构。NSDictionary中包含了一个人的通讯信息。然后把这些信息用UITableView来表现出来。

本期的讲座Keynote地址为:
iPhone/iPad开发讲座 第四讲 网络通讯和Xml处理

DEMO代码文件:
http://tiny4.org/down/4-demos.zip

相关链接:
iPhone/iPad开发讲座 第一讲 IOS开发简介 Keynote放出
iPhone/iPad开发讲座 第二讲 iPhone用户界面设计 Keynote放出
iPhone/iPad开发讲座 第三讲 基础UI和基础编程 Keynote放出
iPhone/iPad开发讲座 第四讲 网络通讯和Xml处理 Keynote放出

最近项目开发进度很紧张,今天午饭后才开始准备的keynote,内容有点简单,不过讲的效果还可以。

今天的keynote主要是介绍一个程序的生命周期,结构等问题,另外主要是介绍了UINavigationController和UITabBarController以及UITableView的使用场景和用发。也介绍了iphone开发中最常见的四个设计模式:MVC、Delegate、Target-Action以及引用计数(内存管理,今天没有涉及)。

讲完以后是一个Demo加动手环节,我从头给大家写了一个很简单的通讯录软件(数据硬编码),主要是展现,如何用UINavigationController来表现层次数据,如何用UITableView的datasource接口给它传输数据(delegate模式),怎么使用UITableView的delegate接口获得被点击的cell的id,然后在最终通讯录的详情窗口,展示了以前讲做过使用Target-Action模式,来操作UIView上面的控件(UILabel)。

下面听讲座的同事,手头带着Mac笔记本的人不多,不然我想效果会更好。

点击下列链接浏览和下载Keynote。

iPhone/iPad开发讲座 第三讲 界面和编程基础

相关链接:
iPhone/iPad开发讲座 第一讲 IOS开发简介 Keynote放出
iPhone/iPad开发讲座 第二讲 iPhone用户界面设计 Keynote放出
iPhone/iPad开发讲座 第三讲 基础UI和基础编程 Keynote放出
iPhone/iPad开发讲座 第四讲 网络通讯和Xml处理 Keynote放出

注:iPhone OS 3.2的大多数新特性是为iPad设计的,有些未来版本的iPhone上面也会支持,不过可以想见大多数为iPad定制的界面元素是不会出现在iPhone上的,例如popover等。

为了安全,iPhone OS的每个第三方软件都运行在自己的沙箱内,有自己独立的<Application_Home>/Documents目录。而只有iPhone内置的应用才可以通过iTunes来交换数据,这样就非常非常的不方便。

如果你做了一个电子书软件,支持用户自己添加书籍,以往你的最佳解决方案就是在代码内放置一个web服务器,给用户提供一个可以上传的web页面,非常的不方便。到了iPhone OS 3.2/iPad上,终于有了文件共享功能。只要你在程序的Applicatio-Info.plist内加入一个新的属性UIFileSharingEnabled,然后值设置为true即可。注意:(这里因为Objective-C的布尔值采用了YES和NO来代表真假。所以很容易让人误解为值应该设置为YES,但是如果这么设置,其实你是添加了一个字符串键值,正确的做法是在属性UIFileSharingEnabled上按右键,选择菜单Value Type,选择Boolean,然后,值会表现为一个选择框,选中即可。修改后直接重新编译可能不会有效,需要删除掉原有版本,用新版本替换。)

打开了这个值以后,iPad连入到iTunes 9.1以后版本,就会看到一个在应用程序选择界面下面出现了一个文件共享面板,列出了支持此功能的所有程序,这里可以浏览你的程序的<Application_Home>/Documents目录,也可以在里面添加删除文件。

有了此功能,再也不用费劲包含一个web服务器了,这是目前iPad下最方便的本地文件传输方式了,当然此功能如果在iPhone一代的时候就有,那就好了。

昨天下午,在公司做了第二讲,来了很多人,还有很多貌似是其他分公司的MM(漂亮的很多,都不认识……)。总共讲了2个多小时,很High,互动也还可以,感谢公司买的实物投影仪,虽然还玩的不熟练,但是用它做这类演示还是很酷的。

这次的keynote主要内容是汉化自苹果开发视频“iPhone User Interface Design”,略有修改。这个keynote其实不仅仅是讲界面具体该怎么设计,而是在讲苹果内部在用的设计方法论,按照什么样的逻辑开展设计流程。我第一次看到这个视频的时候很震撼,看过多次,苹果的设计方法论也许不是全世界最好的,但是在整个行业设计水平都相对低下的当下,这样的方法论,值得所有做苹果平台,和不做苹果平台的设计开发的人员,去了解,去学习,去体会。

点击浏览:iPhone/iPad开发讲座 第二讲 iPhone用户界面设计

公司每次分享活动都有很全面的录像资料保存,但是考虑到很多在内部分享提到的细节都不适于对公众公开,所以,我不准备放出在内部分享会的视频。

我考虑过单独给每个keynote录音,但是试了一下,确实是没有场景就很难high,很难流畅的发挥,且,这涉及到太大的工作量,最近工作非常繁忙,就不进行这方面的尝试了。

但是我准备给每个keynote配一个文本讲义,这一讲和上一讲的讲义的我会考虑在这周末做出来。

相关链接:
iPhone/iPad开发讲座 第一讲 IOS开发简介 Keynote放出
iPhone/iPad开发讲座 第二讲 iPhone用户界面设计 Keynote放出
iPhone/iPad开发讲座 第三讲 基础UI和基础编程 Keynote放出
iPhone/iPad开发讲座 第四讲 网络通讯和Xml处理 Keynote放出