使用Visual Studio进行跨平台移动应用开发的缺点

4

微软推出了全新的Visual Studio,可以开发适用于Android、iOS和Windows多平台应用程序。

对于开发人员来说,这是一个非常好的消息,因为这样一家大型可靠的公司推出了这样的产品,可以让他们的工作变得更加轻松。

但是,正如你所知道的,当你获得优势时总会有劣势存在。因此我想知道:

1)使用这种工具开发跨平台应用程序与为每个平台开发本地应用程序之间有什么区别?与分别使用Objective-C或Java开发iOS和Android相比,有何不利之处?

2)在不同的操作系统上运行开发的应用程序是否需要依赖关系?例如.NET框架之类的东西?

3)使用这种工具会有性能成本吗?还是像本地应用程序一样工作?

4)这种工具适合开发哪些类型的应用程序?

1个回答

13
在我看来,使用XAMARIN开发Android或iOS应用程序并不是一个好主意。首先会出现性能问题。您无法像本地应用程序一样实现性能。
Xamarin将C#编译为本机代码,但仍然依赖于Mono运行时来完成大部分工作,存在一些依赖关系。
本地应用程序没有欺骗——这是本地的。但是有一个开销,它不像ObjectiveC本地那样。应用程序将变得更大——当您试图从非常受限的资源移动设备中获得最大效果时,这些细微的问题很重要。
您仍然需要Mac才能使用iOS:-)
更好的应用程序模式(如MVC或MVVM)非常重要,因为用户界面仍然是本地的。使用Xamarin可以编写约70%的可重用代码,但是取决于您的应用程序设计和性质,剩下的30%或更多必须是本地的。
总的来说,在我的经验中,我更容易找到本地支持和代码示例,而不是Xamarin。
就像我说的,即使您使用Xamarin,您仍然需要了解ObjectiveC和Java。
Visual Studio + Xamarin = $$$$。 而且,尽管Xamarin开发的产品比HTML5和打包的HTML5优越,但成本会更高。 您必须评估您的需求是否值得这样的成本。
然而,在实际应用中,我认为它并不是非常有用。考虑这个问题...如果您正在使用C#编码,则必须将此代码转换为Objective-C或Java,并且该转换取决于Xamarin SDK。如果Apple在明天的iOS下一个版本中发布了4,000个新API,那么在Xamarin API允许您调用这些本地API之前需要等多久?如果添加Java,则乘以二。如果您不能等待,那么您可以在C#中编写您能够的代码,然后为其余部分编写原生代码,但现在您需要支持三个代码库,并且Xamarin的优势也随之消失。
我提供了一些关于这个话题的辩论链接。

http://willowtreeapps.com/blog/xamarin-or-native-development-tools-for-ios-android-projects/

安卓 Xamarin 限制

https://developer.xamarin.com/guides/android/advanced_topics/limitations/

https://www.linkedin.com/grp/post/121874-5848849341191569409

https://www.quora.com/Why-would-people-build-native-mobile-applications-for-Android-iOS-using-Java-Objective-C-when-they-could-use-Xamarin-C-for-all-platforms-if-license-cost-isnt-an-issue

为什么我不推荐使用Xamarin进行移动开发


2
这听起来有点抱怨,并且在某种程度上会对Xamarin产生偏见。 - t0mm13b

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接