Android-Internship-Report Max
Android-Internship-Report Max
Bachelor of Technology
In
Computer Engineering
Certificate
i
Training Certificate
ii
Candidate’s Declaration
I hereby declare that the work, which is being presented in the Industrial Training
report, entitled “ANDROID APP DEVELOPMENT” in partial fulfillment for
the award of Degree of “Bachelor of Technology” in Department of Computer
Science & Engineering with Specialization in Computer Engineering and
submitted to the Department of Computer Science & Engineering, Arya
College of Engineering, is a record of my own investigations carried under the
Guidance of Mr.Pawan Sen, Assistant Professor, Department of Computer
Science & Engineering.
(Signature of Candidate)
Candidate Name
Chanchal
22EAICS078
iii
lOMoARcPSD|49107246
ABSTRACT
v
Acknowledgement
I would like to thanks the Department of Computer Science & Engineering, Arya College Of
Engineering, Head Of Department Pawan Sen for providing us the opportunity to have such a
training where we could get the exposure of competing and performing with students from
other colleges and universities.
I would also like to express my heartful gratitude to Mrs. Dr Priyanka Lamba whose guidance
I have been able to complete this training successfully and gain experience and knowledge
about the various topics of the subject.
I would also like to thank all the teaching assistants at Arya College Of Engineering, Jaipur,
they have been very helpful throughout the process both in solving our doubts and motivating
us to complete our tasks and assignments and helping us learn.
Chanchal
22EAICS078
vi
lOMoARcPSD|49107246
List of Figures
Fig.3.1.2 Program……………………………………………………………………………...9
Fig.3.2.4.1 FCM……………………………………………………………………………...16
Fig.3.2.4.2 FCM……………………………………………………………………………...17
Fig.3.3.3.2 Pagination………………………………………………………………………..22
III
lOMoARcPSD|49107246
309854
Abbreviations
KT KOTLIN
309854
Table of Contents
Acknowledgement……………………………………………………………….I
Abstract…………………………………………………………………………II
Abbreviations…………………………………………………………………. IV
Table of Contents……………………………………………………………… V
1.1 History………………………………………………………………..1
2.1.7 Iot……………………………………………………………6
Chapter 3: Training……………………………………………………………8
309854
3.1 Introduction………………………………………………………......8
Chapter 4: Android…………………………………………………………..11
4.1 Introduction…………………………………………………………11
4.4.1 Fragment……………………………………………………14
309854
6.2 Purpose……………………………………………………………...26
6.3 Objective…………………………………………………………….26
6.4 Scope………………………………………………………………..26
REFERENCES………………………………………………………………..29
1.1 HISTORY:
At Web Code Genie Technology PVT Ltd our mission is to help companies with IT
development services. Founded in 2010, we have helped Startups, Mid-size companies,
and huge enterprises in various industry domains. We have a clientele who have been
with us right from the beginning and we believe in such long-term business synergies.
Out Top-Notch technology experts can deliver solutions that can transform your Digital
journey.
Choose Web Code Genie Technology PVT Ltd for unparalleled web and mobile app
development services. As a CMMI Level 3 company, we have a proven track record of
helping startups, mid-size companies, and enterprises across diverse industries since our
establishment in 2010. We value long-term business relationships, which is why our loyal
clientele have been with us from the very beginning. Our team of top web and mobile
app developers is committed to delivering customized solutions that will elevate your
digital journey and exceed your expectations.
At Internshala Traininings, we aspire to provide a healthy work environment for our employees
to encourage innovation and creativity in their ideas and execution. we are dedicated to
providing a holistic approach for our team of experts to enable them refresh their energies
and recharge their creativity bank regularly.
• Web Development
• Web design
• Digital Marketing
• Big data
• Mobile Application Development
• Software Testing
• IOT
• Cloud Computing.
Specialize in web development services that create all types of web based software,
ensuring a seamless user experience that generates a great ROI and enhance the
business.
PHP:
PHP is a server scripting language and a powerful tool for making dynamic
and interactive web pages.
Laravel:
Node.js:
ExpressJS:
Angular:
Angular extends HTML with new attributes. Angular is prefer for single page
applications. Angular is easy to learn.
ReactJS:
React is a javascript library for building user interfaces. React is used to build
single page applications. React allows us to create reusable UI components.
Socket.io
Lumen
Redis
MySQL
MongoDB
Create an engaging and eye-catching website, website that include key brand
identification elements.
Technology used:
HTML
Bootstrap
Material Design
Less
jQuery
XD
Figma
Technologies used:
Adwords
Bing PPC
Local SEO
Organic SEO
Provide highly flexible Big Data and analytics solutions as each company has specific
needs. Our services include helping you identify the best technologies and determining
your company's best Big Data solutions.
Technologies used:
MongoDB
Hadoop
Tableau
Envision and thrive on designing cutting-edge mobile apps for various platforms,
including Android, iOS, Windows, etc.
From establishing product goals and business outcomes to prioritizing the right features
to wow users and deliver a flexible product vision to enable long growth.
Technologies used:
Java
Kotlin
Objective
Swift
Flutter
React Native
With the help of website testing services, we can examine how user-friendly your
website is, see how well it functions, and determine if it can sustain high traffic volumes
and prevent site data from cyberattacks.
Perform usability and speed tests to make sure that you're able to access your site from
any device or screen size without issue.
Technology used:
Eclipse
JMeter
Postman
Selenium
2.2.7 Iot:
We ensure that all your devices are protected from unauthorized access. Keeping the
integrity of all of your data is a priority. We understand how essential it is for you to
manage and share this massive amount of information securely.
Our team does everything in its power to ensure the confidentiality of such information.
We provide IoT device security for our client’s data with multiple security measures.
Among the testing techniques we offer include automated and manual vulnerability
scanning for network, application, mobile app, IoT device, firmware, and firmware
upgrade methods.
Technologies used:
AWS LAmda
AWS IOT
Technologies used:
Amazon AWS
Google Cloud
Digital Ocean
309854 TRAINING
CHAPTER 3: TRAINING
3.1 INTRODUCTION:
• Basic training start from the javascript for the logic building purpose. For that,
first of all, one technical session held for the basic introduction of javascript
then start practicing javascript by given programs which performs in visual
studio.
• Before started programming in javascript, one pdf was also shared for the
overview of javascript. I go through it and then started programming
309854 TRAINING
Fig.3.1.2 Program
• and in javascript, we use editor named visual studio code. So first of all, we
informed about visule studio code and its basic things. For that, one pdf was
shared.
309854 TRAINING
• There are also few non-technical session to improve our thought process and
communication skill. In non-technical session, Group discussion and story
making etc.. arranged by them.
• 4th week onward, technology distribution would be done and Android as an app
developer role assigned to me.
309854 ANDROID
CHAPTER 4: ANDROID
4.1 INTRODUCTION:
On very first day of android; I instructed to learn oops concept and then after perform basic
progamming in java with oops concept. Then , I instructed to do the same programming in
kotlin so that I have clearly idea about what is the difference between java and kotlin . In our
organization , we use Android with kotlin framework so we learned kotlin as a framework.
After all of that basic things , I downloaded the Android Studio under the instruction of my
mentor. Meanwhile, he gives us the basic introduction about android and its version.
All the oops concepts for java have been done to start with android as basics such as
abstraction, polymorphism, interface, inheritance, method overriding and overloading.
Performed task for the same.
309854 ANDROID
Android is a mobile operating system based on a modified version of the Linux kernel and
other open-source software, designed primarily for touchscreen mobile devices such as
smartphones and tablets.
Kotlin is a modern statically typed programming language used by over 60% of professional
Android developers that helps boost productivity, developer satisfaction, and code safety.
First of all, I learned basics of android that need to build any application like:
• Activity:
An activity provides the window in which the app draws its UI. This window
typically fills the screen, but may be smaller than the screen and float on top of
other windows. Generally, one activity implements one screen in an app.
309854 TRAINING
• Intent:
An intent object carries information that the Android system uses to determine
which component to start (such as the exact component name or component
category that should receive the intent), plus information that the recipient
component uses in order to properly perform the action (such as the action to
take and the data to act upon).
• Manifest File:
Every project includes a manifest xml file, which is AndroidManifest.xml,
located in the root directory of its project hierarchy. The manifest file is an
important part of our app because it defines the structure and metadata of our
application, its components, and its requirements.
This file includes nodes for each of the Activities, Services, Content Providers
and Broadcast Receiver that make the application, and using Intent Filters and
Permissions determines how they coordinate with each other and other
applications.
• Fragment
• Services
309854 ANDROID
4.4.1 Fragment:
A Fragment represents a reusable portion of your app's UI. A fragment defines and manages
its own layout, has its own lifecycle, and can handle its own input events. Fragments can't live
on their own. They must be hosted by an activity or another fragment. Implement fragment
lifecycle and travel from one activity to other through fragment.
Implement service lifecycle, learn document about service and go through the types of
service and try to implement it. Create notification through bound service.
A component can bind to a service to interact with it and even perform interprocess
communication (IPC).
For example, a service can handle network transactions, play music, perform file I/O, or
interact with a content provider, all from the background.
309854 ANDROID
A View is a simple building block of a user interface. It is a small rectangular box that can be
Text View, Edit Text, or even a button. It occupies the area on the screen in a rectangular area
and is responsible for drawing and event handling. View is a superclass of all the graphical
user interface components.
• Text View
• Edit Text
• Button
• Image Button
• Date Picker
• Radio Button
• Check Box buttons
• Image View
A View Group is a subclass of the View Class and can be considered as a superclass of Layouts.
It provides an invisible container to hold the views or layouts.
309854 ANDROID
• Linear Layout
• Relative Layout
• Frame Layout
• Grid View
• List View
Also create notification through FCM. There are so many steps of FCM to create notification.
Few screen shots of Firebase Cloud Messaging are showing below.
Firebase Cloud Messaging (FCM) is a cross-platform messaging solution that lets you reliably
send messages at no cost.
Using FCM, you can notify a client app that new email or other data is available to sync. You
can send notification messages to drive user re-engagement and retention. For use cases such
as instant messaging, a message can transfer a payload of up to 4000 bytes to a client app.
Fig.3.2.4.1 FCM
309854 ANDROID
Fig.3.2.4.2 FCM
Create a form with the help of Text View and Edit Text View with the proper Design and
then apply the validation of Email, Phone on click of submit button.
309854 ANDROID
Learnt how to give permission for camera, internet and notification in manifest file.
Implement array List using Array adapter, Base adapter, Recycler View adapter
Small application is created with 3 main screen Home page, team and profile. Application were
created with all the functionality and validation.
Notification, Services and permissions all the concepts were implemented in app.
Implementation of Tab layout and viewpager2 with fragment State Adapter and using Recycler
View Adapter.
Global scope, Life cycle and View model Scope of coroutines, MVVM Structure of industry
level and Retrofit for API Integration.
A coroutine is a concurrency design pattern that you can use on Android to simplify code that
executes asynchronously. Coroutines were added to Kotlin in version 1.3 and are based on
established concepts from other languages.
Coroutines help to manage long-running tasks that might otherwise block the main thread and
cause your app to become unresponsive. Over 50% of professional developers who use
coroutines have reported seeing increased productivity.
309854 ANDROID
MVVM suggests separating the data presentation logic(Views or UI) from the core business
logic part of the application.
Retrofit is an easy and fast library to retrieve and upload data via a REST-based web service.
Retrofit manages the process of receiving, sending, and creating HTTP requests and responses.
It resolves issues before sending an error and crashing the application. It pools connections to
reduce latency.
Retrofit manages the process of receiving, sending, and creating HTTP requests and responses.
It resolves issues before sending an error and crashing the application. It pools connections to
reduce latency. It is used to cache responses to avoid sending duplicate requests.
309854 ANDROID
Created an app using MVVM databinding and try to validate form item such as email, password
and number and performed crud from recycler view.
Data binding is the key technology that MVVM relies on, to link Views with their View-
Models. Data binding provides and maintains the automated Two-Way connection between
View and View Model.
API integration of cats and users with MVVM view binding have been learned and performed.
All the same thing with MVVM view binding were implemented to learn how to integrate all
things with view binding.
View binding is a process that allows you to more easily connect your code to specific views in
your layout. This can be helpful if you need to reference a view multiple times in your code or
if you want to avoid using findViewById(). With view binding, you can create a binding object
for a layout and then access the views in that layout by using the variables in the binding object.
309854 ANDROID
To make our work easier while working with APIs we use tools like Retrofit + OkHttp,
or Volley. Stetho, a debug bridge for Android, works great with Retrofit and OkHttp.
We use postman - a desktop app that can execute REST API calls from your computer. It works
on Windows, Linux and MacOS.
Pagination is one of the most important factors which helps to reduce the loading time
inside our app and increase the performance of our data which is represented in the form of
Lists.
309854 ANDROID
API integration using retrofit, header interceptor and coroutines were implemented. API calling
for cats and cats details, display details of cats dynamically in real time from postman. API
integration for user data was also carried out with MVVM+MVP.
Data store, retrieve, update and delete using shared preference as data storage. Implementation
of SQLite database to perform CRUD operations with them. Use Recycler view with database
to perform those operation. Performed CRUD operation in Firebase Realtime database.
Implemented Room database to perform CRUD operation such insert, update and delete.
309854 ANDROID
Performed Google singing to get interacted with real time cloud service. Facebook page with
login and validation were done to connected with facebook id. Instagram login page have been
implemented to interacted with user’s real Instagram id.
At the end, project were given by our team lead named as HRMS Application. HRMS is
application in which user can create and manage leaves for the company, see upcoming
holiday, manage roles, manage employee, people and groups.
• Login,
• forgot password,
• dashboard,
• Leave,
• Calendar,
• Roles,
• Employee, People, Group
• Logout
There were neumorous screen in this project with all the proper validations and in proper
format.
It uses room database to store and retrieve data from real data storage.
309854 ANDROID
I learnt the basics of javascript and donbe programming to build logic. After basic training, I
learnt basics to adavance level concept in android. Perform various task based on the concept
and also done real time application. At the end of the internship, our mentor told us to make
HRMS application.
6.2 PURPOSE:
The internship includes training of git, linux, javascript, android and kotlin.
6.3 OBJECTIVE:
The main objective of training is developing apps that can implement notification, service,
broadcast receiver, views and layouts, use Firebase Realtime or room database to store data
and integrate api for data. Learn how to push and pull projects in git Lab, use of git in live
projects. Learn about JAVASCRIPT, Android, Oops and Kotlin.
6.4 SCOPE:
The application can use realtime time database to store and retrive data of user.
During my internship, I learned that how to implement a logic or a theoretical knowledge into
practice and real-world work environment. I performed so many programs in javascript so that
my programming skill is improve and as of now, I have better programming skill than I had.
There are also non technical session so that my communication skill is also improved and I get
to know about group discussion and hoe it is going, how I can handle that and can take part of
that discussion. So overall, my stage fear is gone and I can easily put my topic in front of others
and explain it very well.
I started my internship at WebCodeGenie in January 2023, during the 21 days of basic training
or for the logic development purpose, I was introduced to the ubuntu(linux) and javascript. In
ubuntu, I performed basic commands in terminal which was given by them and in javascript,
we use editor named visual studio code. So first of all, we informed about visule studio code
and its basic things. For that, one pdf was shared.
Before started programming in javascript, one pdf was also shared for the overview of
javascript. I go through it and then started programming from the basic program like minimum,
maximum etc.. which was given by them in our company,s application named mattermost.
Gradually I moved into the complex program like array, array-object, object… after that queen
problem, tic-tac-toe game etc. There are also a team where mentor was assigned to me whom
I can solve my problem, difficulties and take help for the programs. If I was stuck in anywhere
in the program then it can be solved by my mentor with my mistake and proper explanation.
After that 21 days of basic training, remaining internship was on my that technology in which
I have to assign and that is android. In android, first of all my mentor asked some basic concept
of oops to know that is it cleared or not. Then after I go through oops concept deeply.
I also learn basic concept of java with oops concept for the batter understanding of kotlin. After
that I learned kotlin and started android studio.
In android studio, I learned basic concept of that like how many files it has, in which file I have
to write which code, what is .xml file and how was all things are working in it.
I understand each and every topic in that and perform various program. I also perform real time
application and one company’s application named HRMS application.