miloshjokic Profile Banner
Milos Jokic Profile
Milos Jokic

@miloshjokic

Followers
3K
Following
568
Media
120
Statuses
1K

Practical Flutter & Firebase tips • Building apps since 2007 • @toptal Tech Lead • $100K app founder

Grab my Flutter template:
Joined May 2017
Don't wanna be here? Send us removal request.
@miloshjokic
Milos Jokic
1 month
I launched 3 Flutter & Firebase apps in 30 days:. - RevenueCat for subscriptions.- iOS & Android app in Flutter.- Backend using Firebase.- Mixpanel for analytics.- Settings & legal pages.- Remote notifications.- App review prompt.- Responsive design.- Onboarding flow.-.
3
0
4
@miloshjokic
Milos Jokic
4 days
There are many ways to add a widget to children in Flutter. I mostly stick to the first two:. ✅ Unconditional.✅ Simple if. If the logic gets more complex, I move it outside the widget tree to keep things clean. My rule:.- Small widget? Add it inline. - Bigger logic? Handle it
Tweet media one
0
0
0
@miloshjokic
Milos Jokic
5 days
Need to sign users in without email?. Firebase Auth supports anonymous sign in out of the box:. ✅ Users get a real user ID.✅ Firestore security rules work as expected.✅ You can save and load user-specific data.✅ Accounts can be linked later without losing data. It’s perfect
Tweet media one
1
0
1
@miloshjokic
Milos Jokic
8 days
Stop styling Text widgets manually. Instead, define your styles once using ThemeData.textTheme, and use them everywhere. ✅ Consistent text style.✅ Cleaner widget code.✅ Easy to update. For each text style I define:. - size.- color.- height.- weight.- letter spacing. That way
Tweet media one
1
0
2
@miloshjokic
Milos Jokic
9 days
What else?.
0
0
1
@miloshjokic
Milos Jokic
9 days
16. Not using auto-formatter.
1
0
0
@miloshjokic
Milos Jokic
9 days
15. Leaving commented-out code.
1
0
0
@miloshjokic
Milos Jokic
9 days
14. Using outdated Flutter version.
1
0
0
@miloshjokic
Milos Jokic
9 days
13. Write operations in build method.
1
0
0
@miloshjokic
Milos Jokic
9 days
12. Using functions to return a Widget.
1
0
0
@miloshjokic
Milos Jokic
9 days
11. Not having clean architecture laters.
1
0
0
@miloshjokic
Milos Jokic
9 days
10. Testing only on iOS, but not Android.
1
0
0
@miloshjokic
Milos Jokic
9 days
9. Going for easy solution vs best solution.
1
0
0
@miloshjokic
Milos Jokic
9 days
8. Widget classes with 500+ lines of code.
1
0
0
@miloshjokic
Milos Jokic
9 days
7. Using outdated or unmaintained plugins.
1
0
0
@miloshjokic
Milos Jokic
9 days
6. Not marking immutable variables as final.
1
0
0
@miloshjokic
Milos Jokic
9 days
5. Not testing edge cases and empty states.
1
0
0
@miloshjokic
Milos Jokic
9 days
4. Vague naming (CustomButton, MyAppBar).
1
0
0
@miloshjokic
Milos Jokic
9 days
3. Custom styling in Text Widgets vs TextTheme.
1
0
0
@miloshjokic
Milos Jokic
9 days
2. Not reviewing your own code before creating a PR.
1
0
1
@miloshjokic
Milos Jokic
9 days
1. Not using server-side logger (such as Crashlyitics).
2
0
1