As technology advances and more programming languages are created, efficiency increases in the world of computer science, particularly in the subdivision of app development. Google’s Flutter 1.5.4 is its most recent release of its new mobile app software development kit. The alpha version of Flutter released in 2017; however, the open-source SDK gained more popularity within its almost two years of being in beta.
One of the reasons why it has been so popular is because of its claims to be cross-platform; it is not needed to develop for iOS and Android separately. This feature makes it easier and quicker to deploy the application on both devices and also ensures less testing.
Flutter works together with the programming language Dart and compiles predictable, native code to give Flutter its speed. In addition, the programming language compiles for rapid development cycles; this helps in one of Flutter’s features called hot reload.
Hot reload enables the developer the ability to refresh the app in the IDE and see live changes within seconds of saving. It obliterates the bridge that is needed between native code and the platform it is working on. Everything that is seen on Flutter is a widget; they define structural elements, stylistics elements or aspects of layout. It does not use OEM widgets, but it provides its own that look native to either Android or iOS apps.
With widgets, Flutter created a classification between stateful widgets and stateless widgets. If a widget can change as the user is interacting, the subclass it is implemented by is stateful. If the widget is never changing, the subclass is stateless. Some examples of stateful widgets are radio buttons, forms and text fields. Stateless widgets consist of widgets like icons and text. The difference is that when there is a stateful widget, the state object calls a setState() method to tell the framework to redraw the widget and for both types of widgets, they will always need a build() method.
My experience with Flutter began when I chose it to develop a money budgeting application for my capstone project in the COMP 296 course. Before using Flutter, I worked with JAVA and Python to program, so I wanted to test how difficult it would be to use Flutter and teach myself a new language. An observation that I made early on was that the formatting while using Flutter was similar to HTML and CSS, especially when configuring the UI (user interface) on the app’s screens.
In comparison to GUI (Graphical User Interface) that I used with JAVAFX, Flutter had its advantages when dealing with page navigation. Navigation through Flutter works with a stack; screens can be pushed and then popped off. Also, Flutter provides an organized approach when building the UI screens. They recommend breaking down the layout to its basic elements and then matching it with the widgets needed.
For example, a screen with a mountain, title, description and a button to access sharing options would be identified as four elements. The elements would be arranged with a column widget. Inside the column widget would be two row widgets to display the title and button and, finally, a block of text for the description.
In all, mobile apps are fun to create, but can seem daunting at first. However, Google provides an extensive library of resources on their website to ensure an easier dive in. With enough documentation, YouTube videos, determination and using Flutter, building a beautiful and powerful application is certain.