BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

使用F#开发iOS和Android原生应用

| 作者 Sergio De Simone 关注 12 他的粉丝 ,译者 孙浩 关注 2 他的粉丝 发布于 2014年8月21日. 估计阅读时间: 4 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Xamarin 4.8 开始,F#已经可以通过使用Xamarin支持iOS和Android原生编程了,并且可以有效地在两个平台上创建原生应用。让我们看看一些经验报告。

Rachel ReeseFirefly Logic的高级软件工程师,最近在Nashville .NET用户小组会上做了一个演讲,展示了如何完全用F#语言写出绝对原生并且跨平台的移动应用程序。Rachel还将F#和Apple的新Swift语言做了有趣的特性对比。在Rachel看来,很多F#语言的特性,像识别联合、模式匹配、自定义运算符、可选择类型、REPL,这些在Swift中都可以找到,从语言层面讲Apple为iOS和OS X开发的新语言还是缺少了一些重要的在F#语言上拥有的特性,如类型提供者、类型推断、同步和异步支持等等。她评论到:

随着每个新Xamarin Studio版本的发布,其手机相关模块在程序编程方面会做的越来越好。

Faisal Waris是iOS和Android咨询顾问,最近总结了他使用F#语言为Android开发的一个复杂app的经验。Faisal的app有6000多行代码,还有一个包含自定义控件的复杂UI,另外还有复杂的后台处理。他说:

Xamarin 对F#语言的支持现在非常好,我很乐意推荐它用来开发产品。当我开始使用的Xamarin的时候,它对F#语言的支持还处于测试阶段,我也遇到了很多问题。可是,Xamarin团队的响应非常积极,并且很快就能将插件开发到稳定、好用的地步……要代替这6K行代码,等效的Java代码将在50K LOC范围并且会相当复杂。我认为F#语言是移动计算机处理技术中一种极好的语言。

Faisal同时也是VL的作者,VL是F#语言中一种DSL工具,它允许在iOS控件的布局上指定自动布局约束。Faisal说,由于VL自动布局约束使用强类型方式指定,所以它允许在早期捕获一些布局问题。VL使用了F#的Algebraic数据类型、匹配模式和操作符重载,同时也提供了一个展示F#灵活性和表现力的很好的例子。

软件工程师Neil Danson在最近的一次F#unctional伦敦聚会上做了一个很好的关于用F#语言开发iOS app的介绍。Neil说,F#快速,因为它编译成原生代码,同时F#也具有完整性,提供所有可用的API。不过它没有Objective-C速度快并且F# app要更慢的启动时间,Neil补充道。Neil还提到,F#特别适合移动应用开发,是因为它的异步行为允许方便的利用非阻塞I/O和多核CPU,以及它的跨平台的可移植性。在他的BitBucket账号上,可以下载他为iOS和Android平台完整实现的两个游戏应用PacmanPissed off owls.

F#是一种使用类型推断以及支持命令式和面向对象范式的强类型函数语言。F#由包括Microsoft和开放贡献者在内的F#软件基金会开发。F#软件基金会也提供了开源、跨平台的F#编译器。

为iOS和Android平台开发F# app,可以使用Windows平台的Visual F#工具,或者Mac平台F#工具,或者Xamarin Studio

查看英文原文:http://www.infoq.com/news/2014/07/fsharp-native-moible-development


感谢张龙对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT