![Flutter: Platform Aware Widgets and Dialogs](https://www.cdn5.niftycent.com/d/e/b/y/r/v/R/flutter-platform-aware-widgets-and-dialogs.webp)
Tutorial showing how to switch between Material and Cupertino widgets, and increase code reuse by building a platform-aware abstract base class with concrete sub-classes. Includes an overview of dialogs and their platform-specific differences. https://codewithandrea.com/videos/flutter-platform-aware-widgets-dialogs/
![Flutter will change everything, and is an excellent choice for iOS development](https://www.cdn5.niftycent.com/d/e/7/6/N/j/r/flutter-will-change-everything-and-is-an-excellent-choice-for-ios-development.webp)
Controversial article with some history and a detailed comparison between Flutter and native iOS development. Includes an example showing how to build a contact list in Flutter and iOS. https://codewithandrea.com/articles/flutter-will-change-everything/
![Flutter will change everything: A Follow Up](https://www.cdn5.niftycent.com/d/1/Y/X/A/g/O/flutter-will-change-everything-a-follow-up.webp)
Clarifications and apologies following my previous article. https://codewithandrea.com/articles/flutter-on-ios-a-follow-up/
![Dart vs Swift: a comparison](https://www.cdn5.niftycent.com/d/k/K/7/K/g/G/dart-vs-swift-a-comparison.webp)
Detailed side-by-side comparison of language features between Dart 2.1 and Swift 4.2. https://codewithandrea.com/articles/dart-vs-swift-a-comparison/
![My 2018 year in review with Flutter](https://www.cdn5.niftycent.com/d/D/y/3/Z/O/l/my-2018-year-in-review-with-flutter.webp)
Retrospective article about my year as a Flutter developer, blogger and YouTuber in 2018. https://codewithandrea.com/articles/my-2018-year-in-review/
![Introduction to Dart - Part 1: Variables and Types](https://www.cdn5.niftycent.com/d/D/v/a/l/R/a/introduction-to-dart-part-1-variables-and-types.webp)
Dart introduction showing how to write a simple program in Dartpad. Includes variable declaration and initialization, string interpolation, type inference, var, final and dynamic. https://codewithandrea.com/videos/intro-to-dart-part1-variables-types/
![Introduction to Dart - Part 2: Functions](https://www.cdn5.niftycent.com/d/D/3/X/V/m/o/introduction-to-dart-part-2-functions.webp)
Dart introduction covering functions, including return types, optional parameters, nullability and default values, named parameters and the arrow operator. https://codewithandrea.com/videos/intro-to-dart-part2-functions/
![Introduction to Dart - Part 3: Classes](https://www.cdn5.niftycent.com/d/D/P/O/9/6/B/introduction-to-dart-part-3-classes.webp)
Dart introduction covering classes, including class & super constructors, instance methods, inheritance, base Object classes and the toString() method, abstract classes and computed properties. https://codewithandrea.com/videos/intro-to-dart-part3-classes/
![Introduction to Dart - Part 4: Collections and Generics](https://www.cdn5.niftycent.com/d/k/l/B/3/g/5/introduction-to-dart-part-4-collections-and-generics.webp)
Dart introduction covering list, maps and generics with type annotations. https://codewithandrea.com/videos/intro-to-dart-part4-collections-generics/
![Introduction to Dart - Part 5: Control Flow](https://www.cdn5.niftycent.com/d/D/2/W/R/a/K/introduction-to-dart-part-5-control-flow.webp)
Dart introduction covering if & else statements, the ternary operator, while and for loops, closures and the fold method, enumerations and switch statements. https://codewithandrea.com/videos/intro-to-dart-part5-control-flow/