Full Course
Flutter In Production
Learn about flavors, environments, error monitoring, analytics, release management, CI/CD, and finally ship your Flutter apps to the stores. đ
Andreaâs Flutter content is amazing - itâs one of the few resources I consistently reference for advanced real-world solutions.
He clearly puts a huge amount of care and thought into every tutorial. Highly recommended!
Learn More
Course Overview
Picture this: you've built an amazing Flutter app. Youâre feeling excited and youâre almost ready to launch it.
But hold on!
If you're not prepared for release, youâll face some challenges:
- No Analytics = No Insights: Which features captivate your users, and which ones don't? Without robust analytics, you're navigating blind.
- App Crashes: Which issues are affecting users in production? What's their impact? Are you prepared to address them effectively?
- App Store Rejections: Missed guidelines and bugs can halt your launch. How swiftly can you address and resubmit?
- Release Management: Have you streamlined your release process? Is it automated with CI/CD pipelines?
- Force Update Strategies: If needed, can you force users to update to the latest version of your app?
These challenges can set you back, but if you put the right things in place, youâll save a lot of time and money later.
Now, imagineâŠ
- Having a clear release plan, along with detailed guides and checklists so you donât miss any important steps
- Being confident about the app submission and review process on the App Store and Play Store
- Having a completely automated process for deploying your app releases with ease
- Being able to monitor your apps in production, get user feedback, and resolve issues effectively
I created this course to help you with all these critical aspects, and many more.
Introducing
Flutter in Production
This course is your comprehensive guide to shipping your Flutter apps with confidence. Here's how itâs organized. đ
Part 1: Preparing for Release
In this first part, youâll learn about:
- App Icons and Splash Screens
- Multiple Flavors and Environments
- Error Monitoring
- Analytics
- Force Update Strategies
- Collecting user feedback and in-app reviews
- Creating a website for your app
These things take time, but they are crucial for a successful app launch. And with my guidance, youâll breeze through them.
Part 2: Release Management and Automation
With preparations complete, itâs time to launch.
But submitting your app to the stores involves a lot of red tape. So, all the important steps will be covered in detail (both for testing and distribution):
- Manual Android release: build, code sign, upload, and submit your Android app to the Google Play Store
- Manual iOS release: build, code sign, upload, and submit your iOS app to App Store Connect
Manual releases take a lot of time, so youâll want to automate the whole process:
- Release Automation with Codemagic (quick setup)
- Release Automation with GitHub Actions with Fastlane (advanced setup with more control)
By this stage, youâll have the tools and knowledge to manage and automate your app releases, making them seamless and scalable.
Part 3: Post-Release Techniques
Your app is live â what's next? Enhance and improve your process even further:
- Automated screenshot generation
- Code push
- Feature Flags
- A/B testing
Note: Iâm still researching these additional topics and the final curriculum may change.
I know. You could find all this information online, but it would take you weeks to gather and understand everything, and you'll still have an incomplete picture of how all these things fit together. By condensing all my knowledge and experience into this course, I can help you get your app to the stores faster and with fewer headaches.
Secure your pre-sale discount now
This course is still a few months away and will launch in October 2024.
Sign up today to get updates and a big discount when it is released!
By signing up, you'll get exclusive updates about the course progress and bonus content.
Course Curriculum
What's Inside
Note: this is a tentative course outline. It will be improved and refined before launch
Module 1
Course Introduction
An overview of the course structure and topics covered, along with a walkthrough of the companion app for this course.
- Intro to the Flutter app release checklist
- Starter project and code walkthrough
Module 2
Launcher Icons and Splash Screens
Learn how to generate your launcher icons and splash screens on Android, iOS, and web.
- Generating app icons with the Flutter Launcher Icons package
- Designing custom icons for your Flutter apps using Figma
- Launcher Icon Guidelines and Android Adaptive Icons
- Generating custom splash screens with Flutter Native Splash
Module 3
Adding Flavors to a Flutter App
A complete guide to flavors in Flutter. What are flavors, why do we need them, and how to configure them on Android and iOS (both for new and existing apps).
- Intro to flavors and environments
- The difference between flavors and Dart defines
- Flavoring your Android and iOS app with Flutter Flavorizr (including icons and IDE setup)
- Flavoring your Android and iOS app manually (for pre-existing apps)
- Whitelabel app challenge
- Adding dev, staging, and production environments with Firebase & FlutterFire CLI
Module 4
Error Monitoring with Sentry
How to use Sentry to report, monitor, diagnose, and fix errors in your Flutter app when running in production.
- Sentry vs Crashlytics: a comparison
- Sentry setup: basics, environments and flavors
- How to capture exceptions explicitly
- Event filtering and other customization options
- Sentry dashboard overview and issue resolution workflow
- How to collect user feedback with Sentry
- How to capture navigation and HTTP breadcrumbs
- How to upload source maps and dSYMs with the Sentry Dart Plugin
- Additional Sentry options and APIs
- How to minimize your sentry bill
Module 5
Analytics with Mixpanel and Firebase Analytics
How to setup analytics in your Flutter client app.
- The importance of analytics
- How to choose an analytics provider (features, cost, US vs EU hosting, etc.)
- How to setup multiple analytics providers and selectively enable/disable them
- How to track custom events, conversions, page views, and more
- Mixpanel: overview, features, and integration
- Firebase Analytics: overview, features, and integration
- Analytics with multiple flavors (with and without Firebase)
- Real-world example: how to use analytics to ask for app reviews at the right time
Module 6
Force Update Strategies
How to implement different force update strategies depending on your app type and backend.
- Why you absolutely need a force update strategy
- Soft vs hard update, rolling release windows, and other strategies
- Force update with the Upgrader package
- Remotely control the force update behavior: Firebase Remote Config vs Dart Shelf vs Remote JSON
Module 7
Creating a Landing Page for your Mobile app
How to create a simple and effective landing page for your mobile app.
- Why you need a landing page
- Super-simple landing page template
- How to host your landing page on GitHub Pages
- Buying and setting up a custom domain for your landing page
- The legal stuff: privacy policy and terms of use
Module 8
Manually Submit to the iOS App Store
Everything you need to ship the first version of your app to the App Store.
- Creating an Apple Developer Account and the Apple Small Business Program
- Code Signing: Certificates, Identifiers & Profiles
- Manually building and uploading the IPA
- Preparing your iOS app for submission (metadata, screenshots, compliance, app privacy manifests, etc.)
- The app review process and what to do if your app is rejected
- TestFlight: how to distribute your app to internal testers
- Submitting app updates after your first release
- Requirement for EU developers: declaring your Trader Status
Module 9
Manually Submit to the Google Play Store
Everything you need to ship the first version of your app to the Google Play Store.
- Creating a Google Developer Account (individual vs organization)
- Code signing: key store, keys, and signatures
- Manually building and uploading the APK
- Preparing your Android app for submission (metadata, screenshots, compliance, data safety, etc.)
- Production and testing tracks
- The app review process and what to do if your app is rejected
- Dealing with the 20 testers requirements for new accounts
Module 10
Release Automation with Codemagic
How to automate your app release process with Codemagic.
- Introduction to Codemagic
- The workflow editor
- Build triggers
- Environment variables and secrets
- Running automated tests and code analysis
- Adding custom scripts to your workflow
- iOS code signing and distribution with the App Store Connect API
- Android code signing and distribution on Google Play
Module 11
Release Automation with GitHub Actions and Fastlane
How to automate your app release process with GitHub Actions and Fastlane.
- GitHub Actions basics
- Workflow syntax, triggers, jobs, and actions
- GitHub environments, secrets, and variables
- Running automated tests and code analysis
- Introduction to Fastlane
- Fastlane commands and lanes
- Automated iOS code signing with Fastlane match
- Building and signing your Flutter app (Android workflow)
- Uploading to App Store Connect and Google Play Console
- Running builds locally
- Advanced workflow customization
Additional Modules
Automated Screenshot Generation, Code Push, Feature Flags, and more
I'm researching additional techniques that will take your apps to the next level. These may include:
- Automated Screenshot Generation
- Code Push with Shorebird
- Feature Flags
- A/B testing
- Flutter web in production
More Info
Course Format
Unlike my previous courses, this is primarily a text-based course.
Each module includes clear and concise lessons, explaining the concepts with a combination of text, code snippets, and illustrations. Where appropriate, I will also include video tutorials to demonstrate complex tasks or workflows.
While I recommend to follow the course from beginning to end, each module will be self-contained, so you should be able to âjump inâ and learn about individual topics without problems.
This course is meant both for learning and as a reference guide. So, youâll also find useful checklists that will help you âtick all the boxesâ before moving to the next stage. And guess what? The official course project is an app release checklist made with Flutter. đ
This course is not about building an app from scratch. Rather, you'll start with a pre-made app and integrate various techniques and tools to get it production-ready. Later, you'll be able to apply the same techniques to your own projects.
Is it right for you?
Who is this course for?
This course is for you if you want to:
- Ship your Flutter apps to the stores without overlooking important details
- Understand the iOS and Android app release process and the tools involved
- Monitor your apps in production and unlock valuable insights
- Manage and automate your app releases with confidence
If that sounds like you, sign up today to join the waitlist. đ
Secure your pre-sale discount now
This course is still a few months away and will launch in October 2024.
Sign up today to get updates and a big discount when it is released!
By signing up, you'll get exclusive updates about the course progress and bonus content.
What my students say
Testimonials
Loved the course and got a lot out of it.
Especially appreciated how Andrea doesn't just show you the "right way" to do things from the start. He shows common errors and pitfalls and how to get around them, and eventually end up at the "right way" with a better understanding of how to actually get there in your own projects.
The course also has a healthy balance of code-alongs for relevant portions and provides you with updated project files throughout, so you don't have to spend hours manually going through every single line of the project.
It could be my previous experience with writing code but DART explained by Andrea was smooth.
I never really understood OOP and I struggled in that area until I watched this course. I made sure I tried and completed every exercise even though it took me days.
Excellent course. Excellent Instructor, well knowledgeable and resourceful. Would totally recommend.
Andrea is the best! I love his passion and enthusiasm and dedication to teaching.
He cares deeply about programming and sharing his knowledge and experience with his students.
Andrea's teaching style is awesome.
I have been building Flutter apps for close to 3 years, and I still find a lot of useful and new material with his courses and articles.
Andrea has some of the highest quality online courses I have seen. He does not gloss over the issues of optimization or best practices that so many other courses do.
You can adapt what you learn from his courses, right into real-world applications!
Up-to-date content, didactic instructor, good support community on Slack, additional resources, tutorials and optional videos with the latest advances in Flutter.
Concise and direct to the point, with a huge number of diagrams. A colossal amount of work to simplify our learning.
Everything's clear. I really love the way you explain, concise but completely understandable. Not a single detail is missed on any topic that is covered, and if so, you always leave references to really useful articles.
No doubt that anyone who take this course will end up with complete and strong Flutter skills.
I have spent the weekend on just this lesson. It was a great time investment to watch the lessons, follow the links, and do the suggested homework.
Although I've been working with Flutter for almost a year and have taken several other courses, I feel like my skills have advanced further and faster this weekend than at any other point in the past year. Thank you!
A BIG BIG THANKS for this course and the others that you will release later in the year.
Its just so much fun to see something new from my favourite GURU (teacher) and the anticipation of its release is so so exciting.
Just looking at the curriculum, it shows how much effort and thought you have put into developing this.
Thank you once again, as I begin this new journey.
I've been developing for more than 10 years, especially using web technologies, and I went through this course like a breeze.
I was impressed by Andrea's reactivity and quality of support on the course Q/A and on Slack.
I will be following his code architecture proposal going forward with my team on our Flutter projects.
FAQ
Frequently Asked Questions
How long is the course?
The course will contain over 100 lessons, along with source code, diagrams, illustrations, checklists, challenges, and much more.
When will the course launch?
The course is not ready yet, and I expect to launch it for early access in October 2024.
How much will the course cost?
I will reveal all the pricing details later.
There will be a significant discount during the early access period.
What are the course prerequisites?
You should have a good understanding of Flutter and Dart before taking this course.
Some prior knowledge of Drift and Riverpod is beneficial but not required.
Even if you haven't taken my Flutter Foundations and Flutter & Firebase courses, you can still follow along.
What will not be covered in this course?
The course will focus on the production aspects of the app development lifecycle.
Topics such as app monetization, marketing, and user acquisition will not be covered.
Accessibility, internationalization, and security will also be out of scope (though we will explore best practices for handling sensitive API keys in your apps).
What if I want to use different tools than those covered in the course?
There are many tools you can use for analytics, app monitoring, CI/CD, and more.
While I will focus on the tools I like the most, you can choose different ones and follow the official documentation to accomplish the same goals.
What about Flutter web and desktop?
The course will focus primarily on shipping apps on iOS and Android.
Where appropriate, I'll include a few tips on how to adapt the lessons for web and desktop, but I don't plan to cover these platforms extensively.
What if I get stuck? Can I ask questions?
Yes. You can ask questions on the course Q/A in the Discord server. I answer most questions within 24 hours.
Will I get a completion certificate?
Sure do! Once you complete the course this will be issued to you automatically.
I have another question!
Sure - email me at courses@codewithandrea.com and I'll reply within 48 hours.
instructor
Hello, Iâm Andrea
My name is Andrea, I'm a Flutter GDE and I've been writing code professionally for over 15 years. I've been a mobile app developer since 2012, working for startups and big companies.
With my Flutter tutorials and courses, I've helped thousands of students become better developers.
By taking this course, you'll learn how to ship and monitor your Flutter apps in production.