What is flutter? & what are their pros and cons of mobile app development?



Assalamualikum Everyone!
Hope u all are safe and sound. Today I am going to share an interesting fact with all of you about a google emerging new technologies 'FLUTTER' from my experience and also which I collected from the internet recently.
So let's start it
What is Flutter?
No alt text provided for this image
Flutter is actually the name of SDK which is an open-source mobile application development framework created by Google. It is used to develop applications for Android and iOS, that's why it is also called Cross-platform because it gives taste to the developer community of both ios and android.
So now a question arrived in our mind that for which purpose we used flutter SDK? and what is cross-platform? so lets clear this
We can use flutter SDK for the following things
1- mobile development 2-desktop development 3- Web development

What is cross-platform?

No alt text provided for this image
Cross-platform mobile app development is the process of creating mobile apps that can be deployed or published on multiple platforms using a single codebase, instead of having to develop the app multiple times using the respective native technologies for each platform.

What’s been done

No alt text provided for this image
Tens of thousands of hours have been put into developing Flutter before it was ready for general use. Google engineers have worked on

Some facts about Flutter

  • free and open-source;
  • uses the C++ rendering engine;
  • based on the Dart programming language;
  • provides its own widgets;
  • architecture is based on reactive programming.

Dart (OOP) Language

No alt text provided for this image
Flutter is composed of Dart language while Dart is an object-oriented language which has c-ish and java style and is very easy to handle OR in other words Dart is a client-optimized programming language for fast apps on multiple platforms. It is developed by Google and is used to build mobile, desktop, backend and web applications. Dart is an object-oriented, class defined, garbage-collected language using a C-style syntax

How Flutter succeeds at cross-platform development

Google’s development kit allows you to build 2D mobile apps. You can use it to develop full-featured apps including support for cameras, geolocation, network, storage, and more. If you need to build impressive branded designs or stock platform apps, then a cross-platform framework like Flutter is well-suited.
PROS AND CONS OF FLUTTER FOR MOBILE APP DEVELOPMENT
Flutter has a number of advantages that allow it to attract a large developer community and lots of app owners. Let’s take a look at the benefits of Flutter framework to mobile app developers and business owners.
No alt text provided for this image

Hot reload

One great thing about Flutter is hot reload. Developers can see all the changes they’ve made to the code right away in the app. It takes just seconds to see changes, so teams can quickly add new features, fix bugs, and experiment. Hot reload enables better collaboration between developers and designers when they want to improve how the app looks and check effects immediately. There are some limitations to hot reloading, though.
No alt text provided for this image
With native app development, you need to wait up to several minutes to see every change you make.

Perfect for an MVP

If you want to show your product to investors as soon as possible, you can build a Flutter mobile application that looks native on both Android and iOS. Thus, your investors will have a clear idea of what your MVP looks like. Developing two separate apps would take much more time and money.
No alt text provided for this image

Less code

The programming language of Flutter is Dart. Dart is object-oriented and strongly typed. Flutter resembles React Native, and its programming style is reactive and declarative. Flutter doesn’t need to use a JavaScript bridge, which improves app startup times and overall performance. Dart achieves this thanks to Ahead-of-Time, or AOT, compilation. Dart also makes use of Just-in-Time, or JIT, compilation. JIT compilation with Flutter improves the development workflow by allowing for a hot reload capability to refresh the UI during development without the need for an entirely new build.
No alt text provided for this image
Flutter means less code. And where there’s less code, there are fewer bugs. With Dart, 100% of the code is usually shared between iOS and Android apps.

Widgets

Widgets are necessary for an app’s view and interface. They must have a natural look and feel regardless of screen size. They also must be fast, extensible, and customizable. Flutter takes everything’s a widget approach. It has a rich set of widgets and extensive capabilities for creating complex custom widgets. In Flutter, widgets aren’t only used for views. They’re also used for entire screens and even for the app itself.
No alt text provided for this image
As Flutter’s documentation puts it, each widget is an immutable declaration of part of the user interface. Other frameworks separate views, view controllers, layouts, and other properties. Flutter, on the other hand, has a consistent, unified object model: the widget.
A widget can define:
  • a structural element (like a button or menu);
  • a stylistic element (like a font or color scheme);
  • an aspect of the layout (like padding);
  • and so on.
No alt text provided for this image
Widgets form a hierarchy based on their composition. Each widget nests inside of and inherits properties from its parent. There’s no separate application object. Instead, the root widget serves this role.

Access to native features

Some platform-specific functions like camera and geolocation require access to native features. These functions need to be implemented by means of native languages, and Flutter gives the feel of developing on the native platform. Flutter allows you to reuse your existing Java, Swift, and Objective-C code to access native features and SDKs on iOS and Android.

Official support

Since Flutter is Google’s initiative, the framework has a big name behind it. There’s great support from the Material Design team and a community of over 1000 developers who are willing to contribute to the growth of this framework.

Easy to set up

Flutter is easy to set up and start coding on low-end machines. You don’t need to be worried that your operating system won’t be able to handle Flutter. Quite the contrary, Flutter doesn’t require a powerful machine.
Luigi Rosso, the co-founder of 2Dimensions, says the following about Flutter app development:
“I love the friction-free iteration with Flutter. Hot Reload sets me in a feedback loop that keeps me focused and in tune with my work. One of my biggest productivity inhibitors are tools that run slower than the developer. Flutter finally resets that bar.”

Cons

The framework is relatively young, and it’s still growing and developing. The toolkit has its flaws. Let’s look at them.

Mac used for ios development

One of the major disadvantage of flutter that recently and till date, I am experiencing is that u cant build ios flutter app on window os u must need Apple mac machine to go ahead with the ios development .hope in future google will solve this issue

Limited libraries

Google supports Flutter and there are many helpful libraries. However, the framework is relatively new. You won’t find every functionality you’re looking for. Native apps, on the contrary, have everything in their native SDKs including Stripe, Twilio, and most streaming services such as Wowza and UStream. With Flutter, developers would have to build these libraries themselves, which is time-consuming.

Continuous Integration

There are many ready-made solutions for native Android and iOS apps that allow them to work with CI platforms like Travis and Jenkins. There are also ready-made Flutter solutions for most popular CI platforms like Travis or Circle. However, you need to set up the toolkit for these kinds of platforms. Travis can be used in a number of repositories. The framework also supports the likes of Fastlane and Nevercode. As for us, we’ve applied a complex decision using Gitlab CI with Fastlane for Flutter apps.

Limited TV support

If you’re wondering if apps built with the help of this framework can run on Android TV or Apple TV, then the answer is more no than yes. Flutter offers practically no support for Android TV and Apple TV.
Thank you all for reading this I know its a pretty long article but believe me reading this all with focus remove ur confusion regarding flutter.
if u want to know the market, scope and future of Flutter then w8 for my upcoming article which is about GOOGLE UPCOMING OS FUCHSIA & SECRET OF FLUTTER



Comments

  1. Thank you for the article! Our team just finished working on an article about MVP in the software world, and why is it necessary? It will be very interesting and useful
    https://www.softformance.com/blog/mvp/

    ReplyDelete

Post a Comment

Popular Posts