آموزش‌های پیشرفته فلاتر با مجید حاجیان

ساخت اپلیکیشن‌ های شگفت‌انگیز فلاتر با اطمینان

flutter engineering book

فراتر از کدنویسی معمولی:

به عمق مهندسی نرم افزار در فلاتر بروید. این کتاب فقط درمورد این نیست که کد ها کارکنند؛ بلکه برای تسلط پیدا کردن به هنر مهندسی نرم افزار است. از درک استراتژی‌های سطح بالا تا مفاهیم پیشرفته، من در تلاش هستم تا شما را به یک متخصص فلاتر تبدیل کنم

FOO
BAR
BAZ

.این کتاب بر مثال‌های عملی تأکید دارد. شما موضوعات مختلف را به‌صورت فصل به فصل و با سرعت خودتان یاد خواهید گرفت. این کتاب نیازمند تجربه و دانش قبلی درمورد فلاتر و دارت است.

چگونه می‌توانم یک مهندس فلاتر بهتری شوم؟

— یک توسعه‌دهنده فلاتر

سلام! من مجید حاجیان هستم،نویسنده کتاب مهندسی فلاتر. از سال 2006 به عنوان یک مهندس نرم‌افزار مشتاق فعالیت می‌کنم و در نقش‌های مختلفی از توسعه‌دهنده تا معمار نرم‌افزار کار کرده‌ام. از سال 2019 رهبر و مدرس جامعه فلاتر بوده‌ام. از زمانی که این نقش‌ها را پذیرفته‌ام، این سوال همواره مطرح بوده است

مجید حاجیان

در طول دوران کاری‌ام، در نقش‌های مختلفی مانند برنامه‌نویس بک‌اند، فرانت‌اند، فول‌استک، معمار نرم‌افزار و اخیراً به عنوان رئیس روابط توسعه‌دهندگان فعالیت کرده‌ام. با استفاده از تجربیاتم، تقریباً یک سال صرف توسعه پروژه "مهندسی فلاتر" کرده‌ام. هدفم ارتقاء مهارت‌های شما و هدایت شما به سوی تخصص در این پروژه است. از طریق "مهندسی فلاتر"، قصد دارم درس‌های ارزشمندی که در طول دوران کاری‌ام آموخته‌ام را به اشتراک بگذارم.

اگرچه تمایل دارم به رویکرد منطقی و تحلیلی که باعث مهارت من در برنامه‌نویسی می‌شود، عمل کنم، اما همیشه در مورد تبدیل شدن به یک مهندس نرم‌افزار برتر کنجکاو هستم. مؤثرترین راه برای طراحی معماری یک برنامه چیست؟ چگونه می‌توانم تمامی جنبه‌های توسعه اپلیکیشن را مدیریت کنم، نه فقط کدنویسی؟

نگاهی به پروژه "مهندسی فلاتر" بیندازید! من یک کتاب با محتوای معماری و پیشرفته و مطالب پشتیبانی مانند ویدیوها، نمونه‌های کد، پادکست و خبرنامه گردآوری کرده‌ام.

پروژه مهندسی فلاتر فراتر از کتاب است، به مفاهیم مهندسی نرم‌افزار و موضوعات پیشرفته‌ای که برای توسعه اپلیکیشن‌های فلاتر طراحی شده‌اند، می‌پردازد.

فهرست مطالب

توجه داشته باشید که این کتاب به زبان انگلیسی نوشته شده است و هنوز ترجمه فارسی برای آن موجود نیست. برای مطالعه کتاب و بهره‌مندی از مطالب آن، تسلط به زبان انگلیسی ضروری است.

Part 1: Foundation of Flutter Engineering

  1. 1. Flutter Engineering: Core Concepts
    1. Engineering Software with Flutter
    2. Unpacking the Core Principles
    3. Lifecycle of Flutter Development
    4. Flutter Engineering vs. Programming
    5. Flutter's Position in Tech Evolution
    6. Conclusion
  2. 2. Unveiling Flutter: Architecture and Engineering Insights
    1. Decoding the Importance of Flutter Internals
    2. The Reactive & Declarative Nature of Flutter
    3. Flutter's Motto
    4. Principal Components and Framework Insights
    5. Graphics, Rendering, and Visualization
    6. Navigating Through the Widget & App Lifecycle
    7. Managing Constraints in Flutter UI
    8. Significance and Usage of Keys in Flutter
    9. Conclusion
  3. 3. Flutter’s Integration with Native Platforms
    1. Platform Channel
    2. Dart FFI
    3. FFIgen
    4. JNIgen (Java Native Interface Generator)
    5. Conclusion
  4. 4. Applying Engineering Principles in Flutter
    1. OOP Analysis
    2. Implementing Classic Software Principles
    3. Conclusion
  5. 5. Design Patterns in Flutter
    1. Decoding the Role of Design Patterns
    2. Creational Patterns
    3. Structural Patterns
    4. Behavioral Patterns
    5. Conclusion

Part 2: Architecture

  1. 6. Architectural Foundations
    1. The Critical Role of Architectural Decisions
    2. Variables Influencing Architectural Choices
    3. Navigating the Architectural Landscape
    4. Cultivating an Architectural Mindset
    5. Iterative Architecture
    6. Striking a Balance: Simplicity vs. Complexity
    7. Conclusion
  2. 7. Introducing Architecture Styles
    1. Architectural Styles Knowledge
    2. Layered (n-tier) Style
    3. Event-Driven Architecture (EDA)
    4. Microkernel (Plug-in) Architecture
    5. Other Architectures and Paradigms
    6. Conclusion
  3. 8. UI Architecture Patterns
    1. The Landscape of UI Architectures
    2. Prominent Flutter Architectures
    3. Architectures Beyond Flutter Norms
    4. Clean Architecture
    5. Balancing Trade-offs
    6. Customizing Architectures for Flutter
    7. Conclusion
  4. 9. Concurrency and Parallelism
    1. Demystifying Concurrency vs. Parallelism
    2. The Importance of Efficient Task Handling
    3. Flutter's Single UI Thread Principle
    4. The Asynchronous Programming Trio
    5. Managing Asynchronous Data Flows
    6. Expanding Horizons with Isolates
    7. Conclusion
  5. 10. Offline Capabilities in Flutter
    1. The Dual-edged Sword: Challenges and Benefits
    2. Embracing the Offline-first Philosophy
    3. Monitoring and Handling Connectivity Changes
    4. Ensuring Data Integrity During Background Syncs
    5. Caching Patterns
    6. Conclusion
  6. 11. State Management
    1. Defining and Understanding State in Apps
    2. Local vs. Global State: Effective Scoping Techniques
    3. Flutter's In-built Approaches
    4. Exploring Popular Solutions
    5. The Flexibility of Flutter: Swapping and Iterating
    6. Conclusion
  7. 12. Dependency Injection in Flutter
    1. The Principles Behind Dependency Injection
    2. Benefits of Decoupled Code
    3. Implementing DI in a Flutter App
    4. Exploring Flutter Dependency Injection Packages
    5. Conclusion

Part 3: Processes

  1. 13. Rules and Style Guidelines
    1. The Rationale Behind Rules
    2. Crafting Meaningful Guidelines
    3. Ensuring Compliance with Rules
    4. Leveraging Automation for Consistency
    5. Linters and dartfmt
    6. Conclusion
  2. 14. Collaboration in Development
    1. Version Control Essentials
    2. Embracing CI/CD in Flutter Development
    3. Effective Code Reviews
    4. Conclusion
  3. 15. The Art of Documentation
    1. The Spectrum of Documentation in Software Development
    2. Embracing Flutter's Documentation Philosophy
    3. Treating Documentation as a Living Entity
    4. The Perils of Outdated Documentation
    5. Conclusion
  4. 16. Testing in Flutter
    1. Why Testing Matters: Beyond Catching Bugs
    2. Grasping the Testing Pyramid in Flutter
    3. Unit and Widget Testing Essentials
    4. Test Doubles
    5. Test Doubles in Flutter
    6. The World of Integration and Golden Tests
    7. Conclusion
  5. 17. Environments and Flavors
    1. The Need for Multiple Environments & Flavors
    2. Seamlessly Integrating CI/CD
    3. Conclusion

Part 4: Ethical Engineering

  1. 18. Prioritizing Security in Flutter
    1. Foundational Principles of Security
    2. The CIA Triad: Confidentiality, Integrity, Availability
    3. Addressing the OWASP Top 10
    4. Static and Dynamic Analysis
    5. Flutter-Specific Security Best Practices
    6. Conclusion
  2. 19. Cryptography in Flutter
    1. Distinguishing Encryptions
    2. The Fundamentals of Hashing
    3. Ensuring Data Integrity with Digital Signatures
    4. Conclusion
  3. 20. Protecting User Privacy
    1. Understanding Key Privacy Terminologies
    2. Embracing the Privacy by Design Philosophy
    3. Best Practices to Support User Privacy
    4. International Data Protection Regulations
    5. Conclusion
  4. 21. Ensuring Accessibility for All
    1. Recognizing Various Disabilities
    2. The Tangible Benefits of Inclusive App Design
    3. The Four Pillars of Accessibility
    4. Tools and Widgets Promoting Accessibility
    5. Flutter Accessibility Audit
    6. Conclusion

Part 5: Advancing UI Development

  1. 22. Crafting Adaptive UIs
    1. Platform-Specific UI Considerations
    2. Leveraging Unique Platform Features
    3. Conclusion
  2. 23. Responsive UI Techniques
    1. Principles of Responsive Design
    2. Approaches to Responsiveness in Flutter
    3. Adapting UI to Screen Orientation
    4. Conclusion
  3. 24. i18n and l10n
    1. i18n vs. l10n: Key Differences
    2. Implementing Internationalization in Flutter
    3. Catering to Right-to-Left Languages
    4. Conclusion
  4. 25. Embracing Theming in Flutter
    1. Flutter Themes
    2. Custom Theming Techniques
    3. Managing Dark and Light Themes
    4. MaterialApp Theming Steps
    5. Theming Tools
    6. Conclusion
  5. 26. Custom Painters & Shaders
    1. The Art of CustomPainter
    2. Exploring Shaders
    3. Using Shaders in Flutter
    4. Conclusion

Bonus Book: Flutter, Above and Beyond

  1. 1. Advanced Techniques
    1. Native Platform View
    2. WebAssembly (WASM) with Flutter
    3. Bridging with Native Code: FFIgen/JNIgen
    4. Embedded Elements in Flutter
    5. Techniques for Code-Generation in Flutter
    6. Deep Links vs Dynamic links
    7. Implementing a Force Upgrade Strategy
    8. State Restoration
    9. Error Handling and Exception Techniques
    10. Feature Flags
  2. 2. Expanding Flutter's Reach
    1. Integrating Flutter with IoT
    2. Game Development using Flutter
    3. Exploring 3D Graphics with Flutter
  3. 3. Dart Server-side
    1. Exploring the Depths of Server-side Dart
    2. Edge Functions with Dart
    3. 4. What's Next?
  4. 4. Enhancing Performance in Flutter
    1. The Importance of Performance in UX
    2. Performance Metrics and Goals
    3. Dart's JIT & AOT Compilation
    4. Flutter Profiling Techniques
    5. Delving into Threading and Concurrency
    6. Performance Best Practices and Pitfalls
    7. The Dangers of Over-Engineering
    8. Conclusion
  5. 5. Optimization (Part 1)
    1. Rendering Optimization Techniques
      • Leveraging const Constructors
      • Minimizing Overdraw
    2. Data Processing Efficiency
      • Adopting Lazy Evaluation
      • Optimal Algorithm and Data Structure Use
    3. Memory Management Best Practices
      • Detecting and Resolving Memory Leaks
    4. Advanced Threading Techniques
      • Working with Isolates
      • Employing the RepaintBoundary Widget
    5. Conclusion
  6. 6. Optimization (Part 2)
    1. Efficient Network Operations
      • Network Data Caching
    2. Optimizing Images and Assets
      • Selecting Optimal Image Formats
      • Asset Compression and Caching
      • Preloading and Deferred Loading Techniques
    3. Reducing App Size and Storage
      • Embracing Tree Shaking
      • ABI-specific APK Reduction
      • Detailed App Size Analysis
      • Code spliting
    4. Conclusion

Flutter Engineering Academy

If convinced, order the book now, automatically gaining access to newsletter.

If undecided, remember, the newsletter is a free, invaluable resource in its own right.

خبرنامه مهندسان فلاتر

به آموزش‌های انحصاری آینده دسترسی پیدا کنید! همین حالا بپیوندید تا از نکات و محتوای رایگان بهره‌مند شوید! این کتاب فقط شروع کار است!

من در کمک به شما برای پیشرفت و درخشش در زمینه خود تعهد دارم. قول می‌دهم، هیچ هرزنامه یا ایمیل غیرضروری دریافت نخواهید کرد.

سوالات متداول

همه چیزی که نیاز دارید بدانید

آیا این هزینه ماهانه است؟
خیر. یک بار پرداخت کنید، برای همیشه داشته باشید.
آیا تخفیف دانشجویی ارائه می‌دهید؟
قطعا! به [email protected] ایمیل بزنید و نشان دهید که دانشجو هستید و من کد تخفیف را برای شما ارسال می‌کنم. فرقی نمی‌کند که در مدارس سنتی، دوره‌های شبانه یا بوت‌کمپ‌های برنامه‌نویسی باشید، پوشش داده می‌شوید!
قیمت برای من خیلی بالاست، آیا می‌توانم تخفیف بگیرم؟
قطعا! من اینجا هستم تا به شما کمک کنم و نه برای کسب درآمد! به [email protected] ایمیل بزنید و بگویید چرا قیمت برای شما بالاست و چقدر می‌توانید برای بسته مورد نظرتان پرداخت کنید.
آیا می‌توانم بعداً به بسته مهارتی ارتقا دهم؟
البته! به من ایمیل بزنید در [email protected] و من مشکل شما را حل خواهم کرد.
اگر تصمیم بگیرم که این برای من نیست، چه کنم؟
هیچ مشکلی نیست! اگر نظرتان تغییر کرد، تا ۱۵ روز پس از خرید به من ایمیل بزنید در [email protected] و من تمام پول شما را بازپرداخت خواهم کرد، بدون سوال. با این حال، لطفاً توجه داشته باشید که ممکن است هزینه بازپرداخت کمی از طرف فروشنده من برای پوشش هزینه‌های پردازش پرداخت وجود داشته باشد.
سوال دیگری دارم!
هیچ مشکلی نیست! به من ایمیل بزنید در [email protected]
چگونه می‌توانم به ویدیوها دسترسی پیدا کنم و آنها را ببینم؟
ویدیوهای پشتیبانی در حال ضبط هستند و قرار است در آوریل / مه ۲۰۲۴ منتشر شوند. اگر مشترک خبرنامه شده‌اید، ایمیل خود را برای به‌روزرسانی‌ها بررسی کنید.