【问题标题】:What are diffs between iOS App (Xamarin) vs. iOS XAML App (Xamarin.Forms) vs. Cross-PlatformiOS 应用程序 (Xamarin) 与 iOS XAML 应用程序 (Xamarin.Forms) 与跨平台之间有什么区别
【发布时间】:2018-10-18 22:04:56
【问题描述】:

这些 Visual Studio 2017 新项目选项有什么区别?
文件 > 新建 > 项目 > Visual C# > …
选项 1. > 支持 iOS、Android 等的跨平台
选项 2. > iOS 扩展
选项 3. > iPhone 和 iPad > iOS 应用程序 (Xamarin)
选项 4. iOS XAML 应用程序 (Xamarin.Forms)

我想在 iPad 上制作一个应用程序,通过一个插座显示来自远程 USB 摄像头的实时图像。稍后也可以在 iPhone、Android 和 Windows 10 上运行。

【问题讨论】:

    标签: c# ios xamarin xamarin.forms


    【解决方案1】:

    选项1. > 支持iOS、Android等跨平台

    创建一个跨平台的Xamarin.Forms (XF) 解决方案,其中包含支持 iOS、Android 和 UWP 的项目以及一个保存所有共享代码的项目,这可能是所有代码,具体取决于您的需要。

    使用 XF,您的所有或大部分后端和前端代码都可以放在一个共享库项目中,该项目也是在您创建此模板解决方案时创建的。

    在共享库项目中,您将可以访问跨平台抽象控件和视图,如 Label、Button、Image、ListView 和大多数其他标准用户控件/视图,以及 .NET Standard 2.0 中的所有 API。这些 Xamarin.Forms 控件/视图将由平台特定的渲染器在每个平台上呈现,即 XF 按钮将在 iOS 上呈现为 UIButton,在 Android 上呈现为 Android 按钮等。

    根据您的需要,您可能仍需要向您的 iOS、Android 或 UWP 项目添加一些特定于平台的代码,以制作您自己的自定义渲染器以将 XF 控件/视图渲染到您选择的本机控件/视图,或者共享的抽象 XF 控件中不可用的访问控制属性,或运行其他特定于平台的代码,例如将文本转换为语音,这在每个平台上都不同。 Xamarin.Forms 确实提供了编写平台特定代码的方法,然后可以从共享代码项目中调用这些代码,还提供了一种制作您自己的自定义控件/视图呈现器的方法。

    选项 2. > iOS 扩展

    这些是对 iOS 应用项目的补充。通过这些项目,您可以创建可在 iOS iMessage 应用程序或 iOS 共享菜单中使用的 iOS 扩展。

    选项 3. > iPhone 和 iPad > iOS 应用程序 (Xamarin)

    这是使用 Xamarin.iOS 开发一个仅限 iOS 的应用程序项目。 Xamarin.iOS 是与本机 iOS SDK 的 C# 绑定,因此可以在 XCode 中使用 Obj-C 或 Swift 完成的任何事情都可以使用 Xamarin.iOS 在 C# 中完成。

    选项 4.iOS XAML 应用程序 (Xamarin.Forms)

    这个和上面的OPTION 1一样,只是默认只创建了核心共享项目和iOS项目。您可以稍后添加一个 Android 和 UWP 项目,但如果您确实计划在未来支持所有三个平台,您不妨使用选项一作为起点。

    【讨论】:

      【解决方案2】:

      Xamarin Forms 是一次编写多次部署的选项。您在 Forms 中编写代码并制作 UI,它将在 iOS、Android 和 Windows(ish) 上运行

      iOS (Xamarin) 是本机 iOS 应用程序,但使用 C# 编写,Xamarin 编译为本机 iOS。如果您想要 Android,则必须在 Xamarin (Android) 中重写。

      使用其中一个的原因有很多,这超出了 SO 的范围,但在 Xamarin 站点和其他地方有一些不错的文章。

      https://docs.microsoft.com/en-us/xamarin/xamarin-forms/get-started/introduction-to-xamarin-forms

      https://arctouch.com/blog/xamarin-forms-xamarin-native/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-13
        • 2018-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 1970-01-01
        相关资源
        最近更新 更多