东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

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

评论

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

写了四年的Java代码,分布式高并发都不会还做程序员?

Java 程序员 后端

判断对象是否已死分析总结——JVM系列,让人茅塞顿开

Java 程序员 后端

AI 算法在视频可分级编码中的应用

融云 RongCloud

人工智能 音视频 编解码

凡尔赛一波:美团面试就这?,java工程师面试突击第二季分布式

Java 程序员 后端

利用多condition动态管理池化的异步资源背景

Java 后端

利用碎片化的时间逆袭进百度,我的面试经历你敢听吗?

Java 程序员 后端

农业末流211,Java自学一年的我是怎么走上大厂之路的

Java 程序员 后端

分布式下的数据一致性问题,怎么解决?,java编程教程下载

Java 程序员 后端

刚从今日头条Java研发岗面试回来,我总结的失败原因(附面试题

Java 程序员 后端

初识java-JDBC,mysql索引左前缀原理

Java 程序员 后端

初学者这样玩 TypeScript,迟早进大厂系列!

Java 程序员 后端

【Quarkus技术系列】「云原生架构体系」打造基于Quarkus的云原生微服务框架实践

洛神灬殇

云原生 Quarkus 原生云 11月日更

工具:Juypter Notebook

正向成长

Jupyter Notebook

公司来了一位前阿里大神,分享8面阿里面经(Java岗面试题集锦

Java 程序员 后端

关于Redis主从节点数据过期一致性的思考,它真的足够一致了吗?

Java 程序员 后端

关于垃圾回收你真的了解透彻了吗?我熬夜深度剖析了一下

Java 程序员 后端

一个往返于海陆的撸猫打渔人,用影像记录生活的星辰大海

最新动态

写博客是一种乐趣,一种需要培养的乐趣,java技术架构SHEET

Java 程序员 后端

如何 30 分钟搭建一个语聊房

融云 RongCloud

字节Android Native Crash治理之Memory Corruption工具原理与实践

字节跳动终端技术

字节跳动 Android; 火山引擎

开源应用中心|Discuz!X全新PC社区体验,多种场景一站解决

Discuz! 开源社区 Discuz

别看是Java基础,很多人已入坑,java技术栈

Java 程序员 后端

彻底理解 AQS我是懂了,你呢?

何小事儿

Java 多线程 并发

初探Linux--鸟哥私房菜读书笔记,廖雪峰java教程百度云

Java 程序员 后端

利用这份文档,我成功定位阿里P6,却拿着P7的工资

Java 程序员 后端

到了2020年,技术水平到底需要达到怎样的程度才能成为顶级的阿里P8架构师

Java 程序员 后端

ironSource现已支持自定义广告网络

凭借着这份Spring面试题,我拿到了阿里,字节跳动美团的offer

Java 程序员 后端

分布式ID生成策略,我和面试官掰扯了一个小时

Java 程序员 后端

分布式事务与Seate框架:分布式事务理论,Java知识总结

Java 程序员 后端

分布式基石|最难 paxos 和最易 raft?,java排序算法面试题

Java 程序员 后端

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