20eskca034 - Keshav Gatuam

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 44

SUMMER I N T E R N S H I P REPORT

ON
ANDROID DEVELOPMENT USING
FLUTTER

Submitted to
RAJASTHAN TECHNICAL UNIVERSITY
In Partial Fulfilment of the Requirement for the Award of

BACHELOR’S DEGREE IN
COMPUTER ENGINEERING
BY
KESHAV GAUTAM
20ESKCA034
UNDER THE GUIDANCE OF
MS. ASTHA JOSHI

DEPARTMENT OF COMPUTER ENGINEERING


SWAMI KESHVANAND INSTITUTE OF
TECHNOLOGY
JAIPUR
2023-2024

Department of CSE
SWAMI KESHVANAND INSTITUTE OF TECHNOLOGY,
MANAGEMENT AND GRAMOTHAN, JAIPUR

CERTIFICATE

Department of CSE
Department of CSE
ACKNOWLEDGEMENT

It is my pleasure to be indebted to various people, who


directly or indirectly contributed in the development of this work
and who influenced my thinking, behavior and act during study.

I express my sincere gratitude to DR Mukesh Gupta, HOD,


CSE/IT for providing me an opportunity to undergo summer
training at Swami Keshvanand Institute of Technology. I am
thankful to Learn and Build for their support, cooperation and
motivation provided to me during the training for constant
inspiration, presence and blessings. I also extend my sincere
appreciation to Ms. Astha Joshi who provided her valuable
suggestions and precious time in completing my report.

At last, I must express my sincere heartfelt gratitude to all


the staff members of the Computer Engineering Department
who helped me directly or indirectly during this course of
work.

KESHAV GAUTAM
20ESKCA034

Department of CSE
Department of CSE
Department of CSE
Department of CSE
Chapter 1

Introduction

1.1 OVERVIEW

The document on hand is a narration of the detail the events


and proceedings of the industrial training on course ”Android
development using Flutter”. The internship was conducted by 3
Edge Technologies. The duration of the course was 6 months
starting from February 7 th ,2023 till August 7th ,2023.

Incepted in 2016, 3Edge Technologies is headquartered at Jaipur,


India with presence in Australia, UK and the USA. Quality of work,
huge experience in the industry, keeping long-term working
relationships with clients and, the most important, keeping it all to
the bottom line of your budget are the key factors that make us apart
from many others in the industry.

f 1
1.2 MOTIVATION

Android development is not only about learning various front-


end and back-end technologies. It’s also about understanding
the two areas in sufficient detail and making communication
between them easy and smooth. As technologies and industries
evolve, Android developers will need to learn new technologies
to stay abreast of the latest trends. This broad range of skills
across the stack is a superpower for software developers.
Application development encompasses every task we do to
make an application and get it up and running smoothly. This
process usually includes:
Planning. Before any technical work is done, the team meets
with the client to assess what they want from the application.
They discuss who the intended audience is and what the app’s
goals are.
Mapping. The next step is creating a sitemap that outlines all of
the app’s screens and features. For example, we might set up a
navigation bar from our home screen that leads to a resources
screen. On this resources screen, we might have the option to
navigate to another screen for each specific resource. The site
map will outline the relationships between all of these screens.
Design. Before the building gets done, the team discusses what
the app should look like. An Ui/Ux designer or graphic
designer

f 2
usually leads this process and focuses on the app’s aesthetics.
Coding. This is when the application is built. The android
developer takes the client’s vision, site map, and design
elements into account to code the desired screen.
Review. Before launching an application, the team must review
and test it to ensure it’s functional.
Launch. This is when the application comes to fruition. The
application is hosted to the play store and app store and
becomes visible to anyone on the internet.
App Development without backend is the main service provided
by Solar Secure Solutions. They design a variety of
applications like News apps, service-based apps, eCommerce,
Social, etc. for their customers worldwide. They provide top-
quality Front End developing services to the clients.

1.3 OBJECTIVES OF TRAINING

• To use the experience gained from the ‘Industrial Training’


in discussions held in the lecture rooms.

• Understand basic concept and structure of FLUTTER,


DART, ANDROID APPS, PACKAGES, Widgets,
Firebase, Java, creating Database using firebase etc.

• To provide an opportunity to incorporate the principals and


techniques theoretically learnt into real life situations.

f 3
associating with staff and people from different backgrounds.

• To develop positive attitude towards work

• To acquire good technical writing skills.

• To get awareness about the various job opportunities.

• To expose Computer Science Engineering ethics and


codes of practice.

1.4 ROLE AS AN INTERN

Interns at 3Edge Technologies were required to cover all


aspects of creating android applications to become an android
developer. For this required core knowledge about designing
tools like Adobe xD, Figma, Ui/Ux components, Widgets, etc.
The tasks were given every 4 days which had to be completed
within the deadline.
While learning about application development I also gained
knowledge about Ui designing. During my internship period I
mostly worked with designing “Country Vision News App”
application.

f 4
Chapter 2

Introduction to Project / Modules

2.1 ANDROID DEVELOPMENT

Android operating system is the largest installed base


among various mobile platforms across the globe. Hundreds of
millions of mobile devices are powered by Android in more than
190 countries of the world. It conquered around 71% of the global
market share by the end of 2021, and this trend is growing bigger
every other day. The company named Open Handset
Alliance developed Android for the first time that is based on the
modified version of the Linux kernel and other open-source
software.

Features of Android
Android is a powerful open-source operating system that provides immense
features and some of these are listed below.

f 5
 Android Open-Source Project so we can customize the OS based on
our requirements.
 Android supports different types of connectivity for GSM, CDMA,
Wi-Fi, Bluetooth, etc. for telephonic conversation or data transfer.
 Using Wi-Fi technology, we can pair with other devices while
playing games or using other applications.
 It contains multiple APIs to support location-tracking services such
as GPS.
 We can manage all data storage-related activities by using file
manager.
 It contains a wide range of media support like AVI, MKV, FLV,
MPEG4, etc. to play or record a variety of audio/video.
 It also supports different image formats like JPEG, PNG, GIF, BMP,
MP3, etc.
 It supports multimedia hardware control to perform playback or
recording using a camera and microphone.
 Android has an integrated open-source Web Kit layout-based web
browser to support User Interfaces like HTML5, and CSS3.
 Android supports multi-tasking, which means we can run multiple
applications at a time and can switch between them.
 It provides support for virtual reality or 2D/3D Graphics.

Android Versions
Google first publicly announced Android in November 2007 but was
released on 23 SEPTEMBER 2008 to be exact. The first device to bring
Android into the market was the HTC Dream with the version Android 1.0.
Since then, Google released a lot of android versions such as Apple Pie,
Banana Bread, Cupcake, Donut, Éclair, Froyo, Gingerbread, Jellybeans,
Kitkat, Lollipop, marshmallow, Nougat, Oreo, etc. with extra functionalities
and new features.

f 6
2.2 Front End Development (Ui designing)

Figure 2.1: Frontend Skills

This skill set involves the actual presentation of your


application—how the information in your application is laid out
on mobile devices. Everything that you actually see on a app
screen—the layout, the positioning of text and images, colors,
fonts, buttons, and so on—are all factors that the front end
developer must consider.
The main goal of a frontend developer or Ui developer is to
provide the platform for visitors to interact with, a platform
which provides and receives information. Additional skillsets of a
frontend developer could include user experience design and user
interface design, skills which help a team evaluate the best
methods of displaying and collecting information.

f 7
2.3 Back End Development (DataBase)

Back-end development means working on server-side software,


which focuses on everything you can’t see on a application
screen.
Back-end developers ensure the app performs correctly,
focusing on databases, back-end logic, application programming
interface (APIs), architecture, and servers. They use code that
helps application to communicate with databases, store,
understand, and delete data.
Back-end developers must be familiar with many kinds of tools
and frameworks, including languages such as MySql, Java, and
php. They make sure the back-end performs quickly and
responsively to front-end user requests.

Figure 2.2: Backend Skills

2.4 Responsibilities of an Android developer

• Designing user interactions with frontend code

• Ensuring mobile screens are optimized

f 8
• Creating and maintaining databases and servers

• Testing and debugging on both the front- and backend

• Writing documentation

• Designing and developing functioning APIs

• Staying up-to-date on new technologies which


could improve technology and customer experience

2.5 TECHNOLOGIES USED

2.5.1 Flutter

Our Flutter Tutorial provides basic and advanced concepts of the


Flutter framework. Flutter is a UI toolkit for building fast, beautiful,
natively compiled applications for mobile, web, and desktop with one
programing language and single codebase. It is free and open-source.
Initially, it was developed from Google and now manages by

an ECMA standard. Flutter apps use Dart programming language for creating
an app. The cross-platform development framework has the ability to write
one code and can deploy on the various platform (Android, iOS, and Desktop).
It saves a lot of time and development efforts of developers. There are several
tools available for cross- platform development, including web-based tools,
such as Ionic from Drifty Co. in 2013, PhoneGap from Adobe, Xamarin from
Microsoft, and React Native form Facebook. Each of these frameworks has
varying degrees of success in the mobile industry.

f 9
2.5.2 DART

Dart is an open-source, general-purpose, object-oriented


programming language with C-style syntax developed by Google in
2011. The purpose of Dart programming is to create a frontend user
interfaces for the web and mobile apps. It is under active
development, compiled to native machine code for building mobile
apps, inspired by other programming languages such as Java,
JavaScript, C#, and is Strongly Typed. Since Dart is a compiled
language so you cannot execute your code directly; instead, the
compiler parses it and transfer it into machine code. Style Sheets
(CSS) is a style sheet language used for describing the
presentation of a document written in a markup language such
as HTML or XML.

2.5.1 Widgets

Each element on a screen of the Flutter app is a widget. The


view of the screen completely depends upon the choice and
sequence of the widgets used to build the apps. And the structure
of the code of an apps is a tree of widgets.

Types of Widgets:
There are broadly two types of widgets in the flutter:
1.Stateless Widget
2.Stateful Widget

f 1
2.5.2 Figma

Figma is a cloud-based design tool that is similar to Sketch in


functionality and features, but with big differences that make Figma
better for team collaboration. For those skeptical of such claims,
we’ll explain how Figma simplifies the design process and is
more effective than other programs at helping designers and teams
work together efficiently.

2.5.3 Rest APIs

Representational State Transfer (REST) is an architectural style


that defines a set of constraints to be used for creating web
services. REST API is a way of accessing web services in a simple
and flexible way without having any processing. REST technology
is generally preferred to the more robust Simple Object Access
Protocol (SOAP) technology because REST uses less bandwidth,
simple and flexible making it more suitable for internet usage. It’s
used to fetch or give some information from a web service. All
communication done via REST API uses only HTTP request.

2.5.4 Firebase

It is a mobile application development platform from Google with


powerful features for developing, handling, and enhancing
applications. Firebase is a backend platform for building web and
mobile applications

f 1
2.6 MAIN PROJECT

Country Vision News App

2.6.1 Introduction of the project

Country Vision News App is an application which helps users


to get latest news in their hand just by selecting the category
of news they want to see. It is a wholesome project to gain
experience in all the android development .It teaches a lot of
Dart concepts and, how it takes data from an API and uses it to
output or show different types of latest news over the
screen. The end product is a cool and quick news app that
anyone can use read and see latest news on a single click,
download it and gain their knowledge.
Various elements for creating this news app are:

• Build an API call to fetch news over the internet.

• Building an Ui to show the news on app in a proper manner.

• Authenticating user before using the app.

• Collecting their email id and password from user by


TextFormField widget in flutter using
textControllers.

• Show home page if user is registered else showing login page.


• Different categories on bottom navigation bar.
• Taking news from a local user and their quires through firebase.
f 1
2.6.2 Tools Used

2.6.2.1 Operating System - Windows

2.6.2.2 Packages – flutter services, Firebase services, http package

2.6.2.3 Editor – Android studio , VSCode, etc.

2.6.2.4 Database –F i r e s t o r e (No SQL)

2.6.2.5 Coding Language – Flutter, Dart, java.

2.6.3 Project description

A login page is created for the user to enter login id and


password and a sign-up page to register new user to the app.
The Login page contains various sections:

2.6.3.1 Email id- user needs to enter email id

2.6.3.2 Password - user needs to enter its password in order


to login to the app.

2.6.3.3 Login button – on pressing login button it calls a function


to validate user.
2.6.3.4 Login with Google – app also provides login with google on
clicking it, it simply shows you email account logged in to your
device and user have to select any of them.
2.6.3.5 Sign Up button – when user wants to register to the app they
can create an user account to login the app.

The user is required to login to the app after validation user can

f 1
see latest news and news of their interest field by searching in
search page. User can also contact to the country vision team
using their emails and numbers mentioned in contact us page. In
contact us page there are message column from which user can
interact with country vision team or can send news through the
app including photos and pdf.

2.6.4 Challenges Faced

During the design of the code, different types of problems have


to be met. Also widespread:
• Syntax error.
• Fatal error.
• Find out the problem and try to solve that

f 1
Chapter 3

Description of Modules

3.1 Module 1 - Introduction

This Module is about basics of Ui Design how to make ui


design using various Ui design tools such as Figma, Adobe Xd.
This module includes:
1. Basic Fireframes
2. Plugins
3. Shapes and Ui images

3.2 Module 2 - Basic Programming

This module includes:


1. Dart – OOP language
2. Flutter Framework
3. Widgets

f 1
3.3 Module 3 – Frond End Development

In this module we started creating our Ui for news app. We were


using Figma designs to make an amazing and expressing Ui in
order to create some good aesthetics of app.
This module includes:
1. Animated Splash Screen
2. Directories in project
3. Package importing
4. Getting package dependencies
5. API calls using http package

3.4 Module 4 – Back-end Development

In this module we create our first firebase project and linked it


to the app.
This module includes various steps-
1. Connecting firebase to the app by adding JSON file to
the app.
2. Authenticating user.
3. Creating datastore to store the users’ submissions.
4. Displaying user’s messages on screen.

3.5 Module 5 - Impact of android development


on industries
f 1
As we see, flutter’s extensive packages and widgets that have
broad functionality, being a one stop solution for front-end
developers who don’t want to write code for different platforms.
But the thing is, it’s not a matter of substitution or favoring
libraries over frameworks or vice versa. There’s always a place
for both a library and a framework.

f 1
Chapter 4

Assignments/Results

4.1 Discussion

During entire training session we discussed about how to


analysis the project and how to work on it as per the requirement
of client. The projects done during the internship are based on
the tags of programming language Java, Dart etc.

4.2 Results Achieved

I gained deep and comprehensive knowledge of Ui design and


learned to work with app screens to gain basic knowledge of how
the app works using different tools, frameworks, and languages
like java, dart etc.

f 1
4.3 Screenshot Of Assignment/Result Achieved

Figure 4.1: Splash screen of app

f 1
f 2
f 2
f 2
f 2
f 2
f 2
f 2
f 2
f 2
f 2
f 3
f 3
f 3
f 3
f 3
f 3
Chapter 5

Conclusion and Future Scope

5.1 Conclusion

✓ The training program was conducted successfully and all


the participants took active part in the it.

✓ It was indeed a self-transformational stage and has


enhanced core employable skills such as
communication, collaboration, business etiquette,
financial and digital literacy skills.

✓ This project helped me gather theoretical and practical


knowledge about flutter, java, dart, firebase, NoSql and
other programming language. Beforehand I was confident
about designing and developing frontend of applications.
Now I am also confident and competent in backend.

✓ It increased my communication level and leadership quality.

f 3
✓ It improved versatility and helped me in boosting my career.

✓ It familiarized me with real life software


development environment.

5.2 Future Scope

I gained so much experience from this Internship. If I did not


have this experience, it would be very hard for me to find a
suitable job. As we know finding work can be a challenge in this
competitive world. In my career opportunity, this internship will
support me in

⋄ Gain knowledge and precious experience in speaking and


behaving in the community and office meetings.

⋄ Adds more weightage in resume and makes highly notable


in interviews.

⋄ Transition Into A Full-Time Position.

⋄ Can work as a QA Tester.

⋄ Understand the whole main operation of an IT firm from


different angle and situation

f 3

You might also like