Xamarin 2.0 带来新的 IDE、支持 iOS 的 Visual Studio 插件和组件商店

  • Abel Avram
  • 臧秀涛

2013 年 3 月 1 日

话题:C#AndroidiOS语言 & 开发

Xamarin 在完成其为跨平台移动开发提供一组通用工具的愿景方面又迈出了重要一步。伴随Xamarin 2.0 的宣布,Xamarin 重新命名了其产品,带来了新的 IDE Xamarin Studio、支持 iOS 开发的 Visual Studio 插件和组件商店。Miguel de Icaza 对 InfoQ 详细介绍了组件商店。

重新命名

随着时间的推移,Xamarin 的工具的名字也有所改变,而且在不同平台上名字也不是非常统一。该公司现在确定了一组新名字:

  • Xamarin——基于 Mono 的平台
  • Xamarin.iOS——用于构建 iPhone 和 iPad 应用
  • Xamarin.Mac——用于为 Mac App Store 构建应用
  • Xamarin.Android——用于为 Google 的 Play Store 构建应用
  • Xamarin Studio——IDE

Xamarin Studio

Xamarin Studio 是基于 MonoDevelop 的跨平台 IDE 新尝试。它有一个新的界面,提供了一些 Visual Studio 开发者所熟悉的功能:自动完成、重构、语法高亮、代码提示、代码导航、支持模拟器 / 仿真器或真实设备的集成调试器,此外还集成了 Git 和 Subversion。

要进行 iOS 开发,Mac OS X Lion 或更新版本连同 iOS SDK、Xcode 和 Apple Developer Program 会员是必要的。

Visual Studio 插件

根据 Xamarin 提供的信息,该平台上 23 万开发者呼声最高的特性之一就是能够使用 Microsoft Visual Studio 进行 iOS 开发。Xamarin 的 Android 开发插件已经存在了好多年,现在又提供了支持 iOS 的插件。该插件可以很好地与微软的生态系统集成,可以在 Mac OS 机器的仿真器上进行远程调试和测试。在 Mac OS 上,因为 iOS 的现有限制,面向 iOS 的 C# 代码会通过 AOT 编译技术直接编译为 ARM 汇编代码。而在 Android 上,应用程序会转换为 IL,启动时再进行 JIT 编译。

组件商店

组件商店是 Xamarin 2.0 引入的新特性之一。Xamarin 构建了一个为增加开发速度直接从 IDE 中创建、分享和复用组件的框架。Xamarin 的 CTO Miguel de Icaza 与 InfoQ 分享了组件商店创建背后的一些细节和原因:

该项目发起于一年之前,已经经历了多个准备发布的阶段。但每次说到“所有特性都已实现”时,我们总会变得越来越挑剔。我们的组件是否真的易于使用,是否真的易于集成到应用程序中,文档是否恰当?

发起于一年之前的这一项目也因此得以维持下来。从“我们要将供 iOS 和 Android 使用的流行库打包起来”发展为让开发者通过“选择组件、拾起所需组件、将其集成到应用中、配置完并准备好”这种方式来安装。我们借助一个单独的选项卡提供了概念文档、参考文档以及示例代码。

如我之前所提到的,我们希望的不只是多少改进一点软件开发者的体验,而是希望有一个数量级的改进。因此我们将最初简单打包的思想变成了一个完整的框架。

但是我们并没有仅仅停留在可复用的、漂亮的用户界面组件库、或是对数据库和 Web 服务的支持上。

我们注意到,人们在开始开发移动应用时有一个很大的困难需要克服,那就是让应用看起来很漂亮。但是在移动环境下,这需要花时间学习 API、寻找原图、做实验并微调每个控件和每页视图。像大多数开发者尝试新想法,或者为业务目标努力这样的事情未能正确处理资源或周期。

因此我们开发了各种各样可以直接使用的主题,开发者用一行代码即可将主题添加到他们的应用中,整个应用程序就风格化了。

我们对早期 beta 测试的结果以及测试期间测试人员所取得的精良水平非常满意。

Xamarin.Mobile 是该商店中的组件之一,提供了访问 iOS、Android 和 Windows Phone 等平台公共特性(如通讯录和相机等)的 API。根据 Xamarin 提供的信息,如果设计合理,应用程序的代码量最多可以减少 90%。

查看英文原文:Xamarin 2.0 Brings a New IDE, Visual Studio Add-in for iOS and a Component Store


感谢康锦龙对本文的审校。

C#AndroidiOS语言 & 开发