Flutter Training Report
Flutter Training Report
Flutter Training Report
BELAGAVI
2021 – 2022
ACKNOWLEDGEMENT
Also, I thank all the teaching and non-teaching staff of Department Artificial
Intelligence and Machine Learning for the help rendered.
I. INTRODUCTION
Dart platform
Flutter engine
Foundation library
Design-specific widgets
Flutter Development Tools (DevTools)
Dart platform:
Flutter apps are written in the Dart language and make use of many of the
language's more advanced features.
While writing and debugging an application, Flutter runs in the Dart virtual
machine, which features a just-in-time execution engine. This allows for fast
compilation times as well as "hot reload", with which modifications to source
files can be injected into a running application. Flutter extends this further with
support for stateful hot reload, where in most cases changes to source code are
reflected immediately in the running app without requiring a restart or any loss
of state.
For better performance, release versions of Flutter apps on all platforms use
ahead-of-time (AOT) compilation.
Flutter engine:
The Foundation library, written in Dart, provides basic classes and functions
that are used to construct applications using Flutter, such as APIs to
communicate with the engine.
Design-specific widgets:
The Flutter framework contains two sets of widgets that conform to specific
design languages: Material Design widgets implement Google's design language
of the same name, and Cupertino widgets implement Apple's iOS Human
interface guidelines.
Widgets:
Flutter fulfills the custom needs and requirements for developing mobile
applications. It also offers many advantages, which are listed below.
It makes the app development process extremely fast because of the hot-
reload feature. This feature allows us to change or update the code are
reflected as soon as the alterations are made.
It provides the smoother and seamless scrolling experiences of using the
app without much hangs or cuts, which makes running applications faster
in comparison to other mobile app development frameworks.
Flutter reduces the time and efforts of testing. As we know, flutter apps
are cross-platform so that testers do not always need to run the same set
of tests on different platforms for the same app.
It has an excellent user interface because it uses a design-centric widget,
high-development tools, advanced APIs, and many more features.
It is similar to a reactive framework where the developers do not need to
update the UI content manually.
It is suitable for MVP (Minimum Viable Product) apps because of its
speedy development process and cross-platform nature.
We have seen earlier that the Flutter has many advantages, but it also
contains some disadvantages, which are given below.
1. main.py
import 'package:flutter/material.dart';
import 'package:instagram_login/instagram_view.dart';
2. home.dart
import 'package:flutter/material.dart';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Welcome $name'),
),
body: Center(
child: Text('Token: $token'),
),
);
}
}
3. instagram_constant.dart
class InstagramConstant {
static InstagramConstant? _instance;
static InstagramConstant get instance {
_instance ??= InstagramConstant._init();
return _instance!;
}
InstagramConstant._init();
4. instagram_model.dart
import 'dart:convert';
class InstagramModel {
List<String> userFields = ['id', 'username'];
String? authorizationCode;
String? accessToken;
String? userID;
String? username;
5. instagram_view.dart
import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
import 'package:instagram_login/home.dart';
import 'package:instagram_login/instagram_constant.dart';
import 'package:instagram_login/instagram_model.dart';
@override
Widget build(BuildContext context) {
return Builder(builder: (context) {
final webview = FlutterWebviewPlugin();
final InstagramModel instagram = InstagramModel();
return WebviewScaffold(
url: InstagramConstant.instance.url,
resizeToAvoidBottomInset: true,
appBar: buildAppBar(context),
);
});
}
await Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => HomeView(
token: instagram.authorizationCode.toString(),
name: instagram.username.toString(),
),
),
);
});
}
});
}
});
}
V. CONCLUSION
Some of the students of Alva’s Institute of Engineering and Technology
have attended a 5-day workshop about Flutter and React. Nobody had estimated
that amount of strength for the Flutter training, but there was a rocking 80
students attending the workshop every day from 15th February to 19th
February. The workshop was conducted for 2 hours every day but the interested
students extended the sessions for about 4 hours every day. React sessions were
handled by Mr. Harshad and the Flutter sessions were handled by
Mr. Mohammed Alfaz. I attended the Flutter workshop as I was more interested
in that particular framework.
The first two days were totally dedicated to the installation of Flutter and
related applications in the students’ respective systems. As the process of
installation is very long, tedious and requires supervision, the tutor himself
guided each student personally. This consumed a lot of time. Then the training
started with full interest and concentration. The tutor tried his best to convey as
much knowledge as possible. Hats off to his patience and dedication to teach.
The efforts he made to make us all understand the basics of Flutter is
remarkable. The next three days was filled with a lot of knowledge and skill
development. We were taught to make simple interfaces using Flutter and
Visual Studio Code. The currency converter for that sake, we learnt to program
in such a way it can be executed in a virtual display of a mobile phone. Then the
code was developed to display the sign-in page of Instagram. The code was
about 100 lines long and the output was just like the real page of Instagram. We
all loved the process of coding and enjoyed debugging all the errors in the code.
The training was just lit.