You are on page 1of 21

INTERNSHIP REPORT

On
Android App Development
Submitted
In Partial Fulfilment of the Requirements
for the Degree of
BACHELOR OF TECHNOLOGY
In
Computer Science and Engineering
Submitted by:
Himanshu Panday
(2004230100035)
Under the Supervision of:
Mr. Ayodhya Prasad
(Assistant Professor)

Department of Computer science and Engineering


School of Management Sciences
Dr. A.P.J Abdul Kamal Technical University
Lucknow, U.P
2023-2024
DECLARATION

I hereby declare that the titled Android App Development is an authentic record of the
Internship report carried out by us under the supervision of, the Department of Computer
Science and Engineering. No part of this has been presented elsewhere for any other degree or
diploma earlier.
I declare that I have faithfully acknowledged and referred to the works of other researchers
wherever their published works have been cited. I further certify that I have not wilfully taken
other's work, para, text, data, results, tables, figures, etc. reported in the journals, books,
magazines, reports, dissertations, theses, etc., or available at websites without their permission,
and have not included those in this citing as my work.

Date: 04/01/2023
Name: Himanshu Panday
(2004230100035)
ACKNOWLEDGEMENT

I am highly grateful to the Head of the Department of Computer Science and Engineering for
giving me proper guidance, advice and facility for the successful completion of my internship
Work.
It gives me great pleasure to express my deep sense of gratitude and indebtedness to the
department for valuable support and encouraging mentality throughout the internship. I am
highly obliged for providing me with this opportunity to carry out the ideas and work during my
internship period and helping me to gain the successful completion of my internship.
I am also highly obliged to Mr. Sunit Mishra, HOD, Department of Computer Science and
Engineering, and Internship Coordinator Mr. Ayodhya Prasad, Assistant Professor, Department
of Computer Science and Engineering, for providing me with all the facilities in all activities and
for their support and valuable encouragement throughout my internship.
My special thanks are going to all the faculties for encouraging me constantly to work hard on
this internship. I pay my respect and love to my parents and all other family members and
friends for their help and encouragement throughout this course of internship work.

Date: 04/01/2023
Place: Lucknow
ABSTRACT

This report outline, the work done by me at Digipodium Lucknow under the guidance of my
External guide(Zaid Kamil).

During this 12 week of internship, I learned about Jetpack Compose, Firebase, Services
interaction with Room Database and API integration.

During the 21 days of my training, I was introduced to the Jetpack Compose and its basic
command, Kotlin, programming in Kotlin, Android Studio editor to run the program.

During the second and third months of my training, I focused on application development in
android. I learned about how to make an application and what is the basic things that I need for
that.

During the last months of my training, I focused on project’s application development in android.
I learned about how to make that application with the help of Jetpack Compose, Room
Database, Coroutines, ViewModel and Navigation.

At last, I made an application named Note application under the guidance of my external guide.
Abbreviations

KT KOTLIN
JDK JAVA DEVELOPMENT KIT
XML EXTENSIBLE MARKUP LANGUAGE
APK ANDROID PACKAGE KIT FILE FORMAT
API APPLICATION PROGRAMMING INTERFACE
HTML HYPER TEXT MARKUP LANGUAGE
Table of Contents
1. Introduction

2. Oops concept

3. Introduction to android kotlin

4. Topics coverd in android

1. Fragment

2. Services and Handle notification through service

3. Layouts and views

4. FCM notification

5. Registration form with validation

6. Permission and arraylist

7. Real time application

8. Coroutines, mvvm and retrofit

5. Advance topics in android

1. MVVM data binding

2. MVVM view binding

3. API calling and pagination

4. Data storage

5. Real app integration


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.

(Kotlin Document)

2.OOPS CONCEPTS:
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.
OOP concepts include abstraction, encapsulation, inheritance and polymorphism. Basically, Java
OOP concepts let us create working methods and variables, then re-use all or part of them
without compromising security.

3.INTRODUCTION TO ANDROID KOTLIN:

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.

Kotlin is a cross-platform, statically typed, general-purpose high-level programming language


with type inference. Kotlin is designed to interoperate fully with Java, and the JVM version of
Kotlin's standard library depends on the Java Class Library, but type inference allows its syntax to
be more concise.

Designed by: JetBrains, Paradigm: Multi-paradigm: object-oriented, functional, imperative, block


structured.

Filename extensions: .kt, .kts, .ktm

Typing discipline: Inferred, static, strong

4.TOPICS COVERD IN ANDROID:

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.

 Activity life cycle:


Android Activity Lifecycle is controlled by 7 methods of android.app.Activity class. The
android Activity is the subclass of Context Theme Wrapper class.
The 7lifecycle method of Activity describes how activity will behave at different states.

 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).

 Gradle and Gradle File:


Gradle file is located in the app module of an Android project and is used to configure the
build process for that specific module. The file consists of a series of blocks that are used
to configure different aspects of the build process, such as the build tools to use, the
dependencies for the app, and other settings.

 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.

Then I learned and perform practical of the following topics:


 Fragment
 Services
 Handel notification through service
 Layouts and Views
 FCM Notification
 Registration Form with Validation
 Permission and Arraylist
 Real time application
 Coroutines , MVVM and Retrofit

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.

4.2 Services and Handle notification through service:


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 service is an application component that can perform long-running operations in the
background. It does not provide a user interface. Once started, a service might continue running
for some time, even after the user switches to another application.
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.

(Service Document)

4.3 Layouts and Views:


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.

Types of android views:


 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.
Types of View Group(Layouts) in android:
 Linear Layout
 Relative Layout
 Frame Layout
 Grid View
 List View

4.4 FCM notification:


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.
4.5 Registration Form with Validation:
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.
(Registration Form)

4.6 Permissions and arraylist:


Learnt how to give permission for camera, internet and notification in manifest file.
Implement array List using Array adapter, Base adapter, Recycler View adapter And Custom
adapter.
Programs implemented on array List and adapter.

4.7 Real time application:


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.

4.8 Coroutines, mvvm and retrofit:


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.7 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
MVVM stands for Model, View, View Model.
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.
5 ADVANCE TOPICS IN ANDROID:
 MVVM Data binding
 MVVM View Binding
 Api calling and Pagination
 Data Storage : Database and shared preference
 Real app integration

5.1 MVVM Data binding:


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 ViewModels.
Data binding provides and maintains the automated Two-Way connection between View and
View Model.

5.2 MVVM View binding:


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.
5.3 API calling and Pagination:
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.
We use postman - a desktop app that can execute REST API calls from your computer. It works on
Windows, Linux and MacOS.
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.
5.4 Data Storage : Database and shared preference:
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.

5.5 Real app integration:


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.
PURPOSE:
The internship includes training of git, linux, javascript, android and kotlin.
Main training is learn kotlin framework of android.
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 JSON, Android, Oops and Kotlin.

SCOPE:
The application can use realtime time database to store and retrive data of user.

TECHNOLOGY AND LITERATURE REVIEW:


Technology: JavaScript, Android, Kotlin
Tools: Android studio

Review/Related Work:
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 kotlin 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.
When a specific technology(Android) is given to me by the organization(Digipodium) to me, I
come to know about what is android studio and android. I get to know more about mobile
application. I learned that how the application work on each command, how the notification,
background service, action in the background service take place.

Design details:

In this Clean Architecture Application, I’ve used:


 Room Database,
 Viewmodel,
 Jetpack Compose,
 Navigation model
This is a MVVM Architecture based Application
Conclusion:
I understand each and every topic in this training/Internship and perform various program. I also
perform real time application and one company’s application named Note application.
Throughout my internship, I learned valuable skills in android development, including Compose
and Retrofit.
Overall, my internship experience with android was quit difficult and challenging but interesting
also.

References:
 https://www.w3schools.com/
 https://stackoverflow.com/
 https://kotlinlang.org/docs/home.html
 https://developer.android.com/
 https://developer.android.com/develop/ui/views/layout/declaring-layout
 https://developer.android.com/guide/navigation/navigation-principles
 https://www.geeksforgeeks.org/services-in-android-with-example/
Certificate Copy issued:

You might also like