写点什么

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:002492

评论

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

什么是 API

escray

学习 极客时间 朱赟的技术管理课 6月日更

清晰理解红黑树的演变---红黑的含义

hasWhere

云图说|初识华为云数据库GaussDB(for openGauss)

华为云开发者联盟

数据库 开源 GaussDB GaussDB(for openGauss) 华为云数据库

【融云技术】Native C/C++ 服务适配多指令集 CPU 漫谈

融云 RongCloud

网络攻防学习笔记 Day46

穿过生命散发芬芳

网络攻防 6月日更

图论环境配置出现的各种错误

容光

SpringBoot之ScopedProxyMode

梦倚栏杆

烹饪一道美味的 CLI

蛋先生DX

node,js command 6月日更

EasyRecovery---U盘数据恢复技巧

淋雨

数据恢复 EasyRecovery 文件恢复

【Vue2.x 源码学习】第十六篇 - 生成 render 函数 - 代码拼接

Brave

源码 vue2 6月日更

最牛的编码套路

hasWhere

全国首个“区块链+数字人民币”应用场景在雄安新区落地

CECBC

让区块链价值的属性之一“免信任”,更好的融入

CECBC

「SQL数据分析系列」5. 多表查询

Databri_AI

数据库 sql 查询语句

WinRM 如何设置 TrustedHosts

HoneyMoose

你真的会设置密码吗?

卢卡多多

密码学 6月日更

【21-9】文件和文件夹

耳东@Erdong

PowerShell 6月日更

从金融街往事到全场景智慧金融未来

脑极体

Redis响应延时问题排查

hasWhere

区块链场景化应用大有可为

CECBC

负载均衡算法之二 - 以 Golang 方式

hedzr

Go 语言 load-balancing weighted random weighted versioning

深入了解Spring框架之WebMVC框架

邱学喆

spring webmvc HandlerMethod HandlerInterceptor

短链接生成算法

Skysper

算法

react源码解析14.手写hooks

全栈潇晨

React

我想挑战下我的软肋,动手实现个Spring应用上下文!

小傅哥

spring 应用上下文 资源加载 自动识别 扩展机制

盘点用jQuery框架实现“for循环”的四种方式!

华为云开发者联盟

jquery 遍历 js 框架 for循环

期权的初步认识

Qien Z.

期权 6月日更

CSS实战 | 磁性页头和页脚的表格制作

devpoint

CSS 6月日更

【Flutter 专题】102 何为 Flutter RenderObjects ?

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

相比买买买,我们更想在618聊一聊云厂商的能力象限价值几何

脑极体

还不会JVM调优吗?照着做就行

看山

Java JVM 6月日更

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