写点什么

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

评论

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

马丁策略量化交易系统搭建,网格量化策略系统

Kubernetes手记(9)- Ingress 控制器

雪雷

k8s 6月日更

立flag(第………………次)

凯迪

随笔杂谈

颠覆与创新,区块链将成音乐产业的下一个风口

CECBC

系统设计系列之任务队列

看山

MQ 6月日更

GitHub已霸榜!阿里技术官肝了3个月才完成的20万字Java面试手册

Java 程序员 架构 面试

【译】JavaScript 中几种循环遍历方式对比

KooFE

6月日更

MySQL基础之十:union与limit

打工人!

myslq 6月日更

分享8个可以提高开发效率的JavaScript库

devpoint

node.js axios 6月日更

Windows 10 如何设置网络属性为私有

HoneyMoose

redis分布式锁原理

Skysper

redis 分布式锁

Java Shutdown Hook 场景使用和源码分析

陈皮的JavaLib

Java 线程安全 Thread

金三银四跳槽季,美团、字节、阿里、腾讯Java面经,终入字节

Java 程序员 架构 面试

🌏【架构师指南】带你分析认识缓存穿透/雪崩/击穿

码界西柚

缓存穿透 缓存击穿 缓存雪崩 6月日更

《原则》(十二)

Changing Lin

6月日更

「SQL数据分析系列」1. SQL背景知识介绍

Databri_AI

数据库 sql

提升代码格调——JavaScript 数组的 reduce() 方法入门

编程三昧

JavaScript 大前端 数组 js ES6

【21-5】Grafana 时间Panel 如何使用

耳东@Erdong

Grafana 6月日更 panel clock

贪心算法最优装载问题(Java代码实现)

若尘

数据结构 贪心算法 6月日更

图解 SQL,这也太形象了吧!

xcbeyond

MySQL 6月日更

给dubbo贡献源码,做梦都在修bug

捉虫大师

dubbo

职场礼仪之坐车礼仪

石云升

6月日更 职场礼仪

内卷的出路是躺平?

Qien Z.

创新 内卷 6月日更 躺平

【LeetCode】重复的DNA序列Java题解

Albert

算法 LeetCode 6月日更

区块链行业的《高考志愿填报指南》

CECBC

Django组队学习Task0

IT蜗壳-Tango

IT蜗壳教学 6月日更 Datawhale

网络攻防学习笔记 Day42

穿过生命散发芬芳

网络攻防 6月日更

一文带你深入了解 Java 字节码

mghio

技术 后端 Java 25 周年 基础

🌏【架构师指南】教你如何设计和规划系统架构(13条)

码界西柚

架构设计 架构设计原则 架构师技能 6月日更

【Flutter 专题】106 图解 AnimatedWidget & AnimatedBuilder 动画应用

阿策小和尚

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

雪花算法的原理及实现

架构精进之路

算法 6月日更

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