Introduction To Flutter Dev
Introduction To Flutter Dev
with Dart
Mohamad Roni Hamid
01
CROSS-PLATFORM SUPPORT
Cross-platform software is computer software that is
designed to work in several computing platforms
JAVA PLATFORM IS A COMMON VM PLATFORM WHICH RUNS ON MANY OSS AND HARDWARE TYPES
Image Source: https://dzuyel7n94hma.cloudfront.net/img/saas-startup-example-golang-project-website-homepage.png
What is cross-platform?
A cross-platform computer product or system is a
product or system that can work across multiple
types of platforms or operating environments
• Access Plugins
Plug-ins help to make development fluid and changes on requirement. APIs can be
used to make developmental modifications and changes easily.
• Reusable Codes
Reusable code provides an upper hand as it does not require repeated development.
Benefit of developing cross-platform (cont..)
• Uniformity
User experience must be balanced across these trajectories and inefficiency in
maintaining those would mean unproductive results.
CROSS-PLATFORM IMPLEMENTATION
Cross-platform software is computer software that is
designed to work in several computing platforms
07
Challenges in Implementing Cross-platform
1. Testing cross-platform applications more complicated
2. Developers are often restricted to using the lowest common denominator subset of
features which are available on all platforms.
3. Different platforms often have different user interface conventions, which cross-
platform applications do not always accommodate.
4. Scripting languages and VM bytecode must be translated into native executable code
each time they are used.
Advantages
• High performance. A cross-platform
mobile app demonstrates higher
performance than a web-based application
and is able to meet almost any
requirements.
Flutter is a by-product of Google , making it a sustainable software development kit [SDK] for
developing web-based applications. Its iconic 'Hot Reload' feature facilitates developers to
view live variations in the coding without saving it.
It helps build high-performance apps on Android, iOS, desktop, and web from a single
codebase. Launched in May 2017, Flutter has quickly become a favorite of developers as it
allows them to customize the apps using slick animations.
It also utilizes the programming language Dart, which can be easily understood by Java
developers. Flutter also offers many widgets that help in enhancing the look of an app. They
can help developers provide a full native-like app performance to the users — from scrolling
and navigation to changing fonts and icons.
Famous brands using React Native: Facebook, Walmart, Uber Eats, Skype, and Instagram
Software Development Kit Image Source: https://www.21twelveinteractive.com/flutter-vs-react-native-vs-ionic-vs-nativescript/
NativeScript
Original author(s) : Telerik by Progress.
NativeScript is an open-source framework to develop mobile apps on the Apple iOS and
Android platforms. It was originally conceived and developed by Progress.
At the end of 2019 responsibility for the NativeScript project was taken over by long-time
Progress partner, nStudio. In December 2020 nStudio also oversaw the induction of
NativeScript into OpenJS Foundation as an Incubating Project.
NativeScript apps are built using JavaScript, or by using any programming language that
transpiles to JavaScript, such as TypeScript. NativeScript supports the Angular and Vue
JavaScript frameworks.
Mobile applications built with NativeScript result in fully native apps, which use the same APIs
as if they were developed in Xcode or Android Studio. Additionally, software developers can
re-purpose third-party libraries from CocoaPods, Maven, and npm.js in their mobile
applications without the need for wrappers
Software Development Kit Image Source: https://www.21twelveinteractive.com/flutter-vs-react-native-vs-ionic-vs-nativescript/
Apache Cordova
Original author(s) : Joe Bowser, Michael Brooks, and co
If you are looking to create an app in real-time with the best features available, use Cordova!
It allows software programmers to build hybrid web applications for mobile devices Cordova
utilizes CSS3, HTML5, and JavaScript, instead of relying on platform-specific APIs like those
used in Android, iOS, or Windows.
That means you can build more compelling applications by using the properties of Native app
functionalities and features, including compass, contacts, phone camera, accelerometer,
geolocation, notifications, and networks.
Cordova also uses CSS, HTML, and JavaScript codebases depending upon the operating
platform and deploy standard web technologies and plugins to make apps as efficiently and
quickly as possible. This makes it cost-effective since it leverages multiple features during the
development process in real-time.
Famous brands using Apache Cordova: Walmart, Teleport, Hogangnono
Free and open-source, Ionic is a mobile UI toolkit that is used for building high-quality and cross-
platform native and web applications that run everywhere with JavaScript.
Ionic has a potent HTML5 SDK that allows you to develop mobile apps by utilizing advanced
technologies such as HTML, CSS, and Javascript. This SDK mainly focuses on delivering the highest-
quality UI interactions of the applications.
The cross-platform development tool provides pre-designed components, interactive paradigms, and
attractive themes. It is also easy to use, and it makes use of APIs such as Virtual DOM, async, JSX, and
TypeScript that are best suited for Progressive Web Apps.
If you want to develop highly interactive and engaging apps in a shorter period, do not hesitate to
leverage the brilliant library of mobile-optimized and reusable UI components, tools, and gestures
provided by Iconic.
Another fantastic feature of this tool is its massive community support, which helps Iconic developers
to do their job in the best possible way.
Famous brands using Iconic: McDonald's, NationWide, ChefSteps, Pacifica, Market Watch
• https://docs.flutter.dev/get-started/install
Key Points to Remember
• Everything in Dart is treated as an object including, numbers, Boolean, function, etc. like
Python. All objects inherit from the Object class.
• Dart tools can report two types of problems while coding, warnings and errors. Warnings
are the indication that your code may have some problem, but it doesn't interrupt the
code's execution, whereas error can prevent the execution of code.
• Dart supports generic types, like List<int>(a list of integers) or List<dynamic> (a list of
objects of any type).
Flutter Architecture
Flow Statement
06
Flutter State
Flutter UI is function of state
@override
Widget build(BuildContext context) {
return SomeWidget(
// Construct the widget, passing it a reference to the method above.
MyListItem(myTapCallback),
);
}