Dart 1.15 リリースノートとこれからのDartの進みなど

こんにちは。3月9日に、Dart1.15がリリースされました。

[Dart News & Updates: Dart 1.15: Updated Dartium and improved live code analysis](http://news.dartlang.org/2016/03/dart-115-updated-dartium-and-improved.html)

今回の変更点等、簡単にまとめたいと思います。

# 変更点まとめ
 * Dartiumのバージョンの更新
 * 動的コード解析の質の向上
 * リリース期間の変更
 
などです。詳しい説明は下を。

# 1.15変更点

## ツール変更

### Dartiumのバージョン更新

DartiumのベースとなるChromeのバージョンが、**Chrome version 39**から**Chrome version 45** に更新されました。

ですが、DartのBrowser関係のライブラリ(`dart:html`,`dart:svg`など)はまだアップデートされていません。これらのライブラリはいまだにChrome version 39をベースとしています。これからのリリースでアップデートされる予定となっているようです。

Note : また、幾つかの実験的なAPIは、古いライブラリで動かないことがあります。例えば、`Element.animate`など。

### dartfmt

アノテーションの取り扱いなどが変わったようです。詳しくは[こちら](https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md#tool-changes)をご覧ください。

## コアライブラリの変更

### dart:async

* `StreamView`クラスのコンストラクタが`const`コンストラクタになりました。
[StreamView class - dart:async library - Dart API](https://api.dartlang.org/stable/1.15.0/dart-async/StreamView-class.html)

### dart:core

* `Uri.queryParametersAll`プロパティが追加されました。これは、複数のクエリパラメーターを同じ名前で扱うためのものです。
[queryParametersAll property - Uri class - dart:core library - Dart API](https://api.dartlang.org/stable/1.15.0/dart-core/Uri/queryParametersAll.html)

### dart:io

* `SecurityContext.usePrivateKeyBytes`,`SecurityContext.useCertificateChainBytes`, `SecurityContext.setTrustedCertificatesBytes`, `SecurityContext.setClientAuthoritiesBytes`が追加されました。
[SecurityContext class - dart:io library - Dart API](https://api.dartlang.org/stable/1.15.0/dart-io/SecurityContext-class.html)
* **Breaking** `setTrustedCertificates`から`directory`引数が取り除かれました
[setTrustedCertificates method - SecurityContext class - dart:io library - Dart API](https://api.dartlang.org/stable/1.15.0/dart-io/SecurityContext/setTrustedCertificates.html)
* `SecurityContext`でPKCS12がサポートされました。
* `SecurityContext`の中で証明書データを受け入れる全ての関数にオプショナル引数である`password`が追加されました。
[SecurityContext class - dart:io library - Dart API](https://api.dartlang.org/stable/1.15.0/dart-io/SecurityContext-class.html)

## 言語仕様変更

[configuration-specific imports](https://github.com/munificent/dep-interface-libraries/blob/master/Proposal.md)がサポートされました。これに関しての記事はまたあとでまとめます(まとめていただけるともっと嬉しい)。ioとhtmlで同じ様にライブラリのAPIを提供できるようにするものだと思われます。


詳しい内容は[CHANGELOG](https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md)にありますので、確認してみてください。

# リリース期間の変更

そもそも今回の1.15は去年の４月ごろに発表されたDart SDK Roadmapには存在しないものでした。

![sdk-roadmap.png](https://qiita-image-store.s3.amazonaws.com/0/34961/9701df96-e7d5-aa4c-f3c3-c6369befd5f8.png)

本来なら2月に2.0が出るはずだったのですが…
さて、ここでGitHubのsdkレポジトリのmilestoneを確認してみましょう！

![スクリーンショット 2016-03-12 23.17.09.png](https://qiita-image-store.s3.amazonaws.com/0/34961/d79abfaa-ad22-c45c-55cb-7b2a1418a249.png)

1.16と1.17が追加されています。
なんだよこれ。


上にあるSDK Roadmapはほぼ意味をなくしたと言っていいでしょう。上で紹介したブログの記事に、このような文面がありました。

>Historically the Dart SDK has released a new stable release roughly every 2-3 months. The release duration has varied from release to release. Going forward we are going to attempt to ship on a more predictable schedule with a new release of the SDK every six weeks. A release candidate will be made available roughly a week before the final release.

今まで2-3ヶ月毎にリリースしていたDartは、これからは六週間ごとに新しいバージョンをリリースするように試みるつもりでいるようです。

2.0のリリースは当分先、少なくとも6月以降になりそうです。気長に待ちましょう。