我们有一个Android应用程序,并希望为跨平台重新创建它。
支持或反对Xamarin原生和形式的事实是什么?
本机的优点是,我们可以重用所有的xml-layout而我们必须在XAML或XIB中重新创建iOS视图?
有什么东西真的是阻挡剂吗?
答案 0 :(得分:17)
我会根据Giorgi的回答和一些实际的见解发表评论,并参考复制的要点:
这是我过去6个月收集的经验的简历:
目前表格似乎趋于稳定,我相信微软会尽力将其变成一个可靠,可靠的产品(有时候构建问题一直是个噩梦,但它已经变得更好了时间)
与WPF XAML相比,Xamarin的XAML不太发达,尽管非常相似。然而,最近的nuget更新以令人印象深刻的速率提供了镜像功能。您期望和喜爱XAML的绝大多数功能都存在。
如果您不进行研究(here),列表表现会很糟糕。性能增加了该地区的负荷。
如果我必须再次做出选择,我仍然会选择表格。虽然有时会出现一些看似有缺陷/有缺陷的事情,但您通常可以通过某种方式找到一个干净的修复方式,同时花费大部分时间来实际开发应用程序。 (有时候你仍然会发现让你皱眉的事情,为什么没有实现某些东西,比如只有在微软购买xamarin之后才实施Margin属性)
答案 1 :(得分:7)
Xamarin.Forms 最适合:
Apps that require little platform-specific functionality Apps where code sharing is more important than custom UI Developers comfortable with XAML
Xamarin.iOS& Xamarin.Android 最适合:
Apps with interactions that require native behavior Apps that use many platform-specific APIs Apps where custom UI is more important than code sharing
答案 2 :(得分:4)
Giorgis答案是正确的,但是由于你在这里添加了一些限制,我的想法。
我会分析当前的应用程序。可共享的业务逻辑代码是多少?如何定制UI,它应该看起来更原生或更相似,以及将来会如何变化?如果您计划在UI中进行大量更改,并且平台应该看起来相似,那么切换到表单可能会更容易。
还要考虑您是否打算为Windows Phone开发?如果是,您可以为第三个平台节省大量时间。
毕竟有一件事我也会记住。在Xamarin.Forms开发并不意味着,你不能开发本机。它只是一个额外的框架。在最坏的情况下,你仍然可以做本地的一切。
答案 3 :(得分:3)
我个人使用Xamarin.iOS& Xamarin.Android带有MvvmCross,这样我就可以完全控制每个平台上的本机UI,同时最大化代码重用。
答案 4 :(得分:0)
来自Xamarin网站(谁知道比他们更好?):
Xamarin.Forms最适用于: 数据输入应用 原型和概念证明 需要很少平台特定功能的应用程序 代码共享比自定义UI更重要的应用
[https://developer.xamarin.com/guides/xamarin-forms/]
使用Xamarin.Forms 在运行时,每个页面及其控件都映射到特定于平台的本机用户界面元素。 使用Native Xamarin.Android和Xamarin.iOS应用程序利用特定于平台的硬件加速,并针对本机性能进行编译。使用在运行时解释代码的解决方案无法实现这一点。
“Xamarin.iOS - 构建原生iOS应用的最佳方式。”
- 在App Store上发送本机应用程序包。我们的Ahead-of-Time(AOT)编译器将Xamarin.iOS应用程序直接编译为本机ARM程序集 代码,意味着您的应用程序是本机平台二进制文件。
- 访问任何iOS API。我们将100%Apple的iOS SDK带到C#,增强了具有更强类型和.NET命名的Objective-C API 惯例让你感到宾至如归。
- 从C#调用现有的Objective-C代码。在Xamarin应用程序中使用现有的Objective-C代码,框架和自定义控件 使用我们的自动绑定生成器。
- 构建WatchKit应用程序。使用Xamarin Studio或Visual Studio构建新的Watch应用程序,在iOS Designer中编辑Watch用户界面,以及 debug在iOS模拟器中观看应用程序。
- 与Apple保持同步。我们为iOS 5,iOS 6,iOS 7和iOS 8发布了当天支持,以便您的应用可以充分利用 最新的iOS功能尽快。
[https://www.xamarin.com/platform]
“Xamarin.Android - 构建原生Android应用的最佳方式。”
- 发送原生Android软件包。 Xamarin.Android使用即时编译来进行应用程序的复杂运行时优化 性能,这意味着您的应用是原生Android APK。
- 访问任何Android API,包括新的外形。我们将100%的Google Android API引入C#,通过异步支持增强Java API 和.NET命名约定让你感到宾至如归。
- 从C#调用现有的Java代码。使用我们的Xamarin应用程序中的现有Java代码,框架和自定义控件 自动绑定生成器。
- 构建Android Wear应用。通过访问Android Wear的100%API支持,创建能够运行的全功能应用程序 Android Wear设备。与Android保持同步。 Xamarin停留 与Google最新的API保持同步,因此始终可以 在您的应用中使用最新功能。