Want to learn and master Dart?

Join Exercism’s Dart Track for access to 72 exercises with automatic analysis of your code and personal mentoring, all 100% free.

Explore exercises

About Dart

Dart combines object-oriented programming and static typing with the flexibility of dynamic languages like JavaScript. Designed to simplify common programming tasks, Dart has rapidly gained popularity in the software development community, particularly due to its close integration with Flutter, a widely-used framework for cross-platform development.

Key Concepts of Dart

  • Simple and Familiar: Dart is easy to learn for developers familiar with languages like Java, JavaScript, or C#. It features clean and consistent syntax, making it approachable.
  • Modern Object-Oriented Language: Dart incorporates modern object-oriented principles, providing robust support for classes, inheritance, and interfaces.
  • Strong Typing with Flexibility: While Dart is a statically-typed language, it offers flexible type inference and dynamic features, giving developers the best of both worlds.
  • Asynchronous Programming Made Easy: Dart’s async and await keywords simplify concurrency. The event-driven model, built around isolates (lightweight thread-like structures), allows efficient asynchronous execution without complex threading.
  • Comprehensive Tools and Libraries: Dart offers extensive built-in libraries, and its ecosystem is bolstered by Pub.dev, a package manager providing a wide range of open-source libraries and tools.
  • Cross-Platform Development: Dart powers Flutter, one of the most popular frameworks for building high-performance, cross-platform apps for mobile, web, and desktop from a single codebase.
  • Web Support: Dart code can be transpiled into JavaScript, making it suitable for both client-side and server-side web development. Frameworks like AngularDart are tailored specifically for Dart web apps.
  • Server-Side Capabilities: Dart is not just for frontend development; it can be used to build scalable server-side applications with frameworks like Shelf.
  • High Performance: Dart code is compiled to native machine code for mobile and desktop applications and optimized JavaScript for the web, delivering high performance across platforms.

Versatility of Dart

  • Mobile Apps: Dart’s most prominent use is in mobile app development through Flutter, allowing for consistent UI and business logic across iOS and Android.
  • Web Development: Dart can be compiled to JavaScript for building modern web applications, either through native Dart frameworks or Flutter for web.
  • Desktop Development: With Flutter, Dart now supports creating native applications for Windows, macOS, and Linux, offering true cross-platform capabilities.
  • Back-End Services: Dart is increasingly used in back-end services thanks to its concise syntax and performance optimizations. It can handle RESTful APIs, microservices, and more.
  • Firebase and Cloud Integration: Dart has robust support for integrating with Firebase and other cloud services through official libraries, making it a preferred choice for cloud-connected apps.

Recent Enhancements

  • Null Safety: Dart introduced sound null safety, which helps eliminate null reference errors by ensuring non-nullable types are used correctly during development.
  • Faster Compilation: Dart has made strides in improving its compilation pipeline, offering both ahead-of-time (AOT) and just-in-time (JIT) compilation, ensuring fast development cycles and optimized release builds.
  • Desktop and Embedded Devices: Flutter's expansion to desktop and embedded platforms has made Dart more versatile than ever, enabling developers to create applications for a wide range of devices beyond mobile and web.

Dart’s growing ecosystem, strong developer support, and cross-platform capabilities make it an attractive choice for modern app development.

class HelloWorld {
  void main() {
    print("Hello World");
  }
}

72 coding exercises for Dart on Exercism. From Triangle to Two Fer.


Get better at programming through fun, rewarding coding exercises that test your understanding of concepts with Exercism.

See all Dart exercises on Exercism

Key Features of Dart


Dart

Web and Mobile

Dart has the Flutter library, which can be used to quickly build web and smartphone applications.

iOS and Android

Dart can be converted into Swift and Kotlin, making mobile development fast and efficient.

Full Documentation

Dart's learning materials are constantly updated, making it easy to look up information.

Countless Packages

Easily build and publish packages for public use, which can be accessed from Dart directly.

Highly-organized Code

Dart's coding style makes it easy to read and understand.

Easy to Learn

Dart is easy to understand and great for beginners to programming.

Get mentored the Dart way

Every language has its own way of doing things. Dart is no different. Our mentors will help you learn to think like a Dart developer and how to write idiomatic code in Dart. Once you've solved an exercise, submit it to our volunteer team, and they'll give you hints, ideas, and feedback on how to make it feel more like what you'd normally see in Dart - they'll help you discover the things you don't know that you don't know.

Learn more about mentoring

Community-sourced Dart exercises

The Dart track on Exercism has 72 exercises to help you write better code. Discover new exercises as you progress and get engrossed in learning new concepts and improving the way you currently write.

See all Dart exercises
Dart

Get started with the Dart track

The best part, it’s 100% free for everyone.