写点什么

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

  • 2014-08-20
  • 本文字数:1289 字

    阅读完需:约 4 分钟

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

Rachel Reese Firefly 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 平台完整实现的两个游戏应用 Pacman Pissed 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 )关注我们,并与我们的编辑和其他读者朋友交流。

2014-08-20 04:103119

评论

发布
暂无评论
发现更多内容

Unity 广告质量监测工具免费开放 三大指标破解变现与体验的平衡难题

极客天地

企业数字化转型失败频率为什么这么高?

积木链小链

数字化转型 数字化 智能制造

深入研究:1688店铺所有商品API详解

tbapi

1688API 1688店铺所有商品接口 1688店铺数据接口

构建自动翻译工作流:技术与实践

亚马逊云科技 (Amazon Web Services)

大模型落地的关键:如何用 RAG 打造更智能的 AI 搜索——阿里云 AI 搜索开放平台

阿里云大数据AI技术

云计算 阿里云 大模型 rag AI搜索

暖春启幕,巨擘齐聚!2025慕尼黑上海电子展开幕首日盛况直击

极客天地

五个信创小知识汇总-行云管家

行云管家

信创 堡垒机 国产化

人工智能与数字双胞胎:如何通过虚拟模型实现智能工厂管理?

天津汇柏科技有限公司

人工智能 数字孪生

政府域名是什么?政府域名怎么注册?一文读懂

防火墙后吃泡面

图床

九叔(高翔龙)

金融行业数字化转型破局:WhaleScheduler如何重塑万级任务调度体系?

白鲸开源

白鲸开源 WhaleStudio 商业案例

一年撸完百万行代码,企业微信的全新鸿蒙NEXT客户端架构演进之路

JackJiang

网络编程 即时通讯 IM

从理论到落地:MCP 实战解锁 AI 应用架构新范式 | 免费领取 78 页完整 PPT

阿里巴巴云原生

阿里云 云原生 MCP

互联网服务行业怎么定义?需要用到堡垒机吗?

行云管家

网络安全 数据安全 堡垒机

教学资源管理系统的测试

北京木奇移动技术有限公司

软件外包公司 出版社 教学资源网

蔚来汽车智能座舱接入通义大模型,并使用通义灵码全面提效

阿里云云效

阿里云 云原生 通义灵码

基于 RAG 和 Dify 的生产级电话销售话术生成工具

亚马逊云科技 (Amazon Web Services)

数据安全责任担当:百度连续两年获CCIA数安委最高级试点单位

百度安全

3月报|DolphinScheduler项目进展一览

白鲸开源

开源 Apache DolphinScheduler

蔚来汽车智能座舱接入通义大模型,并使用通义灵码全面提效

阿里巴巴云原生

阿里云 云原生 通义灵码

中原银行实时场景企业级解决方案

Apache Flink

大数据 flink 实时计算

TextIn ParseX文档解析参数使用指南(第一期)

合合技术团队

人工智能 OCR识别 #大数据 文档解析

三维模型怎么剖切?三维剖切详细教程来了

在路上

cad cad看图 CAD看图王

15~30K,3年以上golang开发经验

王中阳Go

Go 面经

秘密任务 1.0:为什么 DTO 是 API 设计效率和安全性的秘密武器?

数据追梦人

AI超级计算机来了

PowerVerse

AI nvidia 芯片

利用 DeepSeek-R1 模型和计算机视觉微调模型实现马铃薯叶片疾病识别和分类

亚马逊云科技 (Amazon Web Services)

21日报名截止!CommunityOverCode Asia 2025议题征集倒计时

白鲸开源

开源 Apache DolphinScheduler community

修改下内存配置,DolphinScheduler CPU飙升问题秒解决

白鲸开源

开源 Apache DolphinScheduler 用户案例

书写API文档的最佳实践

数据追梦人

教学资源管理系统的运营维护

北京木奇移动技术有限公司

软件外包公司 出版社 教学资源管理

使用F#开发iOS和Android原生应用_后端_Sergio De Simone_InfoQ精选文章