وبلاگ بلیان

Shift Point: Book Nine in The Mad Mick Series

معرفی کتاب «Shift Point: Book Nine in The Mad Mick Series» نوشتهٔ Daria Orlova، Esra Kadah، Jaime Blasco و Franklin Horton، منتشرشده توسط نشر 2023 در سال 2023. این کتاب در فرمت epub، زبان انگلیسی ارائه شده است.

Elevate your mobile app development skills using reusable software development methodologies and code design principles, leveraging proven strategies from industry experts who have fostered thriving developer communities Key Features Cover code structure, app architecture, testing, performance optimization, error handling, and more Get hands on with code examples and exercises to apply design patterns and best practices in real-world scenarios Leverage the intricacies of the Flutter framework to build better apps for your clients Book Description Flutter’s rapid adoption by developers and businesses alike has led to an increased demand for skilled developers who can deliver high-quality Flutter apps. Flutter can be a great tool to develop apps for yourself, but you don’t always need to consider things like scalability or business goals as a hobbyist. When you build apps for a business, however, you must use specific tools to help the business achieve its goals. This requires solutions to be fast, reliable, and delivered on time. This book will help you meet these business requirements. You'll begin by learning how to build responsive UIs that work on all devices. Next, you'll delve into state management, understanding how to select the appropriate solution and gaining hands-on experience with InheritedWidget, ChangeNotifier, and BLoC. Later, you'll move on to high-level practices such as layered architecture, dependency injection, and repository patterns. The book will also show you how to develop features of any complexity, such as multithreading and native layer implementations. You'll also learn how to ensure the quality of your solutions by prioritizing testing. By the end of this book, you'll be able to deliver well-architected Flutter projects that are stable, scalable, and maintainable. What you will learn Translate business requirements into technical solutions Understand when and where specific design patterns would be applicable Separate concerns into multiple layers with scoped responsibility Build reusable architecture that can be applied to any type of app and supported by various teams Debug and solve problems before they reach the user Prevent production bugs by prioritizing testing during the development cycle Design encapsulated features that are resilient to business requirement changes and software updates Who this book is for If you’re a mobile developer who has already realized the potential of Flutter as a tool to solve business problems and are looking forward to leveling up your app-building skills, then this book is for you. Freelancers, agencies, or individuals who have already developed basic applications with Flutter and want to level up their skills to build production-ready apps at scale will find this book helpful. Basic Flutter knowledge and experience in building apps will be beneficial. Moreover, if you’re transitioning from another mobile framework, this book will make the transition easier. Flutter Design Patterns and Best Practices Contributors About the authors About the reviewer Preface Who this book is for What this book covers To get the most out of this book Download the example code files Conventions used Get in touch Share Your Thoughts Download a free PDF copy of this book Part 1: Building Delightful User Interfaces 1 Best Practices for Building UIs with Flutter Understanding the difference between declarative and imperative UI design Understanding the imperative paradigm Understanding the declarative paradigm Does Flutter use the declarative or imperative paradigm? Everything is a widget! Or is it? What is a widget? Getting to know the RenderObjectWidget and its children Unveiling the Element class Reduce, reuse, recycle! Pushing rebuilds down the tree Avoiding redundant rebuilds Avoiding redundant repaints Optimizing scroll view performance Summary 2 Responsive UIs for All Devices Technical requirements Understanding the Flutter layout algorithm Understanding BoxConstraints How do constraints determine the child widget’s size? Understanding the limitations of the layout rule Designing responsive apps with Flutter Getting to know the user’s device with MediaQuery Creating adaptive layouts Positioning widgets relative to each other Building flexible layouts Scrollable items Other layouts Ensuring accessibility in Flutter apps Getting to know accessibility widgets in Flutter Font size and color contrast Dev tooling for accessibility Manual review Summary Part 2: Connecting UI with Business Logic 3 Vanilla State Management Technical requirements What is state? Understanding the difference between ephemeral and app state Getting to know our Candy Store app Managing state the vanilla Flutter way Lifting the state up Understanding the Observer pattern Passing around dependencies via InheritedWidget What is InheritedWidget? Understanding the .of(context) pattern Creating the CartProvider class Interacting with BuildContext in the right place, at the right time What is BuildContext? Context does not contain the widget Context contains the widget, but not the one you expect Context accessed too early! Context accessed too late! Summary 4 State Management Patterns and Their Implementations Technical requirements Diving into the world of MVX patterns Defining criteria for the state management pattern Embracing data binding with MVVM in Flutter Extracting data logic into the Model Emitting data via the Streams API Encapsulating state in CartState Implementing the MVVM and MVI patterns with flutter_bloc What is a cubit? Understanding the MVI pattern Implementing MVI with BLoC Embracing the UDF pattern Implementing the Segmented State Pattern Avoiding bugs related to state equality and mutability Summary 5 Creating Consistent Navigation Technical requirements Getting started with navigation basics in Flutter Understanding Navigator 1.0 and routes Leveling up with advanced navigation techniques Navigator 2.0 and declarative routing Comparing Navigation 1.0 and 2.0 Summary Part 3: Exploring Practical Design Patterns and Architecture Best Practices 6 The Responsible Repository Pattern Technical requirements Introducing the repository pattern How the repository pattern works Setting up our first repository Defining responsibilities Creating our first repository Defining repository interfaces Why use repository interfaces? Implementing repository interfaces Building a data source Repository interfaces and data sources Setting up remote data sources Integrating NetworkProductRepository Creating a local database using Hive Adding Hive to your project Creating a local data source Repository interfaces Implementing repository data retrieval Enhancing our product repository Integrating the repository Integrating the repository with our business logic Caching strategies Caching strategy Implementing offline mode Understanding data synchronization Implementing data synchronization Automating synchronization Refactoring the CartModel Summary 7 Implementing the Inversion of Control Principle Technical requirements Decoupling dependency creation from usage Identifying the singleton pattern Introducing the IoC principle Implementing the DI pattern via RepositoryProvider Injecting dependencies via a constructor Providing dependencies via RepositoryProvider Implementing SL pattern via get_it Bonus tip – using injectable Selecting the right tool for the job Summary 8 Ensuring Scalability and Maintainability with Layered Architecture Technical requirements Exploring layered architecture Introducing multitier architecture layers Implementing multitier architecture in the Candy Store app Defining layers and features Implementing layer-first architecture Implementing feature-first architecture Exploring file structure organization in Flutter Scoping dependencies to a feature life cycle How to connect multiple data sources Following software design principles Deciphering the acronyms of SOLID, DRY, KISS, and YAGNI Summary 9 Mastering Concurrent Programming in Dart Technical requirements Dart is single-threaded. Or is it? Understanding synchronous, concurrent, and parallel operations What is the event loop? Understanding blocking operations in Flutter Working with Future APIs in Dart What does the Future hold? Understanding the concept of async To chain Futures or to await, that is the question Handling independent Futures efficiently Embracing parallelism with isolates Implementing fuzzy search in the Candy Store app Understanding the concept of isolates Summary 10 A Bridge to the Native Side of Development Technical requirements Understanding Flutter app architecture Diving into the Flutter framework layers How does Flutter communicate with the native layer? Encoding data with MessageCodec Working with platform channels Selecting the platform channel type Implementing the UI of the Favorites feature Using MethodChannel for favoriting items Understanding Kotlin Understanding Swift Overviewing the problems introduced by vanilla MethodChannel channels Ensuring type-safe communication via pigeon code generation Configuring a pigeon interface Connecting client and host via pigeon-generated code What else you can (and can’t) do with pigeon Summary Part 4: Ensuring App Quality and Stability 11 Unit Tests, Widget Tests, and Mocking Dependencies Technical requirements Getting started with unit testing Introducing a fake repository Creating test data Writing unit tests Widget testing fundamentals Implementing a golden file test Creating the CandyShopGoldenTestWidgetsPage widget Writing widget tests Integration testing fundamentals Creating a fake repository Displaying an item in the cart test Creating the widget test with interaction Mocking dependencies for effective testing Understanding mocking and mockito Writing the unit test with mockito Summary 12 Static Code Analysis and Debugging Tools Technical requirements Following coding conventions Using the dart format command Following the Effective Dart conventions Ensuring consistency and preventing bugs with static code analysis Customizing lint rule list in analysis_options.yaml Exploring lint setup strategies Using the DCM tool Creating custom lints Exploring debugging practices and tools Logging – the good, the bad, and the ugly Using assertions to catch errors in debug mode Debugging code with breakpoints Diving into the world of Flutter DevTools Summary Index Why subscribe? Other Books You May Enjoy Packt is searching for authors like you Share Your Thoughts Download a free PDF copy of this book Write, test, and publish your web, desktop, and embedded apps with this most up-to-date book on Flutter using the Dart programming language.Key FeaturesThoroughly updated to cover the latest features in Flutter 3.10.x and Dart 3.xPractical recipes to publish responsive, multi-platform apps from a single databaseCovers not just the ‘hows'but the ‘whys'of Flutter's features with examplesBook DescriptionAre you ready to tap into the immense potential of Flutter? With over 1,000 new mobile apps published every day on the Apple and Google Play stores, Flutter is transforming the landscape of app development. It's time for you to join the revolution. Introducing the second edition of Flutter Cookbook, a step-by-step guide designed exclusively for you. Whether you're a seasoned developer or just starting your coding journey, this book is your ultimate companion. Dive into the latest features of Flutter 3.10 and unlock the secrets to building professional-grade, cross-platform applications. With our recipe-based approach, we'll not only show you how to implement Flutter's features but also explain why they work. Through practical examples and real-world execution, you'll gain a deeper understanding of Flutter's inner workings. From crafting stunning UI/UX with widgets to leveraging hot reload and restart techniques, we'll equip you with best practices and invaluable knowledge. As you progress, you'll learn to efficiently manage data, add interactivity and animations, and integrate essential Flutter plugins like maps, camera, voice recognition and more. And let's not forget the dedicated chapter on implementing MLkit powered by TensorFlow Lite. We'll guide you through building custom machine learning solutions, expanding the capabilities of your apps. By the time you reach the end of this comprehensive Flutter book, you'll have the skills and confidence to write and deliver fully functional apps.What you will learnFamiliarize yourself with Dart fundamentals and set up your development environmentEfficiently track and eliminate code errors with proper toolsCreate various screens using multiple widgets to effectively manage dataCraft interactive and responsive apps by incorporating routing, page navigation, and input field text readingDesign and implement a reusable architecture suitable for any appMaintain control of your codebase through automated testing and developer toolingDevelop engaging animations using the necessary toolsEnhance your apps with ML features using Firebase MLKit and TensorFlow LiteSuccessfully publish your app on the Google Play Store and the Apple App StoreWho this book is forDevelopers who are familiar with the OOP language and prefer learning-by-doing will get the most out of this book. If you have some experience building apps on Flutter or have been playing around with the framework for some time now and have set eyes on developing mobile apps using Dart, then this book is for you. Follow this step-by-step illustrated guide to launch your own Flutter apps and gain hands-on experienceKey FeaturesGet up to speed with the basics of Dart programming and delve into Flutter developmentLearn about Flutter widgets, plugins, and animations to create a high-quality, user-friendly appPackage and deploy your Flutter apps to achieve native-like performancePurchase of the print or Kindle book includes a free PDF eBookBook DescriptionThere have been many attempts at creating frameworks that are truly cross-platform, but most struggle to create a native-like experience at high-performance levels. Flutter achieves this with an elegant design and a wealth of third-party plugins, solidifying its status as the future of mobile app development. If you are a mobile developer who wants to create rich and expressive native apps with the latest Google Flutter framework, this book is for you. You'll start with the basics of cross-platform development frameworks, specifically Flutter. You'll then explore the Dart programming language which is the foundation of the Flutter framework. Next, you'll get a feel for Flutter and how to create your first app, followed by an exploration of the various popular plugins that supplement the Flutter framework. Finally, you'll explore testing and app release, including some common glitches that you may experience. By the end of this book, you'll be well-equipped to create and release a basic Flutter app along with gaining a solid understanding of the Flutter framework and Dart language.What you will learnUnderstand the Flutter framework and cross-platform developmentAcclimate the fundamentals of the Dart programming languageExplore Flutter widgets, the core widget library, and stateful and stateless widgetsDiscover the complete development lifecycle, including testing and debuggingGet familiar with both the mobile and web app release processesDig deeper into more advanced Flutter concepts like animationExplore common Flutter plugins ad how to use themDiscover the Flutter community and how to stay up-to-dateWho this book is forIf you are an existing mobile developer seeking a better way to develop cross-platform apps, an existing software developer looking to explore mobile app development, or someone investigating mobile apps and simply wants to know what the Flutter fuss is about, this is the book for you. Prior knowledge of Flutter and Dart is not required.
دانلود کتاب Shift Point: Book Nine in The Mad Mick Series