写点什么

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

评论

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

嘉为蓝鲸CCI持续集成平台Stage准入:让CI/CD从“自动跑”到“可控跑”,部署更放心

嘉为蓝鲸

DevOps 研发效能 持续集成 CI/CD 持续集成平台

智能体防御 | 一文了解 3 种系统提示词加固方法

火山引擎开发者社区

智能体 系统提示词

哈尔滨工业大学鲲鹏昇腾科教创新孵化中心成立

极客天地

破界新生!MyEMS 开源能源管理系统重构智慧能源新范式

开源能源管理系统

开源 开源能源管理系统

告别低效!元图 CAD 图像识别功能,让图纸转换快人一步

元图CAD

AI 图像识别 OCR识别 元图cad

哈尔滨二级等保办理全流程:从准备到完成的清晰指引

等保测评

快节奏业务增长驱动下的App跨平台高效开发

xuyinyin

MyEMS:让能源管理从 “专业门槛” 走向 “全员参与”

开源能源管理系统

开源 开源能源管理系统

打造可分析的监控报表体系,让洞察更精准高效

嘉为蓝鲸

智能监控 IT运维 数据监控 IT监控 IT运维监控

大数据-78 Kafka应用场景全解析:从消息中间件到流处理,附实战集群部署

武子康

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

非凸科技联合举办“星耀领航计划”财富管理发展论坛

非凸科技

哈尔滨二级等保实施重点:安全建设与管理的关键环节

等保测评

「48小时极速反馈」阿里云实时计算Flink广招天下英雄

Apache Flink

大数据 flink

哪个CAD软件既可以CAD看图又可以绘图?

在路上

cad CAD看图软件 CAD看图王

DNS劫持成因和应对策略探讨

防火墙后吃泡面

高并发系统下,如何用限流算法优雅地保护你的服务?

左诗右码

黑龙江等保测评公司选择关键维度:服务能力与适配性

等保测评

区块链RWA系统开发周期

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

区块链开发 软件外包公司 RWA开发

Vibe Coding 从入门到实践

火山引擎开发者社区

AI 火山引擎

CAD中如何快速查找批注?3秒定位,告别手动查找!

在路上

cad cad看图 CAD看图王

一文看懂:企业该如何正确实施ERP?ERP系统实施必要性讲解

优秀

ERP

事件管理升级指南:ITSM系统靠自动化与协同让IT运维效率“撑杆跳”

嘉为蓝鲸

ITSM IT服务管理中心 IT服务管理 IT流程管理 ITIL事件管理

DeepSeek-V3.1 上线火山方舟

火山引擎开发者社区

字节跳动 火山引擎 DeepSeek 火山方舟

Agent 架构综述:从 Prompt 到 Context

火山引擎开发者社区

Prompt 大型语言模型LLM

Amazon Q Developer CLI + 飞书——打造对话式的 AI Agent 智能运维平台

亚马逊云科技 (Amazon Web Services)

CST基础教程:如何从SYZ参数提取电容C和电感L --- 双端口

思茂信息

cst电磁仿真 CST软件 CST Studio Suite

数字化工厂及五大核心系统(ERP、PLM、MES、WMS、QMS)

万界星空科技

数字化 ERP mes QMS 制造业工厂

嘉为蓝鲸CMeas研发效能洞察平台:研发效能周报按周期自动推送领导邮箱,数据统计零疏漏

嘉为蓝鲸

DevOps 研发效能 研发效能度量 研发效能洞察平台

火车站LED信息屏的重要性

Dylan

信息 LED LED display LED显示屏 LED屏幕

从零开始学MCP(7) | 实战:用 MCP 构建论文分析智能体

测吧(北京)科技有限公司

五问五答,详解算子级血缘助企业数据管理主动防控与高效协同

Aloudata

数据血缘 数据变更 主动元数据 算子级血缘

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