My journey in programming has been diverse, from backend and frontend roles to full-stack development, software architecture, and developer relationships. Each step has enriched my insight into exceptional software engineering.
As someone naturally drawn to logic and analysis, I have often considered what makes a great software engineer and how to plan an app and manage its development effectively. "Flutter Engineering" aims to answer these questions and more. This book lays the foundation for a broader understanding of app development, offering knowledge, architectural insights, and advanced Flutter-specific content. This project is your gateway to look at software engineering concepts in Flutter. It is designed to guide, open doors, and help you explore.
During my year-long effort, I approached Flutter from an engineering perspective rather than merely a programming skill. As a Flutter engineer, building an app requires more than just coding skills. The “Flutter Engineering” project (flutterengineering.io) and this book were created to share this knowledge. Welcome to "Flutter Engineering."
This book is intended for readers with a basic understanding of Flutter and some experience with Dart programming and Flutter. It is unnecessary to be an expert, but if you have no prior experience with Flutter and want to learn it from scratch, this book may not suit you, as I have this assumption while explaining concepts.
This book is meant to help beginner and professional Flutter developers level up their skills in software engineering.
This book covers various software engineering topics in Flutter and is divided into five parts, each addressing specific areas of interest and expertise.
Whether a beginner or an experienced developer, this book can offer you something to learn. Although the book covers a wide range of topics, discussing each topic in detail could deserve a dedicated book. It is impossible to cover all the details and edge cases in one book, but I have done my best to cover the most important details. I plan to discuss topics I could not detail enough and cover edge cases on flutterengineering.io, so subscribe to the newsletter for free access to additional content.
This book has been designed to allow you to read each chapter independently. You are free to start from any part of the book. However, reading an entire part from start to end is always better. Certain fundamental concepts must be understood before proceeding to subsequent chapters. Therefore, I do not recommend starting with chapters that follow the previous chapter. Usually, in the introduction of each chapter, I mention if you should have read another chapter before starting it. Pay attention to this detail to read and understand the book better.
As you progress through this book, you'll encounter various conventions to enhance your reading and learning experience. Knowing these will help you understand and navigate the content more effectively.
Code: I have tried to use inline code where it’s possible to highlight the difference between regular text and a piece of code within the paragraphs.