《MonoTouch开发实践指南》一1.1 搭建开发环境

简介: 本节书摘来自华章出版社《MonoTouch开发实践指南》一 书中的第1章,第1.1节,作者:(美)Michael Bluestein,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.1 搭建开发环境

在使用MonoTouch开发之前,有许多事情需要先验知识(priori)。首先从苹果(Apple)入手获取所需要的一切,然后过渡到必不可少的MonoTouch上。

1.1.1 安装iOS SDK和苹果开发工具

欢迎来到使用.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(保存)按钮保存新建工程。

screenshot
screenshot
screenshot

在Xcode IDE加载工程模板后,单击顶部工具栏的Build and Run按钮。如果一切正常,将启动iPhone模拟器并加载应用程序,显示如图1-4所示的空白屏幕。

screenshot

关闭模拟器并返回Xcode后,展开如图1-5所示的Group & Files内的NIB Files节点,然后双击LMT1-1ViewController.xib文件。这时,苹果的用户界面设计工具Interface Builder(IB)将会启动,并显示如图1-6所示的LMT1-1ViewController.xib文件的内容。如果以上操作一切正常,说明iOS SDK和苹果开发工具已经正确安装。现在,可以转移到MonoTouch了。

screenshot

screenshot

1.1.2 安装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旁边的链接进行下载。

screenshot

安装完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所示的窗口。

screenshot

注意 也可以在终端中执行命令“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时,如果有任何升级提示,应该安装它们。

screenshot

MonoDevelop很好地与IB集成开发原生应用程序,该程序与使用Xcode和Objectitve-C开发的应用程序不但观感(look and feel)一样,而且使用的控件实际上也是一样的,这在本章后面将会讲述,目前继续进行与之前Xcode一样的检测工作。在解决方案标签页内展开解决方案和工程,会看到MainWindow.xib文件和其他一些工程文件。双击MainWindow.xib就可打开IB并看到一个空白窗口。
如果一切正常,说明MonoTouch已安装成功。当创建了一个非空白窗口的应用程序后,要将它部署到设备上,还需要花点儿时间。现在开始去做吧!

相关文章
|
Kubernetes NoSQL 网络协议
Boost实现简易服务器和客户端示例
Boost实现简易服务器和客户端示例
|
NoSQL API Redis
《微服务架构下API网关流量控制Bug复盘:从熔断失效到全链路防护》
本文复盘互联网金融平台转账模块的API网关流量控制Bug,技术环境为Spring Cloud Gateway网关、Sentinel流量治理、PostgreSQL分片集群与Redis哨兵缓存。周年庆活动高并发下,出现限流失效、熔断失效及数据一致性异常。排查发现,网关与Sentinel规则同步“拉模式”间隔过长致规则未更新、自定义Feign拦截器遗漏Sentinel熔断埋点、Redis队列无容量限制致请求溢出,是问题根源。解决方案包括改用“推拉结合”的规则同步、修复熔断埋点、优化资源防护策略,同时提炼出微服务网关流量控制的四大避坑要点,为后端高并发场景下的网关稳定性优化提供参考。
493 7
|
1月前
|
存储 人工智能 自然语言处理
千问办公实测:一句话替你干活的AI Agent,来自阿里QwenWork千问办公个人免费使用!
阿里云千问办公QwenWork是面向办公场景的AI智能体平台,支持自然语言一键生成PPT/Word/Excel/网页、钉钉深度集成、多模态理解与浏览器自动化等六大能力,提供免费版及多种付费版本,真正实现“一句话交付成果”。阿里千问办公QwenWork官网:https://t.aliyun.com/U/JNKJuO 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
|
机器学习/深度学习 传感器 安全
2025年华为杯E题|高速列车轴承智能故障诊断问题|思路、代码、论文|持续更新中....
2025年华为杯E题|高速列车轴承智能故障诊断问题|思路、代码、论文|持续更新中....
1592 0
|
存储 缓存 资源调度
# Qwen3-8B 的 TTFT 性能分析:16K 与 32K 输入 Prompt 的推算公式与底层原理详解
Qwen3-8B 是通义实验室推出的 80 亿参数大模型,支持最长 32,768 token 上下文,适用于长文本处理场景。通过 FP8 量化、CUDA Kernel 优化及 RoPE 位置编码技术,提升推理效率与稳定性。模型在 16K 输入下 TTFT 约 150-200ms,32K 输入下约 250-300ms,适用于文档摘要与长对话交互。
3500 8
|
运维 安全 Linux
2024 主流的开源服务器面板推荐
随着云计算和虚拟专用服务器(VPS)的普及,服务器面板工具成为了企业和个人管理服务器的得力助手。一个优秀的服务器面板不仅可以简化服务器管理任务,还可以提升工作效率和安全性。本文将为您介绍并测评几款2024年全网热门的服务器面板,包括Websoft9、宝塔、cPanel、1Panel等,帮助您找到最适合自己的管理工具。
2024 主流的开源服务器面板推荐
|
消息中间件 存储 缓存
美团面试: Kafka为啥能实现 10Wtps 到100Wtps ?kafka 如何实现零复制 Zero-copy?
40岁老架构师尼恩分享了Kafka如何实现高性能的秘诀,包括零拷贝技术和顺序写。Kafka采用mmap和sendfile两种零拷贝技术,前者用于读写索引文件,后者用于向消费者发送消息,减少数据在用户空间和内核空间间的拷贝次数,提高数据传输效率。此外,Kafka通过顺序写日志文件,避免了磁盘寻道和旋转延迟,进一步提升了写入性能。尼恩还提供了系列技术文章和PDF资料,帮助读者深入理解这些技术,提升面试竞争力。
美团面试: Kafka为啥能实现 10Wtps 到100Wtps ?kafka 如何实现零复制 Zero-copy?
|
JSON JavaScript 前端开发
js的版本
【5月更文挑战第7天】js的版本
728 1
|
自然语言处理 搜索推荐 程序员
因为看不惯Notepad++,国内大佬开源了Notepad--:技术分享与工作学习中的新选择
【8月更文挑战第20天】在编程界,文本编辑器是每一位开发者日常工作中不可或缺的工具。Notepad++,这款曾经风靡一时的文本编辑器,以其强大的功能和简洁的界面赢得了众多程序员的喜爱。然而,近年来,由于其作者的一些不当言论和行为,引发了广泛争议,许多程序员开始寻找替代品。在这样的背景下,国内一位大佬挺身而出,开源了Notepad--,为开发者们带来了一个新的选择。
2696 1