请先登录

咨询电话:010-57410251   |

首页 会员须知 常见问题
Xamarin 产品详情 价格说明 培训课程 博客文章 软件商城
产品简介 原理说明 四大模块 五大特色 六大功能 其他解决方案 开发方法概述 常见技术问题

Xamarin.iOS—创建原生iOS应用程序的最佳方式

在App Store上发布原生应用程序。透过 Ahead-of-Time (AOT) 编译程序,直接将Xamarin.iOS程序编译为ARM的执行档。编译封装完成的应用程序被直接编译为原生的二进制执行文件。

支持访问任何iOS API。Xamarin将100%的苹果 iOS SDK转换为C# 函数库,使用更强大的类型和.NET命名转换来提高Objective-C API的可用性。

使用C# 调用现有Objective-C程序代码。通过Xamarin的自动绑定生成器 (binding generator) 继续使用现有的Objective-C代码、框架和自定义控件。

开发WatchKit App。透过Xamarin Studio或Visual Studio进行Watch App的应用开发,在iOS Designer里编辑 Watch 的用户界面,以及在iOS模拟器里调试Watch App。

确保与苹果同步更新。Xamarin在iOS 5,iOS 6,iOS 7,iOS 8,都与苹果在同一天发表对应的版本,让使用者在第一时间利用iOS最新功能。

Xamarin.Android—创建原生安卓应用程序的最佳方式

发布原生安卓应用程序。透过 Just-in-Time (JIT) 即时编译程序,直接将Xamarin.Android程序编译并进行封装。

支持访问任何安卓API。Xamarin将100%的Google安卓API转换为C# 函数库,通过异步支持和.NET命名转换来提高Java API的可用性。

使用C# 呼叫现有Java程序代码。通过Xamarin的自动绑定生成器(binding generator)继续使用现有的Java代码,框架和自定义控件。

开发Android Wear App。拥有100% Android Wear所有设备接口的完全访问权限,让您开发优质的Android Wear 应用程序。

确保与安卓同步更新。Xamarin对于Google最新的API版本确保第一时间更新,让使用者在第一时间利用最新功能。

Xamarin实现高性能原生应用程序

原生用户界面(UI)Xamarin应用程序使用标准的用户界面,符合每一个移动平台的设计规则,满足终端用户需求。

原生API接口Xamarin应用程序搭配装置硬件并拥有和每个平台上所有设备接口的完全访问权限,包括iBeacons和Android Fragments。

原生性能Xamarin应用程序能够完整存取装置硬件上的功能,通过Xamarin编译程序进行各平台的编译,以得到最佳效能。

Xamarin将原生(Native)的 IOS及Android API转换为C# 函式库供使用者使用,开发人员可使用C#撰写程序,并呼叫原生平台(IOS, Android)的API,且透过良好的设计,可以在不同平台共享部份程序代码。开发人员可透过Xamarin编译程序,直接将程序编译为ARM的执行档,并进行各平台的封装。编译封装完成的App由于不经过中间转译,直接编译为原生的二进制执行文件,因此具有好的运作效能。

四大模块

Xamarin 开发平台主要包含以下4大部分 :
开发程序语言:Xamarin 以C# 作为开发程序语言,开发人员直接撰写C# 即可进行开发。 整合开发工具:Xamarin 提供整合开发工具 (IDE) Xamarin Studio,开发人员可直接于此工具上进行开发、除错、测试与仿真 等作业。Xamarin也针对Microsoft Visual Studio提供附挂套件 (Plug-In)。 跨平台开发框架: (Mono .Net Framework)Xamarin 提供开发框架,支持跨平台的功能实作 (cross-platform implementation)。 编译程序: Xamarin 具有各平台的编译程序,可直接编译为 iOS 与 Android 平台的机器码。

五大特色

快速建立原生(Native)的行动装置应用程序:
透过 C#亲和且功能齐全的语言特性,搭配.NET Framework 的 Base Class Library(BCL)的便利性,让开发人员能以最高的生产力开发行动装置应用程序。目前 Mono 支持 C# 5.0 的语言规范,开发人员可以用Lambda Expression、LINQ 甚至是 Async/Await 的异步处理。

程序代码共享:
现行由 Objective-C 所开发的 iOS 应用程序以及由 Java 所开发的 Android 应用程序,无法达到程序代码共享。Xamarin 则是采用C#撰写,因此透过良好的设计,可以在不同平台间共享商业逻辑以及数据存取等程序,毋需重新撰写。除了省下重新撰写的时间成本外,对于版本维护及一致性也有相当大的帮助。

与 Visual Studio 整合:
Xamarin 提供了 Visual Studio 2010/2012 的 plug-in,让原本就熟悉 Visual Studio 的开发者不用再熟悉其他的开发工具。在建立项目时,可以直接建立 iOS 及 Android 的项目模板。开发团队也可以将 iOS 及Android 的程序代码纳入到 ALM,使用 Team Foundation Server 进行版本及建置的管理。

确保第一时间更新:
Xamarin 对于 iOS 及 Android 的版本更新不遗余力,在 iOS SDK 5.0, 6.0 以 6.1, 都与 Apple 在同一天发表对应的 Framework 版本。7.0 也承诺会在同一天发表。而 Android 方面, Xamarin 甚至将 Android 的原始码, 从原本的 Java 改由 C#重新撰写,而且效能也得到大幅的提升。

原生的应用程序效能
Xamarin 针对iOS及Android平台开发编译程序。将C#程序代码直接编译成ARM CPU的机器码。因此效能将与原生模式开发的应用程序相比,没有不同。而在Android 系统上,由于Xamarin 不使用Android的Dalvik 虚拟机,改为采用CLR,经测试其效能更甚于原生的应用程序。

六大功能

全平台开发 Xamarin可以使用熟悉的C#来撰写iOS, Android, Mac及Windows 应用程序。
程序代码重用(Reuse) 使用您最爱的C#及.NET函式库, 轻松使用第三方的Native Library及Framework。
智能输入 开发应用程序时, 开发工具会侦测您输入的部份字母, 寻找对应的API并自动完成您的输入。
与Visual Studio 整合 在Visual Studio中建立, 建置, 除错以及部署。 还可以使用您喜爱的plug-in, 例如ReSharper. 以及与TFS整合。
原生的用户接口及效能 Xamarin 带给您高效能的体验并完整对应各个平台的Native API。因此透过Xamarin, 您所建立的应用程序可以完全发挥装置特有的性能。
UI设计 目前在Visual Studio 中已整合Android的UI设计功能, iOS的UI编辑目前仍需仰赖Xcode。 但开发团队已经着手进行开发. 一起期待吧 !

其他解决方案

下表为目前在行动平台上开发App应用程序的方法比较:

  Mobile Web Hybrid Interpreted App Cross Compiling Native App
代表性产品 HTML5/JQuery Mobile PhoneGap Titanium Xamarin Objective-C/Java
跨平台能力
使用者经验
离线能力
整合性与功能
学习门槛  

上表的开发方法中,可跨平台运作的为Mobile Web、Hybrid、Interpreted App与Cross Compiling等4种,Xamarin 是采用Cross Compiling方法。

Mobile Web方法:
为纯浏览器解决方案,无法有效发挥各行动装置与平台的功能与特性,非真正行动App应用程序开发。

Hybrid方法 :
不是采用原生的用户界面,降低用户体验,Hybrid方法使用多个平台最小共享的控件(Lowest Common Denominator)。 安全疑虑 : 由于Hybrid 方法是以前端技术为基础,因此以往会受到攻击的弱点,在转换平台至app后,仍然存在。 Hybrid 方法无法针对内存及相关系统资源做管理。 各装置的browser engine对HTML5与CSS3的支持程度不一,应用程要调整至符合大部份主流平台会有隐藏风险与成本。

Interpreted 方法 :
不是采用原生的用户界面,降低用户体验,Interpreted方法只能使用多个平台最小共享的控件(Lowest Common Denominator)。 安全疑虑 : 由于Interpreted方法是以前端技术为基础,因此以往会受到攻击的弱点,在转换平台至app后,仍然存在。 Interpreted方法无法针对内存及相关系统资源做管理。 JavaScript engine在各装置的支持程度不一。 JTitanium需要经过直译及编译2道程序,而非直接编译。

开发方法概述

常见技术问题

Q:如何安装Xamarin?
A:请查看http://thinkpower.info/xamarin/cn/Article_01.aspx?idx=01#xamarin_top

Q:如果受网络环境影响无法激活怎么办?
A:1、将电脑换到可以上网的环境,线上激活。
2、请依照各平台(Xamarin.iOS,Xamarin.Android)的方式下载离线授权文档进行离线激活。
[Android]:http://docs.xamarin.com/guides/android/getting_started/installation/offline_activation/
[iOS]:http://docs.xamarin.com/guides/ios/getting_started/installation/offline_activation/

Q:如何结合图台工具,如:ArcGIS,在图台的应用及相容性? 在apple app store上架是否百分百成功?
A:任何有提供原生API(iOS, Android)的系统, 在Xamarin都可以透过binding的方式进行整合. 请参考以下链接:
[Binding a Java Library (.jar)] http://docs.xamarin.com/guides/android/advanced_topics/java_integration_overview/binding_a_java_library_(.jar)
[Binding Objective-C] http://docs.xamarin.com/guides/ios/advanced_topics/binding_objective-c
上架成功与否在于app是否符合Apple store的 review guideline (如下面链接), 不会因为是否用Xamarin开发而有所影响. https://developer.apple.com/appstore/guidelines.html 

Q:升级问题,在什么条件下需要升级,例如IOS更新到7、8算一版的升級?还是貴公司的升级版次,如果是后者,不升级的话,IOS7、8还可以开发,只是缺一些新功能?
A:升级是以Xamarin 的版本为主, 而非iOS 或Android的版本. 当使用者的订阅到期而未续约, 则使用者可以使用最后的版本进行开发. 支援的平台以当时的Xamarin版本为主. 例如使用者合约在今年8月底到期而未续约, iOS 7 於于9月中推出, 则该使用者无法针对iOS 7 进行开发。

Q:目前是用eclipse来写Android app,对于iOS还需要再学习object-C,有Xamarin真的方便许多,Xamarin是否可以让手机无线debug?
A:请参考:
[iOS]:http://docs.xamarin.com/guides/ios/deployment,_testing,_and_metrics/debugging_in_xamarin_ios
[Android]:http://docs.xamarin.com/guides/android/deployment,_testing,_and_metrics/set_up_for_device_development

Q:我可以通过何种途径获取Xamarin体验?
A:1.参加Xamarin公开培训课程。
2.下载30天完整版测试:http://xamarin.com/download [注]Compile编译后的档案使用24 hours之后要重新编译。

Q:目前有哪些功能是Xamarin做不到的?
A:請参考:http://docs.xamarin.com/guides/ios/advanced_topics/limitations

Q:成功案例有哪些呢?
A:請参考:http://xamarin.com/apps

Q:其他说明?
A:1.用eclipse 开发的jar 档必须是要給Android 使用的, 才能夠在Xamarin进行binding.
2.搭配的Visual Studio 必須是2010/2012/2013的付费版本(Professional, Premium, Ultimate).