To Do App Using Flutter Report
To Do App Using Flutter Report
BACHELOR OF ENGINEERING
IN
INFORMATION SCIENCE AND ENGINEERING
For the Academic Year 2021-2022
Submitted by
2021-2022
DEPARTMENT OF INFORMATION SCIENCE AND ENGINEERING
JSS ACADEMY OF TECHNICAL EDUCATION
JSS Campus, Dr.Vishnuvardhan Road, Bengaluru-560060
ABSTRACT
Having known that there is always a list of jobs to be done for all of us, a number of events to be attended
and a lot of deadlines to be reached, there is a huge possibility of missing out on things, which would be
erroneous. Running on these errands might be tedious without a systematic plan. A To-Do Application
gives the service to list down these errands efficiently and plan out the day comprehensively. One can list
out the errands to run, give due time and date for each of them, and then mark them as 'completed' once
done.
1. INTRODUCTION
• FLUTTER:
Flutter is an open-source UI software development kit created by Google. It is used to develop cross
platform applications for Android, iOS, Linux, Mac, Windows, Google Fuchsia, Web platform, and the
web from a single codebase. The first version of Flutter was known by the codename "Sky" and ran on
the Android operating system. It was unveiled at the 2015 Dart developer summit with the stated intent
of being able to render consistently at 120 frames per second.
The major components of Flutter include:
Dart platform
Flutter engine
Foundation library
Design-specific widgets
Flutter Development Tools (DevTools)
Flutter uses a variety of widgets to deliver a fully functioning application. These widgets are Flutter's
framework architecture. Flutter's Widget Catalog provides a full explanation and API on the framework.
• DART:
Dart is a programming language designed for client development, such as for the web and mobile apps.
It is developed by Google and can also be used to build server and desktop applications.
Dart is an object-oriented, class-based, garbage-collected language with C-style syntax. Dart
can compile to either native code or JavaScript. It supports interfaces, mixins, abstract
classes, reified generics, and type inference.
✓ Web
To run in mainstream web browsers, Dart relies on a source-to-source compiler to JavaScript. According
to the project site, Dart was "designed to be easy to write development tools for, well-suited to modern
app development, and capable of high-performance implementations." When running Dart code in a web
browser the code is precompiled into JavaScript using the dart2js compiler. Compiled as JavaScript,
Dart code is compatible with all major browsers with no need for browsers to adopt Dart. Through
optimizing the compiled JavaScript output to avoid expensive checks and operations, code written in
Dart can, in some cases, run faster than equivalent code hand-written using JavaScript idioms.
✓ Stand-alone
The Dart software development kit (SDK) ships with a stand-alone Dart VM, allowing Dart code to run
in a command-line interface environment. As the language tools included in the Dart SDK are written
mostly in Dart, the stand-alone Dart VM is a critical part of the SDK. These tools include the dart2js
compiler and a package manager called pub. Dart ships with a complete standard library allowing users
to write fully working system apps, such as custom web servers.[25]
✓ Ahead-of-time compiled
Dart code can be AOT-compiled into machine code (native instruction sets). Apps built with Flutter, a
mobile app SDK built with Dart, are deployed to app stores as AOT-compiled Dart code.
✓ Native
Dart 2.6 with dart2native compiler to compile to self-contained, native executables code. Before Dart
2.6, this feature only exposed this capability on iOS and Android mobile devices via Flutter.
• SWIFT:
• ANDROID STUDIO:
• SQLITE:
DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit
database files compatible with SQLite.
DB4S is for users and developers who want to create, search, and edit databases. DB4S uses a familiar
spreadsheet-like interface, and complicated SQL commands do not have to be learned.
This program is not a visual shell for the sqlite command line tool, and does not require familiarity with
SQL commands. It is a tool to be used by both developers and end users, and must remain as simple to
use as possible in order to achieve these goals.
2. SYSTEM SPECIFICATIONS
▪ Flutter (Channel stable, 2.8.1, on Microsoft Windows [Version 10.0.19042.1415], locale en-IN)
▪ Android toolchain - develop for Android devices (Android SDK version 30.0.3)
▪ Android Studio (version 2020.3)
▪ DB Browser for Sqlite [Version - 3.12.2 -win64]
Emulator Details
▪ Name: Nexus 5X API 30
▪ Resolution 1080 x 1920 420dpi
▪ API: 30
▪ Target: google_apis_playstore [Google Play] (API level 30)
▪ CPU/ABI: Google Play Intel Atom (x86)
▪ SD Card: 512M
Software Specifications
▪ Operating System: Windows 10
▪ Front end: Flutter
▪ Backend: Sqlite
Hardware Specifications
▪ Processor: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz 2.42 GHz
▪ RAM: 550 MB or more
▪ Hard Disk: 20 GB or greater
▪ Monitor: 39.6-cm. display
▪ Keyboard: 104 keys standard
▪ Mouse: 2/3 button. Optical/Mechanical.
3. IMPLEMENTATION DETAILS
UI PART IMPLEMENTATION
The designed application is programmed and executed. On successful compilation, the app is installed in
the emulator and the screen is displayed. The first screen generally displays the three sections – All Tasks,
Completed Tasks and Incomplete Tasks. Initially, the status variable is set to 0 by default indicating that
there are no active tasks to be completed. A ‘+’ sign is clicked to add a new task. On clicking, a new page
appears asking the user to enter the task title and task details. On clicking the ‘Add Task’ button, the task
is added and the status sets to 1. On adding another task, the status variable increments. All the added
tasks are displayed on the ‘All Tasks’ section. Checking (selecting) a particular task would mean the task
has been completed which is then viewed on the ‘Completed Tasks’ section. Unchecking (deselecting) it
will remove that task from the ‘Completed Task’ and that is viewed on the ‘All Tasks’ section. The
incomplete tasks can be viewed in the ‘Incomplete Task’ section.
Source Code
Creation of database:
class DatabaseConnection{
setDatabase() async{
var directory = await getApplicationDocumentsDirectory();
var path = join(directory.path,'db_taskApp');
var database = await openDatabase(path,version: 1,onCreate:
_onCreatingDatabase);
return database;
}
isnertDatabase(table,data) async{
var connection = await database;
return await connection.insert(table, data);
}
readData(table) async {
var connection = await database;
return await connection.query(table);
}
Read a selected element in the database
readSelectedData(status) async {
var connection = await database;
return await connection.rawQuery("select * from tasks where status =
$status");
}
deleteItem(table,id) async {
var connection = await database;
return await connection.rawDelete("DELETE FROM tasks WHERE id = $id");
}
updateItem(id,status) async {
var connection = await database;
return await connection.rawUpdate("UPDATE tasks SET status = $status WHERE
id = $id");
}
4. SCREENSHOTS
5. REFERENCES
▪ https://flutter.dev/development
▪ https://en.wikipedia.org/wiki/Flutter_(software)
▪ https://developers.google.com/learn/pathways/intro-to-flutter
▪ https://www.youtube.com/watch?v=xWV71C2kp38&vl=en
▪ https://plugins.jetbrains.com/plugin/9212-flutter
▪ https://developers.googleblog.com/2018/12/flutter-10-googles-portable-ui-
toolkit.html
▪ https://codelabs.developers.google.com/codelabs/first-flutter-app-pt1
▪ https://firebase.google.com/docs/flutter/setup
▪ https://www.syncfusion.com/flutter-widgets
▪ https://pub.dev/