时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

使用 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:103086

评论

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

LED广告车屏幕整体解决方案

Dylan

广告业 LED LED display LED显示屏 LED屏幕

终结“安全裸奔”:腾讯iOA免费版掀起的中小企业安全革命

Undoom

腾讯iOA场景体验官

StarRocks vs ClickHouse:2025 年 OLAP 引擎终极对比指南

镜舟科技

数据分析 Clickhouse StarRocks 湖仓一体 OLAP 引擎

Bookstore靶机实战:从Web枚举到REST API模糊测试的完整攻破

qife122

渗透测试 API安全

AppCenter iOS SDK 核心组件库

qife122

ios 日志收集

2025年7月文章一览

codists

Python

任务嵌入软注入技术超越基于提示的上下文学习

qife122

自然语言处理 任务嵌入

数据资产是什么?

镜舟科技

数据分析 数字化转型 数据资产 StarRocks 湖仓一体

直播预告:我不是网红,可以 Build in Public 吗?丨RTE Dev Talk

声网

YOLOv8手势识别项目实战-石头剪刀布实时检测系统

申公豹

人工智能

ECDSA安全漏洞深度解析:从非ce泄露到密钥恢复实战

qife122

密码学 侧信道攻击

如何选择优质漏洞赏金项目并赚取丰厚奖金

qife122

网络安全 漏洞赏金

Go 泛型“黑话”:any 和 interface{} 完全一样吗?

十三Tech

最近Vibe Coding的经验总结

Immerse

经验 CODING VibeCodingf Vibe

Terraform Authoring Operations Professional 认证考试经验分享:从备考到实战全攻略

雪雷

Terraform 认证

从噪声数据中发现可解释的常微分方程

qife122

机器学习 常微分方程

基于YOLOv8的多种水果种类识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!

申公豹

人工智能

通过胜率理解偏好学习的理论与优化方法

qife122

机器学习 胜率优化

消息重复消费+顺序性,分布式消息的终极难题?一线解决方案全解析!

我爱娃哈哈😍

消息队列 重复消费 顺序消费

HarmonyOS 5 应用拉起系列(一):应用与元服务互通方式

鸿蒙魔法师

鸿蒙 HarmonyOS ArkTS

2025 CDEC高峰论坛:HarmonyOS技术赋能,鸿蒙游戏领启未来

最新动态

Airtable 如何用 StarRocks 构建数据验证系统

StarRocks

数据分析 Airtable StarRocks 数据库 大数据 数据储存

大数据-58 Kafka 消息发送全流程详解:序列化、分区策略与自定义实现

武子康

Java 大数据 kafka 分布式 消息队列

量子计算新突破:Ocelot芯片实现高效纠错架构

qife122

量子计算 超导电路

个性化联邦学习提升客户体验

qife122

联邦学习 边缘计算

EEG-CLIP:通过自然语言描述学习脑电图表征

qife122

脑电图 零样本解码

自动化规划工具优化工单分配效率

qife122

混合整数非线性规划 分支定界法

自适应集群协作提升大语言模型医疗决策支持能力

qife122

人工智能 医疗决策支持

Magnifier:交互式反编译的实验性工具探索

qife122

LLVM 反编译

在AI技术快速实现创意的时代,挖掘新需求成为关键——某知名Windows依赖分析工具需求探索

qife122

需求分析 Windows开发

某中心将举办机器学习峰会

qife122

机器学习 数据科学

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