Flutter
Published: 2024-06-30 20:52:04

There was a halt to academic activities in federal universities in the country in 2022. The lecturers decided to go on strike and leave the classroom as a protest against the federal government. This was a devastating blow, as this meant time away from school doing nothing. As such, I was left with a daunting task of learning a skill while the lecturers remained out of classrooms. While I had always had a thing for coding, I never really thought much of it, as I was in humanities and not sciences. However, I found myself falling in love with flutter and dart after a friend introduced me to the framework. I took it upon myself to find out everything possible about it, and put it to good use. While it's been tough grasping some programming conventions, it's been two wonderful years working with dart and flutter.
A mobile development platform is a set of tools, services, and technologies that allows developers, or even anyone, to design, develop, test, deploy, and maintain mobile applications across multiple platforms, devices, and networks. It also allows for the easy implementation and integration of various features into applications. 
Flutter is a mobile development platform, a unique one at that. It is an open source framework developed and supported by Google for building beautiful, natively compiled, multi-platform applications from a single codebase. Flutter makes it easy and fast to build beautiful apps for mobile and beyond. Generally, you can build any type of cross-platform app using Flutter. The programming language of Flutter is Dart, which was created by Google in 2011. Dart is a typed object programming language that focuses on front-end development, like JavaScript.
Improved Productivity
The Google-built framework consists of these components:
Software Development Kit (SDK)
A SDK is a collection of tools that help developers build their applications. It allows them to compile their code into native machine code used on both iOS and Android. Flutter is a framework with a core mobile SDK that offers responsive, stylistic elements without requiring a JavaScript bridge. You can easily integrate Flutter with Android, iOS, Linux, Windows, as well as Fuchsia applications for amazing and seamless performance
Widget-based UI Library
This framework has various UI elements that can be reused, including sliders, buttons, and text inputs. Flutter provides ready-made widgets for almost all common app functions. Flutter provides a rich set of pre-designed widgets that you can customize to create beautiful interfaces. These widgets are not simple UI elements like buttons and text boxes. They include complex widgets like scrolling lists, navigations, sliders, and many others. These widgets help save you time and let you focus on the business logic of your application.
Advantages of flutter framework
1. Flutter allows developers to use the same code to create both iOS and Android apps. In doing so, they save time and resources since they don’t have to build two separate apps. Flutter’s native widgets also reduce time spent on testing by ensuring compatibility with different operating systems.
2. Easy to Learn
Flutter developers can create mobile apps without using OEM widgets or a lot of code, making their process much easier and simpler.
3. Better Performance
Many users say it’s nearly impossible to tell the difference between a Flutter app and a native mobile app - a big upside for developers.
4. Lower Costs
By allowing developers to build apps both for Android and iOS from the same code base, Flutter slashes the coding time by at least half. This means the costs of app development are also reduced. You basically get two apps for the cost of one.
5. Robust Documentation and Strong Community
One reason many companies choose Flutter is the robust documentation and resources that helps developers solve problems. Furthermore, Flutter has great community hubs such as Flutter Community and Flutter Awesome where developers can exchange ideas and solve problems.
6. Improved Time-to-Market Speed
Generally, Flutter development only requires up to half the time needed to build the same app separately for Android and for iOS. Developers don’t have to write any platform-specific code to achieve the desired visuals in their application. Plus, Flutter provides a declarative API for building user interfaces, helping boost performance.
Disadvantages of flutter framework
1. Larger App Size:
One of the notable downsides of Flutter is the size of the resulting apps. Flutter apps tend to be larger compared to their native counterparts. This can be a concern for users with limited storage space on their devices or for apps that need to be downloaded over a mobile network. The inclusion of the Flutter framework contributes to this larger size.
2. Performance Concerns:
While Flutter has made significant improvements in terms of performance, it may not match the native development experience, especially for graphics-intensive applications or those requiring real-time processing. Flutter utilizes a bridge to communicate with native modules, which can introduce some overhead and potentially affect app performance.
3. Limited Native Features:
Flutter provides access to many native features through plugins, but it may not offer access to all platform-specific functionalities. Some advanced or platform-specific features may require more effort to implement in Flutter, potentially leading to development challenges.
Having discussed flutter in details, I will be adopting the platform while participating in the HNG 11 internship https://hng.tech/internship, https://hng.tech/hire. It is a fast paced internship that simulates real world working environments. I am participating in this internship to build the resilience required to survive in the highly demanding tech space. Also, it provides a learning opportunity for developers.