Hello. That’s a good question, one that I’m sure other people will have as well so let me take some time to write a detailed answer.
The original Dart Apprentice was 10 chapters. During the update we decided to split some of the long chapters up as well as add some new chapters. Eventually those 10 chapters grew to more than 20 chapters. We didn’t want to overwhelm readers with a massive book that they would never finish, so we decided split the book into two. We retired the old Dart Apprentice book and have created two new books: Dart Apprentice: Fundamentals and Dart Apprentice: Beyond the Basics. Both books include large portions of the original Dart Apprentice book but they also both contain extensive updates and additions, especially Dart Apprentice: Beyond the Basics.
For brevity’s sake, I’ll use the following abbreviations:
Dart Apprentice = DA
Dart Apprentice: Fundamentals = DAF
Dart Apprentice: Beyond the Basics = DABB
Note that DA is up to date for Dart 2.12 (null safety) while DAF and DABB are up to date (at the time of this writing) for Dart 2.18. DAF and DABB will continue to get updates in the future, but DA will not.
Here is how the books compare:
Dart Apprentice: Fundamentals
Hello, Dart!: This chapter is essentially the same as DA chapter 1. However, there are many updates since the default way of creating projects is different in Dart 2.18 than it was in Dart 2.12.
Expressions, Variables & Constants: Basically the same as DA chapter 2.
Types & Operations: Content from DA chapter 3 but with Strings moved to its own chapter.
Strings: Content from the Strings section of DA chapter 3.
Control Flow: Content from DA chapter 4 but with loops moved to its own chapter.
Loops: Content from the loops section of DA chapter 4. Some confusing parts were rewritten. For-in and for-each loops are held back from this section because they require knowledge of collections and anonymous functions.
Functions: Content from DA chapter 5. Anonymous functions are not taught in this chapter because they are a more advanced topic. This will be covered in DABB.
Classes: Content from several sections of DA chapter 6. Added some new content on encapsulation.
Constructors: Content from the Constructors section of DA chapter 6. Added some content related to the lib folder and addressed some reader confusion in DA.
Static Members: Content from DA chapter 6. Expanded the section on utility methods.
Nullability: Content from DA chapter 7. Minimal changes.
Lists: Content from lists section of DA chapter 8.
Sets: Content from sets section of DA chapter 8. Added section on random number generation. Also added section on set differences.
Maps: Content from maps section of DA chapter 8. Added a large section on map to JSON conversion.
Iterables: New chapter, new content. Also covers generators.
In summary, most of the DAF content is covered in DA. Some of the more advanced topics were pulled out and saved for DABB.
Dart Apprentice: Beyond the Basics
String Manipulation: New chapter, new content. Focus on string validation, substrings and regex.
Anonymous Functions: Large rewrite but includes content from DA chapter 5 and chapter 8. New sections on callbacks, tearoffs, and typedefs.
Inheritance: Content from Inheritance section of DA chapter 9. Updates on super keyword.
Abstract Classes: Content from Abstract Classes section of DA chapter 9.
Interfaces: Content from Interfaces section of DA chapter 9.
Mixins: Content from Mixins section of DA chapter 9.
Extension Methods: Content from Extension Methods section of DA chapter 9.
Generics: New chapter, new content.
Enhanced Enums: New chapter, new content.
Error Handling: New chapter, new content. Also includes debugging.
Concurrency: Expansion on Concurrency section of DA chapter 10. Long explanation of challenge 1.
Futures: Content from Futures section of DA chapter 10. New section on creating futures from scratch.
Streams: Content from Streams section of DA chapter 10. New section on creating streams from scratch.
Isolates: Large expansion on Isolates section of DA chapter 10. New section on two-way isolate communication.
In summary, DABB is based on the more advanced content from DA but also includes a lot of expansions and new material.
If you already have DA, you probably don’t need to get DAF and DABB. Since DA was already updated for null safety, most of the code in it still works just fine. You can fill in the missing topics by reading online documentation and tutorials. However, DAF and DABB are a significant improvement overall, both in learning sequence and in content.