对于任何一个人,学习一项新技术或者新模式,总会遇到一些曲线,多年来,我一直站在产品的门槛上,凝视着那条曲线,以确定它到底有多陡峭,直到我确定生成它需要多长时间。现在,作为Xamarin.Forms的项目管理者,我收集并收到初学者的大量反馈,站在能够提供帮助的位置。
我策划的一些重要的资源,让你的曲线,从我们的文档指南到Xamarin大学培训材料,博文以及其他的更多资源。不管你是Xamarin.Forms的初学者还是有经验的用户,我想你都能从下面得到一些帮助。
快速索引
Giddyup: 先决条件
我需要安装什么?
移动开发在开始开发之前需要准备更多的东西,包括移动平台SDK,一个集成开发环境,仿真器组合,模拟器和设备。这些指南会让你快速地前进:
也可以从Xamarin大学检出自我指导课件,Xamarin入门 [XAM101].
简化iOS开发
我们在Xamarin在线播放器(当前是预览2)一节努力的介绍了简化iOS开发。Xamarin在线语序你使用Visual Studio 2017编写代码,并可以通过在设备上访问Xamarin在线播放器应用立即看到你的应用程序。
当你准备好编译和发布你的iOS应用是,或者增长Xamarin在线播放器的能力,你可以连接上你的Mac并使用Windows下的远程iOS模拟器。
常见的第一个问题
我如何从一个屏幕导航到另一个屏幕?
Xamarin.Forms屏幕叫做也,是基于ContentPage类。 Xamarin.Forms遵循堆栈概念,你从堆栈中弹出或者推进。在你做它之前,你需要导航到一个堆栈。介绍一个最简单的方式是使用NavigationPage启动你的应用程序。
现在,通过ContentPage,你可以简单的使用Navigation服务,压入一个新的页面到导航堆栈中:
MainPage = new NavigationPage( new FirstPage() );
await Navigation.PushAsync( new SecondPage() );
关于导航的更多信息,可以访问指导。
H我如何布局我的内容?
Xamarin.Forms支持几种布局模式, 包括Grid,StackLayout,,AbsoluteLayout和RelativeLayout。我建议你学习并喜爱上Grid,这是目前最灵活和高性能的选项。
对于高度优化的布局,访问创建一个自定义布局,在这里你可以精确的控制方面的措施和无效循环。
从Xamarin大学检出自学指导内容,Xamarin.Forms布局[XAM135].
我怎么看到我的设计?
你有几个选择。Xamarin 在线播放时越来越好了,它可以在文本编辑器中在线编辑XAML并且看到实际的渲染效果。小提示:使用想Reflector这样的工具来在你的开发机上监视你的设备。
我们的设计师团队也在改善Xamarin.Forms预览器。
我到哪里查找 _____控件?
Xamarin.Forms 提供了跨越目标平台的一些本地UI控件的实现。这个抽象的概念变得清晰,当你看到Xamarin.Forms渲染到本地控件的映射时。
还在看吗?Xamarin具有巨大的生态系统的第三方和社区控制的补充和扩展平台。花一些时间在你喜欢的搜索引擎,GitHub和在NuGet上查找。
超越基础
我如何自定义控件?
在Xamarin.Forms控件提供了基本自定义的可能性,我们提供了在你“撞墙”的时候的们,你有一些选择:
平台特性
但你仅仅需要自定义一个指定平台的控件时,你可以实现Platform特性。一个很好的例子是调整进入安装控件宽度的字体大小。
影响
Effects是非常有效的,当你需要在每个平台添加一个自定义控件时,这对于跨平台控件可能是有用的,当您只需要修改一个当前未在控件抽象中公开的属性时。一些普通的例子是添加阴影或者是Xamarin.Forms社区工具箱中的一个,我经常用来移除入口的边框。
注册在线的Xamarin大学课程,在Xamarin.Forms中使用Effects [XAM330]以便了解更多。
自定义渲染器
创建一个自定义渲染器给你的设计和行为的本地平台控制更多的控制。指导演示如何创建一个简单的自定义输入输出。
在你想要实现一个在当前Xamarin.Forms中可能不存在的控件时,你可能会使用自定义渲染器,比如浮动操作按钮。Xamarin大学覆盖额这个话题,同时,对于场景如互动图,
自定义绘图表面,以及更多信息都可以从Xamarin.Forms渲染器[XAM335]了解到。
我如何使用自定义字体?
虽然Xamarin.Forms使得很多跨平台发展顺利,也包含设置字体属性, 自定义字体 需要更多的关注。
我们在我们的天气演示应用程序使用一个自定义的图标字体,天气图标。一旦你已经正确设置在平台项目的字体,在XAML中使用字体将变得很简单。
我把我的照片在哪里?
相对于字体,管理图像需要更多的努力。这部分是由于每个平台处理图像的方式不同,与各种尺寸和密度都需要或支持。指导手册 将向你展示发现图像和怎么加载图像的一些技能。当你把它们放到正确的地方,引用这些是简单的。平台将找到的图像和设备提供适当的密度。
我如何在本地存储数据?
每个平台都有一个存储API暴露给Xamarin.Forms来访问Application.Current.Properties。对于存储简单数据,这个API是非常好的。
当你的存储需要变得负责是,你需要浏览一些选项,比如sqlite,Azure Mobile Apps,Realm + Azure,或者一些其他可用的选项。
我从哪里开始推送通知?
Azure移动应用对于Xamarin.Forms应用是一个不错的选择。Azure文档网站包含了在你的应用中启用消息推送的文章。
其他一些服务,比如Urban Airship提供了Xamarin应用组件,来启用它们的API。
我如何使用 ______ 服务认证?
这是相当依赖的服务是什么,但总的来说我建议开始使用服务的组件是否公开认证的API。在使用查找Xamarin.Auth具有内置验证器为Google, Microsoft, Facebook, 以及Twitter。我也使用它来验证Strava oAuth服务。
我如何检查我的应用UI树?
为此目的,Visual Studio企业许可包含了访问Xamarin检查工具!而这是我们最喜欢的,我们使用的清晰,还有其他的商业和开源项目有检查移动应用程序。
加分:额外的“东西”
- 检查连接的是你可能会烤到每一个移动应用程序,因此检出连接插件。
- 有很多好的插件可以让跨平台的开发更容易。检出列表并浏览NuGet和GitHub以发现更多插件。
- 我喜欢推动并分享有用的资源,也可以访问Xamarin大学讲师博客Xamarin工具和资源。
- 我们的性能能指导是“推荐强制性”阅读。
得到的编码
我希望你发现一些技巧,有助于你,我鼓励你分享你自己的发现,当你开始旅程。如果你碰巧推了什么东西,请告诉我这样我就可以把它添加到我的列表,有助于与他人分享。