写点什么

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

评论

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

目前数字人民币试点仍是“4+1” 别误读了

CECBC

数字货币 央行 人民币

JDK中居然也有反模式接口常量

看山

Java 源码阅读

spark学习之IDEA配置spark并wordcount提交集群

我是程序员小贱

这样看mybatis,谁都会分析源码!

诸葛小猿

源码 mybatis mybatis源码

Bash 脚本的单元测试

柴锋

bash Linux DevOps Unit Test Shell

全面了解CGI、FastCGI、PHP-FPM

书旅

CGI PHP-FPM Fast-CGI

区块链技术--公证人机制

CECBC

区块链 数字货币 公证人

螺旋矩阵算法,臭代码解析,微服务架构 Service Mesh 服务网格 RPC 协议实现原理 Dubbo 通讯协议,John 易筋 ARTS 打卡 Week 13

John(易筋)

ARTS 打卡计划

[python基础]2 python数据类型上篇

我是程序员小贱

IT人为什么难以拿高薪?

看山

成长 随笔杂谈 薪资 心灵鸡汤

蓝绿部署、金丝雀发布(灰度发布)、AB测试

看山

微服务 持续集成

如何选择:Bootstrap Or Layui

引花眠

bootstrap layui

正则表达式位置匹配——匹配两个特殊符号中间的内容

jerry.mei

Java 正则表达式 大前端 字符串匹配

SpringBoot系列(七):SpringBoot 中使用Redis缓存

xcbeyond

Java redis 微服务 springboot

结算场景下的跳坑记

GeekYin

[python基础]3 python数据类型下篇(不得不看的字典,列表大总结)

我是程序员小贱

准时下班的秘密:集成 GitLab && JIRA 实现自动化工作流

Phoenix

团队协作 研发效能

全面剖析PHP-FPM+Nginx通信原理

书旅

nginx 正向代理与反向代理 PHP-FPM

一次由默认参数引起的思考

编程 思考

16张图入门Nginx——(前端够用,运维入门)

执鸢者

nginx 运维 大前端

这些年看过的Linux相关书籍推荐

我是程序员小贱

异常处理的那些事儿

松花皮蛋me

Java 设计模式

Java统一异常处理(配置文件集中化定义)

xcbeyond

Java 架构 后端 统一异常

年轻的樵夫哟,你掉的是这个免费 8 核 4G 公网服务器,还是这个随时可用的 Docker 实验平台?

newbe36524

Docker 微服务 .net core ASP.NET Core

SpringBoot系列(八):SpringBoot 中的事务处理

xcbeyond

Java 微服务 事务 springboot

python必备知识总结

我是程序员小贱

Nginx之反向代理

xcbeyond

nginx 反向代理 代理

ARTS 07 - 使用 supervisor 配置 ngrok 内网穿透为守护进程

jerry.mei

算法 练习 ARTS 打卡计划 ARTS活动 内网穿透

ARTS打卡 第12周

引花眠

微服务 ARTS 打卡计划

ARTS Week12

时之虫

ARTS 打卡计划 arts

SICP,我的函数式编程启蒙书

Kurtis Moxley

读书 函数式编程

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