HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

评论

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

Prometheus 监测 RocketMQ 最佳实践

阿里巴巴云原生

阿里云 RocketMQ 云原生 Prometheus

适用场景全新升级!扩展 Dragonfly2 作为分布式缓存系统架构 | 龙蜥技术

OpenAnolis小助手

开源 架构 分布式 龙蜥技术 dragonfly2

超级自动化行业前景广阔——首个数字化转型国家标准发布:价值体系优化、创新和重构是数字化转型根本任务

九科Ninetech

项目管理软件有哪些?

优秀

项目管理软件

Java通讯录管理系统

我是一个茶壶

Java 11月月更 通讯录管理系统

APISIX Ingress 是如何支持上千个 Pod 副本的应用

API7.ai 技术团队

Kubernetes 容器 api 网关 APISIX

链表剖析及自己手撸"单链表"实现基本操作(初始化、增、删、改等)

C++后台开发

数据结构 链表 linux开发 Linux服务器开发 C++开发

龙蜥技术委员会主席杨勇:下一代操作系统展望

云布道师

开源 操作系统

Kotlin类声明和构造器(constructor)

子不语Any

android kotlin 11月月更

电容的“通交流、阻直流”,一次讲清楚

元器件秋姐

元器件采购 元器件电商 电容 电容特性 电容知识

2022年10月中国网约车领域月度观察

易观分析

报告 网约车

Pycharm 搭建 Django 项目

千锋IT教育

论文领读|基于 VQVAE 的长文本生成

澜舟孟子开源社区

人工智能

【web 开发基础】PHP使用自定义函数库 (39)

迷彩

web开发基础 11月月更 自定义函数 函数库引入 函数库

人人都可以给想象插上翅膀(内含AI绘画教程)

鼎道智联

openai AI绘画 鼎道智联

Spring 依赖注入有哪几种方式

千锋IT教育

云视频会议哪家强?华为云会议更专业“会”更好!

i生活i科技

华为云大数据平台,助力企业数字化转型成效明显

爱尚科技

华为云大数据BI解决方案助力“智能智造”

爱尚科技

【SpringBoot】配置文件的加载与属性值的绑定

石臻臻的杂货铺

springboot 11月月更

记一次HBASE的故障分析和排查过程

鲸品堂

大数据 11月月更

从传统数据治理转向主动数据治理!

用友BIP

服务全球开发者!灵雀云与Ubuntu推出一体化云原生解决方案

York

容器 云原生 操作系统 开源生态

牛啊!长这么大还是头一次见24W字的SpringBoot从入门到实战文档

程序知音

Java spring springboot java架构 后端技术

Kotlin函数声明与默认参数(Default argument)

子不语Any

android kotlin 11月月更

W3C白皮书之小程序技术标准

FinFish

小程序 W3C 小程序化 miniapps

完全解析大数据中MapReduce的运行流程

好程序员IT教育

大数据 MapReduce Service

亚马逊云科技云从业者加速训练营上线啦!

亚马逊云科技 (Amazon Web Services)

培训与认证

Kotlin函数和扩展(extension)

子不语Any

kotlin Andrdoid 11月月更

易观分析:2022年Q3中国跨境进口零售电商市场规模为1124.8亿元

易观分析

报告 跨境电商

易观千帆 | 2022年10月银行APP月活跃用户规模盘点

易观分析

报告 手机银行

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