C# Xamarin:与本机SDK和基于JS的框架的比较
因此,使用Android和iOS提供的本机SDK进行编码的一个主要特点是,您不仅可以获得更好的性能,还可以获得每个平台的外观和感觉:例如,在iOS上,屏幕底部会有一个选项卡导航栏,而在C# Xamarin:与本机SDK和基于JS的框架的比较,c#,android,ios,xamarin.ios,C#,Android,Ios,Xamarin.ios,因此,使用Android和iOS提供的本机SDK进行编码的一个主要特点是,您不仅可以获得更好的性能,还可以获得每个平台的外观和感觉:例如,在iOS上,屏幕底部会有一个选项卡导航栏,而在Android中,它位于顶部(是的,我知道它也可以是顶部和底部,但你明白我的意思),或者导航抽屉dock是一种Android导航风格,而(据我所知)在iOS原生sdk中没有类似的功能。我的观点是,你可以通过他们的设计指南感受到平台的不同,这是一件好事,因为它让你的应用看起来很专业 因此,考虑到这一点,在性能和保持应
Android
中,它位于顶部(是的,我知道它也可以是顶部和底部,但你明白我的意思),或者导航抽屉dock是一种Android导航风格,而(据我所知)在iOS原生sdk中没有类似的功能。我的观点是,你可以通过他们的设计指南感受到平台的不同,这是一件好事,因为它让你的应用看起来很专业
因此,考虑到这一点,在性能和保持应用程序的感觉方面,使用基于JS的框架,如Titanium或PhoneGap将不是明智的选择
然后是Xamarin
。正如我在这里读到的:它似乎是本机SDK的C#
包装器,据我所知,它不应该影响性能。但是外观和感觉部分在哪里呢。既然XML布局不完全是给Android
或iOS
应用带来感觉的东西,还有导航(来自控制器类),Xamarin是如何处理这些问题的?他们的网站上说,你们可以在平台之间共享代码,但这也意味着我必须共享导航系统和类似系统吗
最后,为了“不为每个平台编写代码”,是否值得不使用本机SDK并使用Xamarin
(我在为iOS和Android编写代码方面都没有问题),或者这个框架是针对C
开发人员的,这样他们就不必学习Objective-C或Android了
任何额外的解释都将非常棒,请提前感谢。对于本机,还有更多的互联网内容、帮助和支持。这本身就帮助我做出选择。如果你真的擅长Xamerin,那么你编写的代码中可能有70%可以被两个应用程序使用,你仍然需要为每个应用程序定制一些东西 但是,对native的支持是如此广泛,以至于如果你遇到问题,其他人也会遇到 和xamerin一起祝你好运
当我说app时,我指的是iOS/Android我用Xamarin编写代码已经有一段时间了。到目前为止一切都很好。任何我遇到的问题我都能解决,因为c#是我的母语。Xamarin站点有许多示例和API参考,用于所有平台上的许多功能
祝你好运我在去年(2013年)构建了一个包含不同组件的大型应用程序:主要是一个API(ASP.NET Web API=>C#)、一个网站(ASP.NET MVC=>C#+AngularJS),以及一个Android应用程序(Xamarin.Android=>C#)和iOS应用程序(Xamarin.iOS=>C#)。使用Xamarin的决定有其优点和缺点,但总的来说,我对它非常满意 正如你在我上面的列表中所看到的,几乎所有的事情都是用C完成的(好的,这个网站主要是用JavaScript编写的;-)。这是一种非常好的成熟语言,具有非常好的特性(如LINQ)。在我的场景中,情况变得很清楚:我不必学习和完善四种语言(Swift/Objective-C、Java、C#、JavaScript),而只需要两种语言:C#和JavaScript 这一点在代码共享方面尤为重要:我们的客户端应用程序并不是真正的瘦客户端,因为一些离线功能需要大量的同步逻辑,因此这两个应用程序的UI部分只是奖牌的一个方面。事实证明,我可以在iOS和Android上使用90%的非接口代码。这是一个难以置信的巨大好处,因为它不仅与Swift/Objective-C或Java的一些语言原创有关,还与您在iOS和Android上使用的不同框架有关。使用.NETFramework或MUNO作为每个XAMARIN应用程序的基础,可以让您从底层操作系统抽象数据访问或网络通信之类的东西。 就速度和UI而言,您没有任何缺点,因为您使用的是本机API 1:1。iOS或Android上可用的任何东西也可以通过Xamarin获得。例如,每当苹果发布新版iOS时,Xamarin都会在几天内发布该版本的更新,因此你不必等待就能使用苹果新推出的功能 Xamarin使用了一种叫做“提前”的技术