说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

【MDCC 2014】Xamarin深入体验营——开发实战大揭秘

HTML文档下载 WORD文档下载 PDF文档下载
Xamarin最早是由Mono演变而来,其跨平台和支持代码复用的特性受到了开发者的关注。MDCC 2014第一天,来自中国台湾的林泰宏与大家分享了Xamarin实践操作方面的干货,并现场解答大家的疑问,受到了开发者的好评。

一年一度的移动开发者盛宴——2014移动开发者大会(简称 MDCC 2014 )于10月31日至11月2日在北京新云南皇冠假日酒店隆重召开。MDCC是由CSDN和创新工场联合主办的中国最大的移动开发者盛会,致力于推动中国移动互联网生态系统的成长,今年迎来第五届。

Xamarin最早是由Mono演变而来,原本是在Linux上执行C#程序的一个开源项目。后来陆续推出了支持iOS的Mono Touch Framework和支持Android的Mono For Android Framework。Xamarin是Mono项目的一个分支,它与Mono最大的区别在于,Xamarin是一个商业项目,并且目前已实现Android、iOS、Windows 8等主流平台的跨平台支持,并可重用90%以上的代码。

MDCC 2014第一天,Xamarin深入体验营受到了开发者的青睐。上午9:10分体验营正式开始,来自中国台湾的昕力信息资深顾问林泰宏为开发者准备了内容丰富的议题,几乎囊括了从理论到实操,与Xamarin开发相关的方方面面。其中包括:

  • Xamarin开发前准备;
  • Xamarin. iOS布局设计及基础控件;
  • Xamarin. iOS多页面巡览;
  • Xamarin. Android布局设计及基础控件;
  • Xamarin. Android多页面巡览;
  • Xamarin. Android基础控件;
  • Xamarin. iOS列表及数据库操作;
  • Xamarin. Android列表及数据库操作;
  • IOS、Android消息推送。
  • 原生类库绑定(极光推送、百度地图、支付宝、微信分享);
  • 跨平台开发(PCL、Xamarin.Forms)。




首先,林泰宏谈到了Xamarin的特性,林泰宏坦言:“Xamarin适合原本就做C#的开发团队,最大的优点就是跨平台及业务逻辑代码和算法可以共用。”不仅如此,Xamarin的特性还包括:

·快速建立原生移动设备应用程序。通过C#亲和且功能齐全的语言特性,搭配.NET Framework的Base Class Library的便利性,让开发人员以最高的生产力开发移动应用。

·程序代码共用。Xamarin采用C#编写,可以在不同平台之间共用商业逻辑和资料存取等程序,而无需重新撰写。这除了节约了代码重写的成本外,也维护了版本的一致性。

·与Visual Studio整合。Xamarin提供了Visual Studio 2010/2012的Plugin,让原本熟悉VisualStudio的开发者不用再熟悉其他的开发工具。在立项时,可以直接建立iOS及Android的项目范本。开发者还可以将iOS及Android的程序代码加入到ALM中,使用Team Foundation Server进行版本及建置管理。

·原生的应用程序效能。Xamarin针对iOS及Android平台开发编译器,将C#程序直接编译成ARM CPU的机器码。因此,与原生应用相比,性能方面毫无差异。在Android系统中,由于Xamarin不适用Dalvik虚拟机,改为采用CLR,效果可以更胜一筹。

接下来进入到了实操环节,林泰宏从模拟器开始,逐渐分析了iOS设备的布局设计和基础控件。基础控件包括:Label、Button、Segmented Control、Text Field、Switch、Slider、Activity Indicator、Progress View。


XamariniOS设备布局


Xamarin.Android布局包括:线性布局(LinearLayout)、单帧布局(Frame Layout)、相对布局(Relative Layout)、绝对布局(Absolute Layout)、表格布局(Table Layout)。Xamarin.Android基础控件包括:TextView、EditText、Auto Complete TextView、Progress Bar、Switch Bar、Switch/Toggle Button、Seek Bar。当然,与iOS相比,Android设备的碎片化属性一直为人所担心,在分享中林泰宏给出了Android设备碎片化的解决方案,通过如下公式可以精准的计算出每款设备所需要的正确尺寸。

谈到大家都很关心的推送功能时,林泰宏从准备工作开始,举出iOS推送前期开发者首先要申请一个Apple ID,接下来依次启用Push Notification(Development)并产生数字证书、建立Provisioning Profile、在Key Chain中导入数字证书并汇出.p12档、访问极光推送网站并创建账户、创建应用并上传.p12档。开发中首先要导入推送绑定组件,然后添加Push Config档并添加以下设置(以极光推送为例):

  • APS_FOR_PRODUCTION :黙认为0,开发模式;
  • CHANNEL:设置频道,默认为“Publish channel”;
  • APP_KEY:极光推送所配置的key。

最后,在AppDelegate.cs中添加以下函式代码:

  • FinishedLaunching:注册通知型态(如铃声、badge等);
  • RegisteredForRemoteNotifications:获取deviceToken并注册到极光推送;
  • ReceivedRemoteNotification:接收消息后的相应处理。

相比于iOS,Android的操作过程则较为简单,首先访问极光推送官网并创建账户,接着是创建应用并指定包名(Package Name)。开发过程中,首先要将项目导入极光推送绑定组件,然后配置AndroidManifest.xml并指定App_Key,接下来在Application或首页初始化极光推送,最后撰写自定义BroadcastReceiver类以处理接收到的信息。


除了精彩的演讲外,林泰宏还带来了《Visual C#——Xamarin跨平台移动App开发实践》与大家分享,并且针对大家在项目开发中实际遇到的问题,对大家进行现场交流和解答。现场气氛十分融洽。


备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘