了解Xamarin

Rah*_*ani 7 xamarin xamarin.forms

作为Xamarin的新手和移动应用程序开发的新成员,我对Xamarin及其工作方式有一些疑问,我无法在互联网上找到

  1. Xamarin跨平台如何实际工作?有用吗?我被告知Xamarin告诉Xamarin是一个跨平台的移动开发解决方案,但是当我开始时,我发现它实际上鼓励你为iOS和Android创建单独的项目.我知道这是为了给我们更多的力量,如果我们想要跨平台的UI,总会有Xamarin Forms.但是,在这种情况下,我希望可移植类库处理所有后端逻辑,而本机项目仅用于UI.但是当我刚开始时,用于访问移动功能的最基本的库(Xamarin.Mobile)与PCL不兼容.即使在这种情况下,PCL的用途是什么?

  2. 跨平台应用程序通常是如何在Xamarin中制作的?PCL的作用是什么?我们如何让它做跨平台的工作?

  3. 是否没有预先构建的Xamarin API可以独立完成大多数与移动相关的东西平台?似乎我们必须从nuGet下载我们想要做的每件小事的新库,这是非常痛苦的

  4. 我不想问这个.但Xamarin的唯一真正优势是我们可以用C#而不是本地语言编写代码吗?我期待的是实际的跨平台共享代码库.如果团结可以做到,为什么Xamarin不能这样做呢?

Eri*_* J. 14

作为与Xamarin(认证)合作超过2年的人,我将尝试回答您的问题:

1)Xamarin是一个.NET框架,可以编译为两个平台的本机代码.2年前,您将为您构建的每种"类型"应用程序(Android,iOS等)创建项目.在实践中,这意味着你为Android编写活动(以.NET的方式处理,但使用完全相同的本机android类型)和UIViewControllers for iOS.Xamarin.Forms已经出现了一段时间,并且是一个允许您共享UI代码和业务逻辑的解决方案.

2)根据应用程序,选择Xamarin.Forms或原生路线.如果是本机路由,您可以为每个平台创建视图(Android AXML和iOS Storyboarding).此外,还将添加包含所有业务逻辑的PCL.这样你就可以打电话了

var authResult = AuthService.Login(username,password);
var settings = SettingsService.GetUserLocalDbSettings();
Run Code Online (Sandbox Code Playgroud)

来自iOS和Android,以及记录某人的业务逻辑 - 只需编写一次.Xamarin.Forms允许您通过在Xamarin.Forms项目中构建XAML布局来共享UI.这些在任一操作系统中都会转换为正确的屏幕类型.注意:这仅适用于简单的布局(思考列表,选项卡等).复杂的布局会在表单中占用更多时间,直至您切换到本机.

3)Xamarin只是允许您为这些平台编写.NET的框架.有很多可用的插件(例如连接检查)可用.在原生项目和PCL中安装它们,您将能够检查应用程序是否具有PCL内部的连接性.Xamarin是锤子,Nuget提供钉子.

4)您可以共享大量代码(PCL).我的诚实经验是,大部分时间你都会为两个平台构建布局(视图).业务逻辑(登录,将项目保存到SQLite数据库)花费的时间最短.然而,UI /设计......需要更多的耐心.所以,您可以共享所有业务逻辑(只要使用的库尊重PCL配置文件).

5)Protip:Xamarin提供免费的大学培训,因为他们是微软的一部分.