There are cross-platform frameworks like Xamarin, React Native already available in the market to develop iOS and Android apps with a single code base. However, Flutter has entered very strongly in the race of cross-platform mobile app development. Flutter is backed by google and uses Dart programming language which was introduced by Google in 2011 and is rarely used by developers. Dart programming is easy to use and learn. It uses compositions and channels to make it look native. Flutter also has Material Design and Cupertino that allow developers to easily render the UI on both iOS and Android platforms. Flutter was originally known as sky and was only supported for Android.
One of the biggest advantages of using this cross platform app is that you can have a single development team using the common codebase. It means that instead of having separate teams for android and iOS it can be created for both these platforms. Many developers have come across the fact that the learning curve for flutter is shorter 3-5 days the most.
Like many apps, there are always some drawbacks just like there are for flutter. Not so huge but can always play out differently for different reasons.