| Follow @bouncingsheep
Emily Fortuna is a senior software engineer on the Dart team at Google. When not hacking on compilers and evangelizing the awesomeness of Flutter, she can be found working on improving fairness in machine learning or acting on the stage and screen. She is an avid member of the nerdy joke appreciation society.
Oleksandr, I think it very much depends on what you're trying to achieve. If you want to truly write code once, then don't do any platform specialization -- just create a consistent style for your app and stick with it -- it needn't be iOS or Android themed, just the brand of the app.
If you have a tweaks at the widget level that you want to specialize per-platform, then the technique I describe in this article can a reasonable approach -- just create a widget and wrap the customization within a specialized widget.
If you have much more extensive changes that you want to do, then dependency injection may be an approach worth investigating. Our team is currently busily working on creating better ways for developers to write apps for these different platforms to avoid a bunch of if-statements, so please stay tuned for more updates!