在使用MonoTouch开发之前,有许多事情需要先验知识(priori)。首先从苹果(Apple)入手获取所需要的一切,然后过渡到必不可少的MonoTouch上。
欢迎来到使用.NET进行iOS应用开发的世界。我敢肯定,你现在会兴奋得想立刻开始编写程序,不过,首先要做的是在手头那部闪闪发亮的Mac上搭建开发环境。然后熟悉一下在模拟器和iPhone上进行开发所需的所有步骤以及应用程序如何在它们中运行。注意 本书的内容也适用于iPod Touch和iPad。本书将iPhone、iPod Touch或iPad统称为“设备”(device),只有在只适用于某个设备的时候才会提及设备的名称。现在要做的第一件事是,到iOS开发者计划(iOS Developer Program)中注册。通过免费账号可下载在iOS模拟器中使用的开发工具和iOS SDK,还可以访问iOS开发中心(iOS Dev Center)的其他资源。如果要在设备上部署应用程序并将它发布到iTunes App Store,就要从苹果购买付费许可。可以在图1-1所示的iOS开发者中心主页上找到注册链接。注册后,登录到iOS开发者中心并下载包含XCode的iOS SDK,它提供了整套使用Objective-C开发iPhone应用程序的工具。没错,你没眼花。MonoTouch建立在苹果开发工具链的顶端,并带来了优雅的C#和.NET。它是一个两全其美的设计,既符合苹果的设计规范,又可以让使用者体验到像使用本地应用程序一样自然。在MonoTouch的旅程中一定会获益良多,不过,现在还是先回到搭建环境上。如图1-2所示,下载包含XCode的iOS SDK。在本书中,将使用Mac OS X雪豹(Mac OS X Snow Leopard)进行iOS开发。下载并安装苹果的iOS SDK之后,先要做一个快速的完整性测试,以确保在继续下一步之前的工作一切正常没有错、漏。不用担心这看起来似乎很外行,只要明白验证安装是一件很开心的事就行。在终端中输入命令open –n/Developer/Applications/Xcode.app打开Xcode这个苹果的IDE开发工具。Xcode运行后,在主菜单选择File→New Project,创建一个iPhone应用程序。然后如图1-3所示在New Project(新建工程)对话框的左侧,选择iOS下的Application,并选择View-based Application模板。最后将工程名称修改为LMT1-1,并单击Save(保存)按钮保存新建工程。
在Xcode IDE加载工程模板后,单击顶部工具栏的Build and Run按钮。如果一切正常,将启动iPhone模拟器并加载应用程序,显示如图1-4所示的空白屏幕。
关闭模拟器并返回Xcode后,展开如图1-5所示的Group & Files内的NIB Files节点,然后双击LMT1-1ViewController.xib文件。这时,苹果的用户界面设计工具Interface Builder(IB)将会启动,并显示如图1-6所示的LMT1-1ViewController.xib文件的内容。如果以上操作一切正常,说明iOS SDK和苹果开发工具已经正确安装。现在,可以转移到MonoTouch了。
MonoTouch是基于Mono平台、在Linux或Mac OS X平台上使用.NET开发应用程序的开源开发环境。在使用MonoTouch之前,需要先安装最新发布的基于OS X平台的Mono(当前版本为2.10.1),可以到www.go-mono.com/mono-downloads/download.html上下载。如图1-7所示,在Select Plantform下选择Mac OS X,然后选择Intel旁边的链接进行下载。
安装完Mono后,准备安装MonoTouch SDK。如果要将MonoTouch开发的应用程序部署到设备并提交到iTunes App Store,首先要为苹果iOS开发者的账号付费,还要购买一个Novell的MonoTouch商业许可协议。如果只是想在模拟器上进行开发,可以从Novell网站下载MonoTouch的免费试用版本。如果已经为苹果iOS开发者的账号付费,并且想购买MonoTouch许可证,可以到位于商店进行购买,在该页面中,可以对各种许可证版本进行比较,并选择一个适合的版本。购买后,会在浏览器中显示一个带有激活码的确认回执。注意 记得保存好回执,因为后面需要使用回执里的激活码。在Novell发回的电子邮件中,会有一个许可授权版本的MonoTouch SDK的下载链接。从下载链接下载安装包后,进行安装。当提示安装完成后,在MonoTouch激活对话框中,将确认回执(购买许可后在浏览器中保存下来的那份确认回执)中的激活码输入进行激活。要验证是否安装成功,可在终端中输入命令/Developer/MonoTouch/usr/bin/mtouch–version,显示当前运行的MonoTouch版本。现在,准备安装MonoDevelop。注意 iOS平台上基于Mono的新版软件会由一个名为Xamarin的新公司进行开发,该公司由创建Mono和MonoTouch的团队组建。他们的MonoTouch产品向后兼容。要获得更多信息可浏览xamain.com网站。MonoDevelop是一个用来进行MonoTouch开发及其他事情的IDE工具。它很好地集成了苹果的工具链并支持全部调试功能,这些将在本章后面进行讲述。MonoDevelop安装完成后,打开Finder的Application(应用程序)目录,双击MonoDevelop图标,运行应用程序,将看到如图1-8所示的窗口。
注意 也可以在终端中执行命令“open–n /Applications/Monodevelop.app”运行MonoDevelop的多个实例。MonoDevelop运行后,进行一次之前在Xcode中做过的完整性测试,以确保一切运作正常,步骤如下:1)在主工具栏中选择File→New→Solution,创建一个新的解决方案。2)在如图1-9所示的New Solution(新建解决方案)对话框中,在模板树中选择 C#→iPhone and iPad。然后选择iPhone Window-based Project模板。3)将解决方案的名称修改为LMT1-2后,单击Forward按钮,然后单击OK按钮。(因为 Project Features选项不适用于MonoTouch,因而可忽略该选项,保留复选框为未选状态。)4)在下拉菜单中选择Run→Run。让MonoDevelop生成应用程序,并将它安装到模拟器上。然后在模拟器内运行应用程序,将会看到与之前在Xcode中创建的应用程序一样的空白屏幕。5)退出模拟器并返回MonoDevelop,开始检查集成的IB。注意 在初次运行MonoDevelop时,如果有任何升级提示,应该安装它们。
MonoDevelop很好地与IB集成开发原生应用程序,该程序与使用Xcode和Objectitve-C开发的应用程序不但观感(look and feel)一样,而且使用的控件实际上也是一样的,这在本章后面将会讲述,目前继续进行与之前Xcode一样的检测工作。在解决方案标签页内展开解决方案和工程,会看到MainWindow.xib文件和其他一些工程文件。双击MainWindow.xib就可打开IB并看到一个空白窗口。如果一切正常,说明MonoTouch已安装成功。当创建了一个非空白窗口的应用程序后,要将它部署到设备上,还需要花点儿时间。现在开始去做吧!