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

【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开发实践》与大家分享,并且针对大家在项目开发中实际遇到的问题,对大家进行现场交流和解答。现场气氛十分融洽。


如何打造IE10的指尖触碰式用户体验 SUSE全球OEM联盟总监:为何SAP HANA只选择SUSE? 推荐2013年最佳PHP开发框架 Patrick Wyatt:代码没问题 程序却有bug? NoSQL的可靠性及扩展操作 最新Skype加密技术:“无声”通话能躲过FBI监听 谷歌锁死SDK,能阻止Android碎片化吗? KitCam团队专访:为应用做加法也能雄踞榜首 谷歌哭了:Replicant 4.0 SDK发布搅乱大局 忍者神龟与禅宗启示:如何突破移动广告困境 Linux会是更好的游戏平台?暴雪是这么认为的! 新型恶意软件瞄准Java服务器 AWS被纳为“战略物资”市值或可达到300亿美元? 十张图带你入门Map/Reduce 低端Android野心,Intel发布Atom Z2420处理器 淘宝网的技术发展史(一)——个人网站时代 看Pinterest如何通过架构变化将EC2成本降低了62% 内容vs渠道:法国电信商Free叫板Google 让网站成为应用:Firefox OS掀起革命风潮 屌丝伞兵的逆袭:4人+盛大+远程+最佳手游 新年头彩:Chartboost喜获1900万美元融资 高富帅跻身移动领域 福特开放车载声控API 传低端iPhone最低只要99美元 你怎么看? 辉煌不再 Encanto超级计算机可能被拆分“出售” 知己知彼 企业应用移足云端必须清楚的10大方面 NVIDIA推Android掌机:七年孕育可否成就野心? 人民日报:2013关于新媒体的8个猜想 互联网大时代成就创新小企业 移动互联网创新论坛报道 Mobile Detect:判断移动设备类型的开源PHP类 我是如何Hack Facebook Employees Secure Files Transfer服务的 投资可再生能源:Google 2亿美元投资风力农场 ALLTEC(荔枝)兄弟,兄弟我接帖太快 :( 請這邊來. ★★★ 救命啊! VC 用ODBC访问 Access 数据库的问题 guo->你在www.linuxforum.net中叫什么?有个guoemail是你吗? 软件发布:市场摊位租赁管理系统Ver1.0 软件发布:量和单位转换软件(免费版) 软件发布:五笔快打 在listview中的各个记录listitem中,有没有双击记录的事件 软件发布:伏羲服装鞋业购销存管理系统 软件发布:进销存商务管理pcft-jxc 征集各地童谣.唤醒儿时记忆! 今天我请客! 有关vb调用excel的问题! 有没有关于BDE的单独的分发程序? VB中报表预览打印能不能实现象EXCEL中一样的“按比例缩放”?如何实现? 单机版流量统计 关于Delphi6的安装问题 动态计算公式怎么实现?? 常用的英文字体是什么? 在通信过程中怎样做到防监听、防篡改? 各位大虾现欲用java开发一套网上投票表决系统 应该看什么书?用什么开发工具?(一定给分!) 关于winsock的问题,急急 怎样使用VB6中TREEVIEW控件? 我真的要疯了! 这里有很多Delphi6的控件! 如何在ASP中传递多个参数?displaymsg.asp?page=1在后面我还想加另外一个参数 有没有喜欢画漫画的? 如何得到ActiveX控件的窗口句柄 请问mif文件格式以及、读写方法?高分求解 sco unix的root口令忘了,谢谢. 在PowerBuilder中使用Microsoft Web浏览器控件 ,这个控件在ole中怎么没有啊? 急盼有人答复!!!!!! 急!急!编译exe时出现:link errors提示 具体提示:create of executable file failed? 小笨笨一问 年年岁岁花相似,岁岁年年人不同 VC++初学者的几个大烦恼!(苦呀,谁来拯救我这个VC小兵?) 请教在DELPHI中调用API发送EMAIL的问题!!!!! 有谁知道没有封闭25端口的美国ISP的地址信息??? 水园的过去现在未来 -- 座谈一下 哭笑沉默怒骂攻击噌分拉关系白脸黑脸等等都欢迎 高分求购速达软件单据编辑的DBGrid组件或设计思想! 发表一下意见,做报表用那个控件好 谁有对话框实现的计算器的源程序? 帮小弟看一下这段程序,不好意思,只有10分了 Delphi多线程有用吗? 初学JAVA,还有一些问题烦劳各位大侠指点? 请教一个c语言库函数问题? 动不动就谈"爱国"的人请进 如何改变开机声音??? 菜鸟有一问题请教 请看一下我的程序错在哪里,好吗? 关于VC程序员收入,年龄,性别,工作地的小调查,愿者请进! 能不能求贝塞尔曲线的两个控制点? 3小时25分等于多少小时,怎么来的 大肠杆菌感受态细胞的制备与转化实验:在转化实验中,涂平板前需要在37度下振荡培养30-60min大肠杆菌感受态细胞的制备与转化实验:在转化实验中,涂平板前需要在37度下振荡培养30-60min,请 恒温油浴锅故障:油温到了指定的温度,仍然不断上升,应该是哪里出了问题? 8π-20 等于多少?怎么算, 大肠杆菌DH52a感受态细胞 土壤有机质油浴锅温度升不上去是怎么回事 用分数表示:25分钟=( )小时,2500克=( )千克 提取DNA后为什么要跑胶 数显恒温油浴锅显示温度和实际温度相差太大怎么校正显示的温度比温度计实测的油温高出10度左右,怎么校正呢.油浴锅型号为江苏金坛宏华仪器厂家出产的那种 25分钟=( )小时 最简分数 提取DNA时为什么要用新鲜血液 什么是水浴锅和油浴锅,为什么非要用水和油作为介质呢,直接加热不得了,呵呵,不好意思啊,另外温度能调控吗 2.15小时=?小时(用分数表示) 3小时15分=?小时 质粒DNA提取中为什么要用冰预冷溶液I和溶液Ⅲ? 普通化学实验 油浴缓慢升温 能否用电热套代替呢?普通化学实验 需要油浴缓慢升温 能否用电热套代替呢? 45分钟=多少小时 用分数表示 提取叶绿体是为什么要在冰浴中进行 实验用砂浴的沙子哪里能买到?是普通细砂可以吗? 正切1度29分是多少 农杆菌感受态细胞制备失败和质粒没有转进去的可能原因 化学实验有谁用过砂浴吗?用什么砂效果比较好? 正切根3是45度,那么正切根2是多少度呢 大肠杆菌感受态制备为什么要冰上操作,0-4℃操作.还有,为什么要采用对数生长期的菌?不要只给一个简简单单的回答说转化率高,要具体、详细点的,最好有原理, 化学实验中什么砂浴什么是水浴 正切45是多少 感受态的制备我制备的感受态加DMSO放-80最近转化率总是下降不知是什么原因, 油浴 水浴 沙浴 加热温度和作用 15.8°化成度 分 秒 BJ5183细胞感受态的制备我之前用拿来的BJ5183菌液划板挑单菌落,然后扩大培养保存菌种.最近用该菌种用氯化钙法制备感受态细胞然后用pShuttel-CMV转染(连上了目的基因),但是Kna板子上培养了 沐浴油怎么用好?和沐浴露一样用还是不用洗掉做养护的? 8/15-1/4= 大肠杆菌感受态细胞转化实验中没冰浴就热击会怎样?之后又冰浴30min,还再热击一次,这样会有什么后果?问题严重么? 水浴油浴沙浴铅浴的温度各为多少?沙浴和铅浴如何操作? 0.8,里面有( )1/15 聚苯乙烯微球是什么是什么 请问有可以达到300度的油浴吗?这用的是什么油啊?似乎很难啊.请注意这是纯粹的化学实验问题,油浴一般能达到220度就不错了。 1港两黄金等于多少克 正切函数的一个问题可是从函数图象上来看,在不一样的区间有不一样的对称中心啊.. 制得的聚苯乙烯微球如果进行真空干燥 多长时间合适? 1盎司黄金等于多少克 什么是正切函数 我要制备核壳结构的PS/TiO2纳米材料,现已制备出纳米级的PS微球,但现在用水热法无法使TiO2包覆其上我应该怎么做.最好有文献名称,望有心人给与帮助, 怎样理解为公司节约一分钱就等于为公司挣得一分钱? 一道正切函数题求函数Y=tan^2x+tanx+1(x属于R,x不等于kpai+pai/2)的值域. 聚苯乙烯-二乙烯基苯聚合物微球怎么聚合?主要应用在哪些方面? 一分钱等于多少百元 (1)正切函数在整个定义域内是增函数吗?理由?(2)正切函数会不会在某一区间内是减函数?理由? 在哪里能买到聚苯乙烯微球 请问多少“厘”等于一分钱? 关于正切函数正切函数在其定义域内是增函数,这句话对吗? 大肠杆菌感受态转化的原理是什么? 中国一厘钱等于多少元?多少分? 大肠杆菌感受态细胞制备试验中为什么转化后要在37℃摇床上温育45min 网上看到的都是在正常大肠杆菌扩大培养后再制备成感受态,那感受态大肠杆菌可以扩大培养吗?分裂出来的大肠杆菌还是不是感受态的? 一分等于几时 如何制备大肠杆菌感受态细胞 大肠杆菌感受态BL21和DH5а区别 14小时35分等于几小时 大肠杆菌制备感受态细胞和重组子转化实验中,没有实验结果大肠杆菌制备感受态细胞和重组子转化实验中,将重组子放在含抗生素的培养皿中培养,也就是用蓝白班的方法,但是培养皿上什么颜 实验用大肠杆菌感受态可以感染人吗?有什么症状?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn