写点什么

Dart 2 为移动开发做出改进

  • 2018-03-06
  • 本文字数:1043 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

最新版本的Google Dart 编程语言支持更强大的类型系统、更简明的语法,还提供了一个改进版的工具链,它被Google 宣传为最佳的移动端应用程序和Web 应用程序的开发方式,Google 宣称Dart 能够提高2-3 倍的生产力。

Dart 强制使用强类型模式,这能确保在开发过程的早期就能捕获错误。但是,仍然可以选用类型注释,其类型在未声明时就会被推断出来。你可以通过启用 Dart 1.x 版本代码的强模式(strong mode)来预览 Dart 1.x 代码在 Dart 2 中的可用情况。

Dart 2 语言还有一个相对比较小的改动,但是这个改动对 Dart 语法的可读性产生了巨大影响,在调用构造函数时可以省略 new 和 const 关键字。这就使得使用更加具有声明性的语法成为可能。比如,你现在可以这样写:

复制代码
Widget build(BuildContext context) =>
Container(
height: 56.0,
padding: EdgeInsets.symmetric(horizontal: 8.0),
decoration: BoxDecoration(color: Colors.blue[500]),
child: Row(
...
),
);

而不用像 Dart 1.x 所兼容的代码那样:

复制代码
Widget build(BuildContext context) {
return new Container(
height: 56.0,
padding: const EdgeInsets.symmetric(horizontal: 8.0),
decoration: new BoxDecoration(color: Colors.blue[500]),
child: new Row(
...
),
);
}

Dart 通过 Google 的 Flutter 框架来支持移动应用程序开发,该框架旨在为 Android 和 iOS 创建原生 UI。Flutter 能够原生编译至 ARM 和 x86 处理器平台。当与 Flutter 引擎相结合之后,Fultter 能够提供一个高效的垃圾收集器,这就使得创建能够运行的原生移动端应用程序成为可能。

Dart 的定位转换至面向客户端开发这一说法,经过了 Google 的 Dart 产品经理 Anders Thorhauge Sandholm 的确认:

我们在开发 Dart 语言和相关类库时,所关注的重点是最大化客户端开发的价值和实用性。

但是这并不意味着,Dart 抛弃了命令行的使用和针对服务器端的代码。Dart 对客户端开发的关注可以被视为 Google 试图在Google 产品以外的行业增加对Dart 使用的新尝试,Google 目前还是Dart 的最大使用者。据Sandholm 所说,Dart 的性能和可预测性,以及其良好的系统,使得Google AdWords 工程师们的效率比以前提升了2-3 倍。此外,Sandholm 说,Google 团队在移动端和Web 端的AdWords Express 和AppTree 上使用的Dart 代码已经占到了50%-70%。

查看英文原文: Dart 2 Revamped for Mobile Development

2018-03-06 18:002886

评论

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

5道面试题,拿捏String底层原理!

码农参上

string 底层原理 死磕 Java 基础

DOM 节点

Jason199

DOM js DOM事件 6月月更

Fabric.js IText 手动设置斜体 🎋

德育处主任

JavaScript 前端 canvas Fabric.js 6月月更

面试突击59:一个表中可以有多个自增列吗?

王磊

Java 面试

Gitlab运维篇之——备份及恢复

阿呆

#GitLab 备份恢复

滴滴工程效能平台建设之路

laofo

互联网 DevOps 研发效能 持续交付 工程效能

axios框架入门教程

倔强的牛角

axios 6月月更

Java String 文字(Literal)和 对象(Object)初始化

HoneyMoose

JAVA SOCKET编程——TCP/UDP

乌龟哥哥

6月月更

IDE 的主题应该用亮色还是暗色?终极答案来了!

胡说云原生

ide vscode IDEA goland ide主题

DingOS服务提交IPO配置指南

鼎道智联

前端 开发 IPO配置

再次认识 WebAssembly

devpoint

typescript webassembly 6月月更

JVM调优简要思想及简单案例-老年代空间分配担保机制

zarmnosaj

6月月更

leetcode 279. Perfect Squares 完全平方数(中等)

okokabcd

LeetCode 动态规划 算法与数据结构

Java String 手工引用指针

HoneyMoose

Java String 性能和优化

HoneyMoose

如何使用物联网低代码平台进行报表管理?

AIRIOT

物联网 低代码平台

我对新能源汽车的一些看法(37/100)

hackstoic

新能源汽车 生活杂谈

Java String 构造方法中的内存分配

HoneyMoose

DOM编程

大熊G

JavaScript 前端 6月月更

Java自定义Once方法保障单次执行

FunTester

缓存穿透利器之「布隆过滤器」

Ayue、

redis 布隆过滤器

Java 字符串引用(String Interning)

HoneyMoose

一文走近ZMQ

No Silver Bullet

6月月更 ZMQ

Linux开发_curl调用网络接口

DS小龙哥

6月月更

Go Web 编程入门:验证器

宇宙之一粟

Go 语言 表单校验 6月月更

唐太宗把微服务的“心跳机制”玩到了极致!

悟空聊架构

微服务 Eureka 悟空聊架构 6月月更 心跳机制

redis精讲系列介绍七-过期策略

Nick

Redis 核心技术与实战 6月月更 redis精讲 redis 过期策略 redis 底层原理

Eureka的InstanceInfoReplicator类(服务注册辅助工具)

程序员欣宸

Java SpringCloud 6月月更

钟珊珊:被爆锤后的工程师会起飞|OneFlow U

OneFlow

自我介绍 实习

如何进行高效简洁的电子文档管理

小炮

Dart 2为移动开发做出改进_开源_Sergio De Simone_InfoQ精选文章