Buy the Aurelia 2 book here.
With the Aurelia 2 alpha coming very shortly, I have had plans for a while to write another Aurelia book, this time around on Aurelia 2. I learned a lot writing my first book and admittedly, made a few mistakes. The learning experience was invaluable.
With my first book, it came at a time when the Aurelia documentation was subpar. The book served as more of a stand-in for the lack of detailed and concise documentation. With Aurelia 2, extensive documentation work has been undertaken to the point where a book telling you about every little thing makes no sense.
The Aurelia 2 documentation which is updated regularly can be found here if you are wondering where it is located.
This time around, I wanted to write a book that is different from the first, something fun. So, I set out one night to start writing the Aurelia 2 book, not really having a clear goal in mind and after a couple of days, I had one.
The book will touch upon the fundamentals without parroting the documentation too much, it will support TypeScript and you will build an application using Aurelia 2 to get acquainted. The app you will be building is an online cat pictures store, where you can buy pictures of cats.
What You’ll Learn
- How to generate a new Aurelia 2 app from scratch
- How to configure Aurelia 2, globalising resources and including plugins
- How to work with the new direct router
- How to structure your Aurelia apps
- How to adopt a component-driven mindset to developing complex UI’s
- How to leverage new Aurelia 2 features and API’s
- How to write unit tests using Jest as well as mocks
- How to test Aurelia 2 components, staging them, querying HTML
- How to write end-to-end tests with Cypress
The book aims to go beyond just being solely about Aurelia 2, giving you practical skills.
What You’ll Build
An online store for selling cat pictures. It’ll have a homepage, category page, a detail page, a checkout screen and logged in/logged out functionality as well. An accompanying local server running SQLlite will allow your app to feel real as things are persisted.
The application will touch upon how you can add in authentication, how you can create routes, creating secured sections and other fundamentals that will translate across to actual real-world applications.
By the end of the book you’ll have a semi-real online store driven by Aurelia on the front-end, complete with tests and all. The idea is you’ll learn Aurelia 2 by building an application piece-by-piece.
A Work In Progress
Please be aware that the book structure is still being finalised, chapters added and moved around. There will be typos, mistakes in the code and possibly even things that change in Aurelia 2 itself which get removed or added to the book.
As Aurelia 2 evolves in development, so too, will the book. For the entire life of Aurelia 2, the book will be updated in step to remain an up-to-date resource. You only purchase once and all future updates to the book are free.
Buy the Aurelia 2 book here.
Sounds great! Will buyers be notified when an update is published?
Yep. Every time an update is pushed out if you have email notifications turned on, you’ll get an email. And in the Leanpub interface, you’ll see a notification icon as well.
I’ve been itching for Aurelia 2 to stabilize, but I think this book and its updates will be a good way for me to dig in without worrying about keeping up with the changes. Keep up the great work, Dwayne!
great job man
Just bought it, thank you Dwayne!
Is there a place to report issues? Specifically in the “Aurelia Templating” chapter you write there in the Summary
> .delegate for most events (where supported) and use .trigger for all other cases, except where these two do not work and then use .capture instead
which is still the recommendation in Aurelia 1 docs, whereas there in “A note about .capture” you write
> In most cases you should use .trigger because it is less error prone and confusing. If you have thousands of events in your app, you might find yourself needing to use delegate eventually, but don’t prematurely optimise.