[Xamarin]我的Xamarin填坑之旅(一)

      一想到明天是星期五,不对,是今天,心里就很激动,毕竟明天没课。激动之余,来写一篇博客,记录一下最近踏坑Xamarin开发校园助手APP的一些事儿。也许更像是一篇流水账。

      在扯Xamarin之前,有必要先交代一下背景。

  自从我上大学以来,一直在做校园助手,直到现在。完成一个优秀的校园助手,是我大学中为数不多的几个梦想之一。想要制作一款软件,就必须要选择一种合适的语言或平台,喜爱微软的我,选择了C# via .Net。在匆匆了解了C#的基础后,便开始尝试使用WPF做一些简单的东西。然后这个时候的境界就停留在拖控件,不过好在也用拖控件的方式完成了一款Win32平台上的校园WIFI助手,结构简单,功能简单。当然此间接触了一些HTTP协议的基础知识。后来入手微软的Windows Phone手机,于是生出了在WP上开发校园WIFI助手的想法,有想法就有行动,不久后,成功完成了一个简易助手,叫《工大WIFI助手》,发布在了Windows商店。众所周知,无论是WinRT,SilverLight还是WP开发,他们的技术体系基本是相通的,都源于WPF,拥有熟悉的依赖属性,数据绑定,XAML等。针对这些内容的学习,为以后做UWP开发做了一些铺垫。

  早在14年10月初,微软就开始了Windows Insider计划,我也加入了其中。对,我不只希望做一名Insider,更希望做一个懂开发的Insider。也就在15年初的时候,微软的Windows10开发已经在整个微软圈子里面开始火了起来,许多以前的WP开发者也都来踩坑。我也正式在这个时候开始学习UWP开发。同样的,UWP开发也有纯正的WPF血统,入门还算顺利。在随后的UWP学习和开发中,对XAML,数据绑定,依赖属性等概念又有了深一步的认识。在15年后半段,我第一个像样的校园助手《工大助手》初版正式完成具备了一些基础的查询功能。后来又陆陆续续修改,添加了一些新的东西。期间也对基本学习到了UWP平台的东西有了更多一步的认识。直到后来。

  后来Xamarin来了。

  在我的950XL频繁罢工后,我意识到信仰和生活是有差距的,于是我入手了第一台自己的安卓设备——小米5。很自然的,遇到了一个现实的问题:在我的大学里,并没有一款像样的安卓版校园助手。怎么办呢?自己来做。其实决定做安卓版的《工大助手》,有一个重要的原因是我被Xamarin这个技术吸引了。这个时候Xamarin开发在跨平台开发领域愈发火热,包括微软收购Xamarin并且宣布Xamarin免费。我一个.net系的伪程序员,在对Java无感,而又不想深入学习安卓的情况下,Xamarin成我了我的理想工具。在Xamarin.Forms中,我可以用熟悉的Xaml、喜爱的C#来开发安卓和IOS应用,简直太完美了。说干就干,我开始正式踩坑。

       用Xamarin.Forms开发的好处在于它的逻辑代码全部采用C#编写,不用去学习IOS和安卓的细节知识,而且有比较完善的MVVM框架可用。在我之前的UWP校园助手项目中,我使用了MVVM开发模式,所以从UWP项目到Xamarin.Forms项目,在一定程度上就等价于更换掉MVVM的View层。代码的复用率达到了70%左右。虽是恰巧,可细想也是必然。于是我断断续续用了一周的时间,把《工大助手》成功用Xamarin.Forms重写了,并且发布了可用的APK。值得一提的是,我在此期间对Android的了解基本为0,一切工作都是Xamarin替我完成的。

      


  在实际的开发中,大问题没有,小问题却也不断。按照整个流程,大致理了理。

  第一步是环境的安装:

  Xamarin开发工具既可以用Xamarin for VS,也可以用Xamarin Studio。本着对VS比较熟悉和喜爱,我选择了用VS。安装VS2015的时候,可以选择添加Xamarin工具。安装过程其实说复杂也不复杂,大家虽然很多人遇到问题,但问题莫过于无法安装安卓相关的一些工具和SDK,解决办法也很简单,找个好点的梯子,所有问题都没有了。值得一提的时候,就在我写这篇博客的当天2016.12.08,谷歌在大陆的开发者网站上线了,地址是https://developers.google.cn/,此处应该有掌声

  第二步是建立项目:

  在VS中可以选择Cross-Platform——Xamarn.Forms相关的模板建立项目,一般项目分为Portable和Shared两种方式,这个要根据需求选择,但一般选择Portable也没问题。在MVVM框架的选择中,我纠结了好久,最后选择了微软自家Prism框架,它提供了对Xamarin的良好支持,自带一个项目模板,可以直接在新建项目的时候选择该模板建立Xamarin.Forms项目,它会为我们自动搭建好一个MVVM的框架,使我们专注于自己的核心业务逻辑。至于该框架的介绍对比,博客园中有大神已经写博分析过了。

 

  以上两步虽然简单,但是确实我们开发Xamarin的基础和敲门砖。在这儿引用博客园大神的相关文章:

  老司机学新平台 - Xamarin开发环境及开发框架初探http://www.cnblogs.com/teddyma/p/xamarin_perfect_dev_env_and_frameworks.html

  老司机学新平台 - Xamarin Forms开发框架二探 (Prism vs MvvmCross)http://www.cnblogs.com/teddyma/p/xamarin_dev_framework_research_2.html

 

  电脑快没电了,所以这是一个连载系列……

posted @ 2016-12-09 01:27  DemoApp  阅读(1747)  评论(6编辑  收藏  举报