Xamarin.Forms 和 Xamarin Native 有什么区别?
What is the difference between Xamarin.Forms and Xamarin Native?
我对 Xamarin.Forms 和 Xamarin native 感到困惑。
两者有什么区别?
那么使用 Xamarin.Forms 而不是 Xamarin Native 的技术优势和劣势是什么?
Xamarin.Forms 最适合:
- 数据录入应用程序
- 原型和概念验证
- 几乎不需要平台特定功能的应用程序
- 代码共享比自定义更重要的应用程序 UI
Xamarin.iOS & Xamarin.Android 最适合:
需要专门交互的应用程序
设计精美的应用程序
使用许多特定于平台的 API 的应用程序
自定义 UI 比代码共享更重要的应用程序
Xamarin.Forms
优点
- 为所有平台创建一个UI
- 使用所有平台上可用的基本组件(如按钮、文本字段、微调器等)
- 无需学习所有原生 UI 框架
- 快速的跨平台开发过程
- 自定义本机渲染器使您能够调整控件的外观和感觉
缺点
- 它仍然是一个新框架,仍然包含错误
- 特别是WindowsRT还不稳定
- 有时比直接访问本机控件慢
- 自定义本机渲染器有边界并且记录很少
Xamarin.Android,Xamarin.iOS,WindowsPhone,WindowsRT
优点
- 每个平台创建一个 UI
- 轻松调整特定于平台的 UI 功能和组件
- 充分利用你的 UI
缺点
- 跨平台开发过程要慢得多
- 您需要学习所有原生 UI 框架
- 您可能会导致重复代码(正如您在三种不同平台特定方式中描述的几乎相同UI)
除了 Xamarin 在 https://xamarin.com/forms 上所说的:
哪种 Xamarin 方法最适合您的应用程序?
Xamarin.Forms 最适合:
- 数据录入应用程序
- 原型和概念验证
- 几乎不需要平台特定功能的应用程序
- 代码共享比自定义更重要的应用程序 UI
Xamarin.iOS & Xamarin.Android 最适合:
- 需要专门交互的应用程序
- 设计精美的应用程序
- 使用许多特定于平台的 API 的应用程序
- 自定义 UI 比代码共享更重要的应用程序
除了 Xamarin 网站中显示的 points,您还应该考虑:
你的团队背景
您团队中的任何人以前是否有过为 Android 或 iOS(使用 Java 或 Obj-C/Swift)进行本地编码的经验?这种经验在本机 Xamarin 中得到重用,但他们必须学习另一个平台才能在 Forms 中编码。
如果他们对iOS/Android一无所知但知道一些XAML,情况也是如此。当然 Xamarin.Forms 与 WPF/Silverlight 不同,但了解 XAML 确实帮助了我使用 Forms。
性能
Xamarin Forms 仍然存在一些问题,例如初始化时间。您应该考虑这是否会对您的最终用户造成问题。我不会费心等待一段时间才能打开我偶尔使用的仪表板应用程序,但如果消息传递应用程序发生同样的事情,我会很生气。
交货时间
由于使用 Forms 时代码共享更大,因此您可能期望更快的交付时间。
您的应用程序的复杂性
考虑到前一点,使用 Forms 您可能会偶然发现一些显示停止程序错误(毕竟这是一项非常新的技术),这将使时间收益无效。选择之前请考虑您的应用程序的复杂性。
我对 Xamarin.Forms 和 Xamarin native 感到困惑。
两者有什么区别?
那么使用 Xamarin.Forms 而不是 Xamarin Native 的技术优势和劣势是什么?
Xamarin.Forms 最适合:
- 数据录入应用程序
- 原型和概念验证
- 几乎不需要平台特定功能的应用程序
- 代码共享比自定义更重要的应用程序 UI
Xamarin.iOS & Xamarin.Android 最适合:
需要专门交互的应用程序
设计精美的应用程序
使用许多特定于平台的 API 的应用程序
自定义 UI 比代码共享更重要的应用程序
Xamarin.Forms
优点
- 为所有平台创建一个UI
- 使用所有平台上可用的基本组件(如按钮、文本字段、微调器等)
- 无需学习所有原生 UI 框架
- 快速的跨平台开发过程
- 自定义本机渲染器使您能够调整控件的外观和感觉
缺点
- 它仍然是一个新框架,仍然包含错误
- 特别是WindowsRT还不稳定
- 有时比直接访问本机控件慢
- 自定义本机渲染器有边界并且记录很少
Xamarin.Android,Xamarin.iOS,WindowsPhone,WindowsRT
优点
- 每个平台创建一个 UI
- 轻松调整特定于平台的 UI 功能和组件
- 充分利用你的 UI
缺点
- 跨平台开发过程要慢得多
- 您需要学习所有原生 UI 框架
- 您可能会导致重复代码(正如您在三种不同平台特定方式中描述的几乎相同UI)
除了 Xamarin 在 https://xamarin.com/forms 上所说的:
哪种 Xamarin 方法最适合您的应用程序?
Xamarin.Forms 最适合:
- 数据录入应用程序
- 原型和概念验证
- 几乎不需要平台特定功能的应用程序
- 代码共享比自定义更重要的应用程序 UI
Xamarin.iOS & Xamarin.Android 最适合:
- 需要专门交互的应用程序
- 设计精美的应用程序
- 使用许多特定于平台的 API 的应用程序
- 自定义 UI 比代码共享更重要的应用程序
除了 Xamarin 网站中显示的 points,您还应该考虑:
你的团队背景
您团队中的任何人以前是否有过为 Android 或 iOS(使用 Java 或 Obj-C/Swift)进行本地编码的经验?这种经验在本机 Xamarin 中得到重用,但他们必须学习另一个平台才能在 Forms 中编码。
如果他们对iOS/Android一无所知但知道一些XAML,情况也是如此。当然 Xamarin.Forms 与 WPF/Silverlight 不同,但了解 XAML 确实帮助了我使用 Forms。
性能
Xamarin Forms 仍然存在一些问题,例如初始化时间。您应该考虑这是否会对您的最终用户造成问题。我不会费心等待一段时间才能打开我偶尔使用的仪表板应用程序,但如果消息传递应用程序发生同样的事情,我会很生气。
交货时间
由于使用 Forms 时代码共享更大,因此您可能期望更快的交付时间。
您的应用程序的复杂性
考虑到前一点,使用 Forms 您可能会偶然发现一些显示停止程序错误(毕竟这是一项非常新的技术),这将使时间收益无效。选择之前请考虑您的应用程序的复杂性。