android - Xamarin 是一个很好的跨平台库,可以从 Android 开始,然后再转向 iOS

标签 android ios cordova xamarin cross-platform

<分区>


想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它.

关闭 7 年前

我正在寻找一个跨平台库,但由于我目前无法访问 Mac,这让事情变得有点复杂。

计划是从 Android 版本开始,然后在我可以访问 Mac 时实现 iOS 版本(我有一个 Hackintosh,但它非常慢,有时可能需要几个小时才能获得它才能正确启动)。 我一直在研究 Xamarin,因为我通常使用 .NET C#。 据我所知,Xamarin 将在平台之间共享大部分业务逻辑,但 UI 必须单独完成。我认为这对我的目的来说听起来不错?与 Phonegap 相比具有更好的性能也非常好,因为随着时间的推移,该应用的复杂性可能会增加很多。

这种方法是否有任何限制因素,或者是否有其他库更适合这种方法?目标是在将代码移到 Mac 上完成之前在 Windows 上完成尽可能多的必要工作。万一我无法使用 Mac,我将不得不使用 Hackintosh,因此无需进行比绝对最小值更多的编码,这将是非常好的。

最佳答案

看看 Xamarin.Forms http://xamarin.com/forms

如果您不使用特定于平台的代码(自定义渲染器等),您不仅可以共享逻辑,还可以共享 UI 代码。优点是您正在使用 .NET 方式(XAML、绑定(bind)等)做很多事情

简短示例:

using Xamarin.Forms;

var profilePage = new ContentPage {
    Title = "Profile",
    Icon = "Profile.png",
    Content = new StackLayout {
        Spacing = 20, Padding = 50,
        VerticalOptions = LayoutOptions.Center,
        Children = {
            new Entry { Placeholder = "Username" },
            new Entry { Placeholder = "Password", IsPassword = true },
            new Button {
                Text = "Login",
                TextColor = Color.White,
                BackgroundColor = Color.FromHex("77D065") }}}
};

var settingsPage = new ContentPage {
    Title = "Settings",
    Icon = "Settings.png",
    (...)
};

var mainPage = new TabbedPage { Children = { profilePage, settingsPage } };

App on every mobile platform

关于android - Xamarin 是一个很好的跨平台库,可以从 Android 开始,然后再转向 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31141668/

上一篇:JavaScript - 用两根或更多手指滚动

下一篇:ios - UIPageViewController 在旋转时不调整其 subview Controller 的大小

相关文章:

ios - 如何将 View 从 XIB 文件移动到 Xcode 项目中的 Storyboard ?

ios - Corebluetooth 读取特性值变化

javascript - PhoneGap/Cordova "click"在浏览器中工作,但不在 Developer App 上工作?

android - 检查服务是否正在从广播接收器运行

java - 安卓/Java : how to define a specific class usable in an xml layout file?

java - 安卓应用崩溃报告

android - ionic 1 : Problems building app to versions previous to android 6

java - 如何知道在 Google Maps v2 for Android 上点击了哪个标记?

ios - MvvmCross 6.0 - TipCalc iOS 示例 - 无法正常工作

javascript - 如何处理 AngularJS 服务中的回调