【技术牛人】两年以上的Xamarin经验谈

Christian Helle谈论他使用Xamarin两年的经历以及他对Xamarin具体的想法。

我已经沉默了两年,因为我基本上无所事事只做了基于Xamarin的开发研究。在这段时间里,我已经完全参与到创建我在日常生活中实际使用的音乐应用程序上面。

【技术牛人】两年以上的Xamarin经验谈

当然,Xamarin Studio有它的起起落落,有时它只是不想合作。每一次新的“稳定”版本发布,我都需要确保我只在非繁忙的日子更新,因为如果我安装一个重大更新或只是简单的更新,我就会面临失去所有的生产力的风险。一些更新有很大的突破性!

一些重大更新是次要的,很容易解决,但有些围绕这个问题的工作是相当复杂的。我记得有一次,由于命令行生成工具不知怎么的过时了,它建议我们从MDTool移动到XBuild,我们所创建的失败了。虽然该变化听起来微不足道,但它花费了我一整天的工作以更新所有我们生成的脚本和双倍检查每一个构建配置,看看他们是否像应该在我们建立的服务器上那样工作。

除了全职为音乐服务公司做只做了基于Xamarin开发,我也做了一些其他项目。对于这些项目,我使用Xamarin Forms,因为它显示了许许多多的承诺。早期的版本是可怕的,但他们最终变得更好了。

【技术牛人】两年以上的Xamarin经验谈

对于简单的用户界面需求,它是绝对完美的。利用Xamarin.Forms你可以创建一个跨平台的用户界面,你只需用XAML或代码进行一次编写(我会选择用C #)。在Xamarin. Forms你可以利用共享的UI工具,这样你只需要写一次UI代码然后将它原生渲染在iOS、Android和Windows Phone上,或者,你可以创建自定义的渲染器,让你完全控制使用你选定实施控制或整个屏幕的平台的API。当你最终使用自定义渲染器,Xamarin. Forms就会开始对你试图建立的应用程序干预越来越少,但是对于业务线应用程序来说,它是完美的。我可以看到Xamarin.Forms美好的前景。

了解和理解平台总是比依靠跨平台工具更好。在我的整个职业生涯中我一直在做多平台解决方案,我获得的经验对我来说是一个很大的优势,因为我明白了很多东西是如何工作的,还有API为什么要做他们所做的。

跨平台问题的一个很好的例子是与Bitmaps协作。简言之,一个位图是一个包含Red-Blue-Green-Alpha像素信息的32位整数数组。如果你做跨平台开发和图像处理,你将需要确保像素信息字节的顺序是一致的,才能使你所用的算法在所有针对性的平台上有效。这可能会对一些人来说是一个惊喜,但像素信息为每个平台的位图的API的存储方式是不同的,例如,IOS使用Red-Blue-Green-Alpha,Android使用Alpha-Red-Blue-Green,Windows使用Blue-Green-Red-Alpha。所有这些平台的API允许你检索像素缓冲器(32位整数数组)在一次调用中避免调用缓慢API,像GetPixel(x,y)数百甚至数千倍。

为了让事情更有趣,Xamarin.Forms.Color结构有一个静态的辅助方法称为FromUint(unit argb),但文件(在编写的时候)介绍的方法用请求的RGBA值返回一种新的颜色,方法的参数被描述为一个单元,代表颜色的ARGB值,返回值被描述为一个RGBA颜色。这有点混乱!最终,Xamarin将纠正这些小细节或开发者将不得不和它们在一起。

我刚刚结束了一个项目,并可能在一段时间不会再接任何新的项目,所以我可以花更多的时间学习很棒的新东西,或在某些情况下,了解很酷的旧东西。我有一些爱好的项目,我一直打算开源一段时间,所以我可能会去完成这些,最后发布出来。我在一些开源项目上有一些成绩,比如SQL Compact Query Analyzer(50K下载)、SQL Compact Code Generator(15K下载)、ResW File Code Generator(4K下载),所有这些都有非常建设性和积极的评论。我一直很喜欢创建开发工具,我希望在不久的将来能够开发出更多好东西。

 

PS: 关于移动开发,这些产品你可以关注>>
关于移动开发的最新资讯和产品推荐,请<咨询在线客服>!

标签:移动开发AndroidiOS开源WindowsPhoneVisualStudioC#Xamarin

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年8月10日
下一篇 2016年8月10日

相关推荐

发表回复

登录后才能评论