Skip to main content

Posts

New site for Dart news and articles

For the latest Dart news, visit our new blog at  https://medium.com/dartlang .

Dart Developer Summit announcements: AngularDart 2.0 and more

The Dart Developer Summit is only 5 weeks ahead, and we’re excited about its agenda: 17 talks, many demos, 25 speakers, plus a lightning talks session and a panel discussion. Expect the full program soon on the site, but here’s a teaser: Major improvements to the type system Much better interoperability with JavaScript Improved developer workflow AngularDart 2.0 And much more We will share more details as we approach the summit. Because the TypeScript flavor of Angular just released  version 2.0 last week, we think it’s a good opportunity to share more details about AngularDart 2.0. Besides the changes you’d expect, such as faster execution and reduced size (on which we’re already making a lot of progress ), we will also have a better template compiler and some nice surprises for you. The beta releases of AngularDart have been in production use at Google since January, in MLOC-sized apps. This has helped us to see what works well for large apps, and to improve...

Configuring Static Analysis using an Analysis Options File

Static analysis allows you to find problems before executing a single line of code. It’s a powerful tool used to prevent bugs and ensure that code conforms to style guidelines. With the help of the analyzer, you can find simple typos. For example, an accidental semicolon made its way into an if statement: The analyzer can also help you find more subtle problems. For example, perhaps you've forgotten to close a sink instance: In the Dart ecosystem, the Dart Analysis Server and other tools use the analyzer package to perform static analysis. You can configure the analyzer using an analysis options file. For more information, see our new page, Customize Static Analysis .

Dart 1.19: Improved developer experiences

Dart 1.19 is now available. Get it now! We closely collaborate with the Flutter team on providing the best developer experience for Dart for Mobile. This includes language changes that optimize the Flutter development experience. Dart code for Flutter apps commonly have long argument lists. Before 1.19, a trailing comma was not allowed after the last argument. This made it really tedious when removing the last argument, or when reordering the arguments. With 1.19 we introduce support for an optional trailing comma after the last argument of a call and the last parameter of a function declaration. This makes code editing much easier: If you've struggled with package directory symlinks, you're in luck. You can now opt-out of creating a package directory and the associated symlinks scattered around your project directories. The flag to provide to pub get and pub upgrade is --no-packages-dir . We've posted a detailed writeup of the changes if you'd like more infor...

So Long, Symlinks!

Long ago, back in the dawn of time, when nary a Dart file was to be found outside of the SDK repository , imports in Dart only supported file paths. As the language got older and an ecosystem began to grow around it, it quickly became clear that paths weren’t enough: Dart needed a way to import libraries that didn’t care about the location of the file doing the importing. The language team talked to the VM team and they came up with a solution. In addition to file: URIs, Dart would support a new package: scheme by looking for packages in a packages/ directory next to the entrypoint, wherever that happened to be. This worked pretty well—well enough to form the foundation for the pub package manager, written by Bob and myself. But it also had flaws. A lot of symlinks had to be generated all over every package—the test package currently contains about four hundred. Not only was this messy, many tools ended up following the symlinks and corrupting the package cache. So the team cam...

Dart 1.18: Laying foundations

Dart 1.18 is now available. Go get it! The team has been focused on implementation details over the last six weeks. The API changes to the SDK are very light – see the CHANGELOG – but we have been working hard laying the foundation for a number of important projects. Improve the development and runtime experience for  Flutter . Improve the speed and stability of Dart Analyzer, especially as it relates to dev_compiler . Work to finalize two language tweaks Initializing formals: https://github.com/dart-lang/sdk/issues/26655 Allow trailing commas: https://github.com/dart-lang/sdk/issues/26644 Download the latest release. Let us know what you think!

AngularDart is going all Dart

Until now, the multiple language flavors of Angular 2 were written as TypeScript source, and then automatically compiled to both JavaScript and Dart. We're happy to announce that we’re splitting the Angular 2 codebase into two flavors – a Dart version and a TypeScript/JavaScript version – and creating a dedicated AngularDart team. This is amazing news for Dart developers because: The framework will feel more like idiomatic Dart. It will make use of Dart features that couldn't work with the TypeScript flavor. It will be faster. This is equally great news for our TypeScript and JavaScript developers, by the way. Cleaner API, performance gains, easier contributions. Read more on the Angular blog. Angular 2 for Dart is used by many teams at Google. Most famously by the AdWords team, but many other Google teams build large, mobile-friendly web apps. Some of the top requests from these teams were: make the API feel like Dart, provide a faster edit-refresh cycle, and ...

Changes at dartlang.org

Today we simplified dartlang.org, making it reflect the current state of the project a little bit better. We have www.dartlang.org for the fundamental Dart technologies—the language itself and the core libraries. And then we have separate websites for the different targets: webdev.dartlang.org for web apps Flutter for iOS & Android native apps Dartino for IoT Dart VM for command-line apps and servers Some other changes we made: Feature the pages that people visit most often. Show the core goals of the project on the homepage. Completely rework the information architecture, from domains down to individual pages and sections. Set up events.dartlang.org for hosting event-related micro-sites. Reimplement the sites to make maintenance easier. More significant changes will come, but we needed to land these changes before going further. If you notice that something's broken or could just be better, please let us know using the relevant issue tracker: www.dar...