Here's a thread about my 2021 in numbers as a content creator making Flutter tutorials and courses. ๐งต
Total Revenue: $69,532
Here's a breakdown by month. ๐
Here's a pie chart about revenue by income stream.
80% of total revenue came from sales on Udemy and Teachable.
This year I had $20,660 in expenses.
This is a large number primarily due to outsourcing costs (design & development) on my site.
In 2021, 459K visitors accounted for 658K page-views on my site.
I spent a lot of effort on SEO, and it paid off.
The vast majority of the traffic came from Google search.
My most visited page (about Dart Null Safety) was opened over 50K times.
I have sent A LOT of emails to my subscribers.
Here's all the feedback I collected from them.
I use this feedback to continuously improve new and old content
Between courses, tutorials, website, YouTube, Twitter, my newsletter etc, I spent 1458 hours on my business.
Here's a breakdown:
What are my goals for 2022?
๐ฐ $100K in total revenue
๐ reach 100K monthly unique visitors on my website
๐ฎ Grow my newsletter to 25K subscribers
๐ฆ More than double my Twitter followers to 25K
๐น Reach 50K subscribers on YouTube
This has NOT been an overnight success!
I started in 2018, and slowly made this my full-time job.
Here's what it took:
- 4100 hours (so far)
- set realistic goals
- not giving up
- continuing to learn and figuring things out along the way
Full retro coming tomorrow. ๐
As promised, here's the full retro with all the details:
If your users speak another language, youโll need to localize your Flutter app ๐บ
Hereโs how to setup Flutter app localizations in just 5 minutes, using code generation.
Also covered: template vs non-template files and synthetic vs non-synthetic package. ๐
๐งต
1๏ธโฃ As a first step, we need to add the required packages to the pubspec.yaml file.
2๏ธโฃ Create l10n.yaml at the root
โ๏ธ arb-dir is the input folder where Flutter will look for the localized strings
โ๏ธ output-dir is where the localizations classes will be generated
โ๏ธ template-arb-file is the main template that contains a description for each localized message
What's the difference between errors and exceptions in Flutter?
โ Errors are programmer mistakes. They are fatal and we should not try to recover from them
โ Exceptions are failure conditions that are out of our control. We should handle them and recover gracefully
Thread ๐งต
Errors are fatal and when they happen the program *cannot* recover normally.
โ we want to discover (and fix) them as early as possible in the development process
โ we should track them in production using a crash reporting solution, so that we can measure impact and severity