Add extension method for easy creation (#11)

diff --git a/.travis.yml b/.travis.yml
index 27cdad6..8f0ecf6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,7 @@
 language: dart
 dart:
 - dev
-- 2.5.0
+- stable
 # Only building master means that we don't run two builds for each pull request.
 dart_task:
 - test: --platform vm,chrome
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 198373a..2346cf1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,16 @@
 # Changelog
 
+## 0.4.0
+
+* Added an extension method on `String` to allow easy access to the `Characters`
+  of the string:
+
+  ```dart
+  print('The first character is: ' + myString.characters.first)
+  ```
+
+* Updated Dart SDK dependency to Dart 2.6.0
+
 ## 0.3.1
 
 * Added small example in `example/main.dart`
diff --git a/example/main.dart b/example/main.dart
index 65cda68..b01e334 100644
--- a/example/main.dart
+++ b/example/main.dart
@@ -8,11 +8,15 @@
 
   // Length.
   print('String.length: ${hi.length}');
-  print('Characters.length: ${Characters(hi).length}\n');
+  print('Characters.length: ${hi.characters.length}\n');
+
+  // Last character.
+  print('The string ends with: ${hi.substring(hi.length - 1)}');
+  print('The last character: ${hi.characters.last}\n');
 
   // Skip last character.
-  print('String.substring: "${hi.substring(0, hi.length - 1)}"');
-  print('Characters.skipLast: "${Characters(hi).skipLast(1)}"\n');
+  print('Substring -1: "${hi.substring(0, hi.length - 1)}"');
+  print('Skipping last character: "${hi.characters.skipLast(1)}"\n');
 
   // Replace characters.
   Characters newHi =
diff --git a/lib/characters.dart b/lib/characters.dart
index 73dce47..d56d787 100644
--- a/lib/characters.dart
+++ b/lib/characters.dart
@@ -6,3 +6,4 @@
 library characters;
 
 export "src/characters.dart";
+export "src/extensions.dart";
diff --git a/lib/src/extensions.dart b/lib/src/extensions.dart
new file mode 100644
index 0000000..b661daf
--- /dev/null
+++ b/lib/src/extensions.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'characters.dart';
+
+extension StringCharacters on String {
+  /// The [Characters] of this string.
+  Characters get characters => Characters(this);
+}
diff --git a/pubspec.yaml b/pubspec.yaml
index be2d3a7..f12c032 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,11 +1,10 @@
 name: characters
-version: 0.3.1
+version: 0.4.0
 description: String replacement with operations that are Unicode/grapheme cluster aware.
-author: Dart Team <misc@dartlang.org>
 homepage: https://www.github.com/dart-lang/characters
 
 environment:
-  sdk: ">=2.5.0 <3.0.0"
+  sdk: ">=2.6.0 <3.0.0"
 dev_dependencies:
   test: "^1.6.0"
   pedantic: