0% found this document useful (0 votes)
245 views43 pages

Final Internship Report

The document is an internship report submitted by Shanjana S for the completion of a Bachelor of Engineering in Information Science and Engineering at Visvesvaraya Technological University. It details the internship experience at Tata Elxsi, focusing on the development of an OTT streaming service called TEFLIX, and outlines the objectives, tasks performed, and company profile. The report emphasizes the importance of internships in gaining practical experience and enhancing employability in the competitive job market.

Uploaded by

Asha Patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
245 views43 pages

Final Internship Report

The document is an internship report submitted by Shanjana S for the completion of a Bachelor of Engineering in Information Science and Engineering at Visvesvaraya Technological University. It details the internship experience at Tata Elxsi, focusing on the development of an OTT streaming service called TEFLIX, and outlines the objectives, tasks performed, and company profile. The report emphasizes the importance of internships in gaining practical experience and enhancing employability in the competitive job market.

Uploaded by

Asha Patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

VISVESVARAYA TECHNOLOGICAL UNIVERSITY

Belagavi-590018, Karnataka

An Internship Report On
“IP Mobile Android”
Submitted in partial fulfillment for the award of the degree in
BACHELOR OF ENGINEERING
IN
INFORMATION SCIENCE & ENGINEERING

Submitted by
SHANJANA S USN: 1BH19CS098

Under the guidance of


[Your Project Guide Name]
Associate/Assistant professor Dept. of ISE
AMC ENGINEERING COLLEGE
18 Km, Bannerghatta Road, Bangalore-560083
DEPARTMENT OF INFORMATION SCIENCE AND ENGINEERING

CERTIFICATE

It is certified that the internship Work entitled “IP Mobile Android” carried outby Shanjana S,
[1BH19CS098], the Bonafide student of AMC Engineering College, Bangalore in partial
fulfillment for the award of Bachelor of Engineering in Information Science and Engineering
of Visvesvaraya Technological University, Belagavi during the year 2023-2024. Thus, it is certified
that all corrections/suggestion indicated for Internal Assessment have been incorporated in the
report submitted to the Department of Information Science and Engineering. The Internship report
has been approved as it satisfies the academic requirement in respect of internship report prescribed for
the said degree.

[your project guide name] Mrs. Vinutha M


Internal Guide Internship Co-Ordinator
Department of ISE Department of ISE

Dr. R. Amutha Dr Yuvaraju B N


H.O.D. Principal
Department of ISE

External Viva

Name of the Examiners Signature with date

1 ………………....... ……………………

2 …………………… …………………....
DECLARATION

I, Student Name [usn] student of VIII Semester, B.E in Information Science and Engineering, AMC
Engineering College, hereby declare that the Internship entitled FRONT-END WEB
DEVELOPMENT has been carried out by us and submitted in partial fulfilment of the requirements
for the award of the degree of Bachelor of Engineering in Information Science and Engineering of
Visvesvaraya Technological University, Belgaum during the academic year 2024 - 2025.

Place: Bengaluru
Date:

[Student Name]
[USN]

[Signature]

[INTERNSHIP OFFER LETTER]


INTERNSHIP CERTIFICATE
ACKNOWLEDGEMENT

Any achievement, be it scholastic or otherwise does not depend solely on the individual efforts but on

the guidance, encouragement and cooperation of intellectuals and elders. I would like to take this

opportunity to thank them all.

I heartily extend my words of gratitude to my external guide [External Internship guide], for her

valuable advice, encouragement and suggestion given to me in the course of my internship.

I heartily extend my words of gratitude to my internal guide [Internal Internship guide], for her

valuable advice, encouragement and suggestion given to me in the course of my internship.

I heartily extend my words of gratitude to my internship coordinator Mrs. Vinutha M, for her valuable

advice, encouragement and suggestion given to me in the course of my internship.

I would like to express my immense gratitude to Head of Department Dr. R Amutha, for her unfailing

encouragement and suggestion given to me in course of my work.

I would like to take this opportunity to express my gratitude to the Principal, Dr. Yuvaraju B N, for

giving me this opportunity to enrich my knowledge.

Finally, a note of thanks to the Department of Information Science and Engineering, both teaching and

non-teaching staff for their co-operation extended to me.

Last but not least, we acknowledge the support and the feedback of our parents and friends, for their

indispensable help at all times.

STUDENT NAME
[USN]

i
ABSTRACT

This report contains the work done during the internship period which was held in TATA ELXSI. This
report shows an overview of the tasks done during the period of internship in details. The purpose of
this report is to explain what I did and learned in one month of internship in TATA ELXSI from 29
august 2022 to 30 September 2022.

In internship as an android developer, my main focus or objective was to learn android, software
development lifecycle, improve my coding style, and know about new technology. Now a day, there
are lots of software engineers working on new technology and made lot of android apps. Android apps
can make our daily life become easier. In future software engineers as a career will have some good
opportunities. This report takes us through all the details of an actual project and experience gathered
during this internship.

The consent of all chapters is broadly explained precise, brief and clearly. In the opening, chapter 1
gives the objectives and importance of internship. The second chapter give details about the project in
which I have worked. The third, fourth, fifth chapters give details about the company background
including its mission, vision and objectives those runs through the company consultation. The sixth and
seventh chapters gives the details about the task performed and work schedule weekly

ii
LIST OF CONTENTS

CHAPTER PAGE NO.


1. INTERNSHIP OBJECTIVES 1

1.1 Internship Objectives 1

1.2 Importance of Internship 2

2. INTRODUCTION ABOUT THE PROJECT 3

3. COMPANY PROFILE 4

3.1 About the Company 4

3.2 Service provided by the company 6

3.3 Vision, Mission and Objectives 6

4. COMPANY DIVISION 7

4.1 Ground Floor 7

4.2 First Floor 7

4.3 Second Floor 7

4.4 Third Floor 7

5. ORGANISATION STRUCTURE 8

6. TASK PERFORMED 10

6.1 Introduction 10

6.2 About Internship 11

7. WORK SCHEDULE 25

7.1 Week no. 1 25

iii
7.2 Week no. 2 25

7.3 Week no. 3 26

7.4 Week no. 4 26

7.5 Week no. 5 27

8. CONCLUSION 28

REFERENCES 29

APPENDIX 30

iv
LIST OF FIGURES

FIGURE NO. TITLE OF THE FIGURE PAGE NO.


3.1 Tata Elxsi Logo 4

3.2 Tata Elxsi entrance 5

3.3 Garden area 5

6.1 Course completion certificate 13

6.2 Life cycle work flow 17

6.3 Illustration of a View hierarchy 18

6.4 Architecture components 19

6.5 MVVM architecture 21

6.6 Room Database architecture 22

6.7 Example JUnit test cases 23


6.8 Data classes 24
10.1 In park after lunch 30

10.2 Group picture after Demo 30

v
LIST OF TABLES

TABLE NO. TITLE OF THE TABLE PAGE NO.


7.1 Overview of first week activity 25

7.2 Overview of second week activity 25

7.3 Overview of third week activity 26

7.4 Overview of fourth week activity 26

7.5 Overview of fifth week activity 27

vi
IP MOBILE ANDROID 2022-2023

Chapter 1
INTERNSHIP OBJECTIVES

1.1 INTERNSHIP OBJECTIVES ARE:

1. Gain valuable work experience


The hands-on work experience interns receive is invaluable and cannot be obtained in
a classroom setting, making this one of the most important objectives of internships.
Interns can apply acquired knowledge to real work experiences, witnessing first-hand
the day-to-day job duties they can expect to encounter in their chosen field. In
addition to learning the specialized skills of a field, transferable skills such as
communication, teamwork, and computer proficiency are also obtained in an
internship, fully preparing interns to enter the workforce upon graduation.

2. Explore a career path


Exploring is an important part of the college experience, and internships are a great
way for students to acquaint themselves with the field they are interested in. Some
students begin college with a major or career path in mind and end up changing their
minds later. Taking on an internship while in college allows students to work in their
desired field, helping them decide if the field is right for them. By graduation, students
who interned are more likely to feel confident they chose the right degree.

3. Give yourself an edge in the job market


One of the most important internship objectives is that college graduates who already
have some work experience in the form of an internship stand out to potential
employers. Internship experience makes a college grad more marketable as they
usually require less training and can handle more responsibilities. You may also
receive a higher starting salary than those who do not have internship experience and
are enteringthe workforce or starting a new career.

Department of ISE, AMCEC, Bengaluru-083 1


IP MOBILE ANDROID 2022-2023

1.2 IMPORTANCE OF INTERNSHIP:

In today’s labour market, employers rely heavily on resumes that demonstrate relevant work history,
whether it is from actual job experience, volunteer work, or interning at a company. An internship is
an official program offered by organizations to help train and provide work experience to students
and recent graduates. The concept of working as an intern began a long time ago but has drastically
evolved over the years. Internships first started as a labourer who would take on young individuals
and teach them their art or trade. In exchange for being taught a skill, the trainee would agree to
work for the labourer for a specific time. Even then, the purpose of an internship or rather an
apprenticeship was to gain new skills to be able to obtain future work.
Getting work experience is an essential aspect of starting your career as a young graduate. Job
experience is not just restricted to an office job with a large organization. You can get an internship
at a small company or get experience by freelancing. Any experience where you use skills that you
can transfer to your future career is an excellent addition to your CV. By partaking in an internship,
you will be able to gain real-life exposure, grow your knowledge and determine if you are in the
right career field.
An internship will help you learn about your capabilities and ultimately encourage you to have a
greater understanding of your strengths and weaknesses. It can be a challenging experience at times.
Still, the benefits you gain from being pushed out of your comfort zone will help you tremendously
in the future when you are presented with a difficult task or situation.
Everyone knows that the job market is competitive, especially in the current climate. There may be
hundreds of other candidates applying for the same role as you. As a result, you need a way to help
give you a competitive edge and make yourself stand out. Internships can provide you with
experience and the skills to help make employers notice you and as well as showing them that you
would be a good fit for their company. It also shows that you are someone who has the drive and
passion and has been motivated to acquire experience outside of just University.
Internships play a crucial role in shaping one’s career. It not only helps undergraduates and
graduates gain real exposure to working environments but also helps them develop the necessary
skills required to stand out in a saturated job market.

Department of ISE, AMCEC, Bengaluru-083 2


IP MOBILE ANDROID 2022-2023

Chapter 2

INTRODUCTION ABOUT THE PROJECT

IP MOBILE ANDROID:
Working in this project gave me clear idea of how an OTT streaming service works using android
studio in different devices like mobile and android TV.
OTT generally refers to the commercialized practice of streaming content on the world wide web.
OTT stands for “over-the-top” platforms, which provide a simple and exclusive way to enjoy
entertainment over the internet. Over-the-top (OTT) video viewers: Individuals who watch video via
any app or website that provides streaming video content and bypasses traditional distribution.
Examples include HBO Now, Hulu, Netflix, Amazon Video, YouTube/YouTube Red and Sling TV.
Android Studio provides a unified environment where you can build apps for Android phones,
tablets, Android Wear, Android TV, and Android Auto. Structured code modules allow you to
divide your project into units of functionality that you can independently build, test, and debug. Use
the Android Studio Layout Editor to create and preview your app's UI by dragging elements into a
visual designer, so you don't have to write XML by hand.
We created an OTT service named TEFLIX which works in android TV and mobile. It has modules
like movies, sports, games, apps, settings etc. We have subscription plans through which the users
pay to use this OTT service. It allows members to rent movies and also watch movies and TV shows
online with a computer, game console, smartphones, tablet or android TV.
This is an IP project that is Internal Project which is not submitted to the client. I was asked to write
JUnit test codes as a part of developer testing as the project was halfway done when I was into the
project. I was asked to write unit test code in JUnit version 4 and then convert that test code to JUnit
version 5.
JUnit is a unit testing open-source framework for the Java programming language. Java Developers
use this framework to write and execute automated tests. In Java, there are test cases that have to be
re-executed every time a new code is added.

Department of ISE, AMCEC, Bengaluru-083 3


IP MOBILE ANDROID 2022-2023

Chapter 3
COMPANY PROFILE

3.1 ABOUT THE COMPANY

Fig 3.1 Tata Elxsi Logo

Tata Elxsi is among the world’s leading design and technology service providers across
industries, including Automotive, Broadcast, Communications, Healthcare, and Transportation.
They help customers reimagine their products and services through design thinking and the
application of digital technologies such as IoT (Internet of Things), Cloud, Mobility, Virtual
Reality, and Artificial Intelligence.

Tata Elxsi commenced its business on 5th May 1989 in Bangalore, the Silicon Valley of India, to
develop and promote applications of electronics, embedded systems, and software.

Tata Elxsi brings together the best technology and user-centric design expertise to help customers
deliver innovative solutions and great consumer experiences. Our integrated Design and Technology
teams help enterprises reimagine their products and services -- from strategy, consumer research and
insights, to service and experience design, technology implementation, integration, launch, and
beyond. It’s an eco-friendly organization.

Department of ISE, AMCEC, Bengaluru-083 4


IP MOBILE ANDROID 2022-2023

Fig 3.2 Tata Elxsi Entrance

Fig 3.3 garden area

CEO
Manoj Raghavan (2 Oct 2019).
Parent organization
Tata Group.
Company Size
5,000 to 10,000 employees.
Website
www.tataelxsi.com

Department of ISE, AMCEC, Bengaluru-083 5


IP MOBILE ANDROID 2022-2023

3.2 SERVICES PROVIDED BY THE COMPANY


Tata Elxsi is a product development company and works closely with some of the global majors in
the auto environment space with some of the latest technologies. It provides Design-led digital
engineering, technology development, testing, and systems integration services
Service provided in media and communication:
Offers services and solutions for consumer experience, distribution & delivery and ad
monetization for Media, New Media, and OTT service providers.
Network transformation, intelligent network operations, network orchestration, SDWAN, SDN
and RDK services for telecommunication companies.
Service provided in transportation:
Offers engineering services for future connected, autonomous, shared, and electric (CASE)
vehicles, vehicle systems engineering services, automotive software engineering services, system
engineering and HILS services for passenger and off-highway vehicles.
Provides passenger experience, digitalization, rolling stock and systems services for the rail
industry.
Service provided in healthcare and pharma:
 Provides design, technology and regulatory services to medical devices, healthcare, and
pharmaceutical companies.
Offers ‘Scrum Dr,’ an agile based technical document remediation service.

3.3 VISION, MISSION AND OBJECTIVES


VISION:
The vision of Tata Elxsi is to create new opportunities to impact customer experience and drive
growth.
MISSION:
The Mission was to foster innovation in the fast-emerging IT market and accelerate the
adoption of leading-edge technologies. Today, Tata Elxsi is recognized as a premium engineering
service provider worldwide and amongst the leaders in the automotive, media, broadcast,
communications, and healthcare industries.
OBJECTIVES:
The objective of Tata Elxsi is to help customers reimagine their products and services through
design thinking and the application of digital technologies such as IoT (Internet of
Things), Cloud, Mobility, Virtual Reality, and Artificial Intelligence.

Department of ISE, AMCEC, Bengaluru-083 6


IP MOBILE ANDROID 2022-2023

Chapter 4
COMPANY DIVISION
There and two blocks in this company maple block and cedar block. I was assigned with a cabin in
cedar block. In maple block IT department is present which gives materials to all employee. We
get materials like laptop, mouse, mobile for official use, head phones, welcome kit for new joiner
and more.
4.1 GROUND FLOOR:
In ground floor there is Organizing team is placed. This is a team of 50 employees working in it.
This team organizes competitions and employee engagement programs for the employees working
in the company.
4.2 FIRST FLOOR:
In first floor HR operation is placed. We can contact HR in this floor. There are subordinates for all
HR where HR staffs brings up conflict resolution, training and development, employee relations,
information resource, performance management, building culture and values
4.3 SECOND FLOOR:
Web developer are given place in second floor. Here the employee create and maintain websites.
They are also responsible for the site’s technical aspects, such as its performance and capacity.
4.4 THIRD FLOOR:
In third floor Android developers are working. Android developer discover the latest app
development tools, platform updates, training, and documentation for developers across every
android device.

Department of ISE, AMCEC, Bengaluru-083 7


IP MOBILE ANDROID 2022-2023

Chapter 5
ORGANIZATION STRUCTURE

It is the leading design and technology services providers across industries,


including Automotive, Broadcast and Media, Communications, Healthcare, and Transportation.
AUTOMOTIVE:
Automotive refers to any form of self-powered vehicle. With the world's rapid digitalization, the
automotive industry is in a massive transformation into the future. Tata Elxsi's services for
automotive engineering and design, along with products, and solution accelerators can help you keep up
with market expectations as they evolve and add value at every stage of your product development
lifecycle. Products and services provided in automotive are C.A.S.E (Connected, Autonomous, Shared
and Electric) vehicles, Passenger experience, Vehicle systems Engineering, TETHER, Automotive
software engineering, System testing and HILS/ATE design.
BROADCAST AND MEDIA:
The global broadcast and media technology market size will grow by USD 116 billion during the
forecast period of 2021-2026, growing at a CAGR of 42%.
Rapid audience shift from television to digital is expediting 'Entertainment on the Go' and the
demand for 'complete viewer experiences' across all devices. Broadcasters and operators are now
experimenting with technology alternatives such as OTT, connected devices, Automation, AI,
and Analytics to address consumers' changing requirements. Products and services in broadcast
and media are Consumer experience, distribution and delivery, ad monetization, TEPlay-
OTT/IPTV platform, Flacon Eye- test and automation, iCX- Intelligent Customer Experience.
COMMUNICATIONS:
The telecom industry has been transforming over the years, adapting to changes in the way people
live, work, learn. Operators are exploring new business models that foster a deeper understanding
of consumer behavior to develop services that attract and retain customers. Technologies like 5G
and mobile edge computing disrupt segments such as automotive, media, and healthcare. Tata
Elxsi offers services to operators, equipment manufacturers, and eco-system vendors to become
more resilient, stay relevant in the changing health, environmental, geopolitical situations
globally. Products and services in communications are Intelligent network operations, operation
transformation, network orchestration, SDWAN, SDN services, Android TV for operators, RDK.

Department of ISE, AMCEC, Bengaluru-083 8


IP MOBILE ANDROID 2022-2023

HEALTHCARE:
Enabling healthcare for today and tomorrow. As the healthcare industry evolves, medical
devices, pharmaceutical, and digital health companies shift their focus to care affordability,
accessibility, quality, and efficiency. Businesses are utilizing the latest technologies to lower the
cost of operations and improve process efficiencies. Secure connectivity, automation, and data
analytics will potentially increase patient value and decrease disease burden on society. Products
and services are Medical Device Design and Engineering, Digital Health Engineering, Medical
Device Regulatory Compliance, Pharmaceutical and Biotechnology Compliance.

TRANSPORTATION:
The transportation sector has, over the years, undergone a significant shift due to technological
advancements. A wave of new-age technologies is expanding the scope of the industry from just
a commuting market to a digitally ‘connected’ marketplace. Tata Elxsi, one such leading
engineering firm, uses cutting-edge technologies like IoT, AI, and design thinking to help
enterprises in the transportation industry become efficient and cut costs. The company has
recently developed KOIOS, a highly scalable and integrated platform that provides an end-to-end
solution for intelligent mobility services.

Department of ISE, AMCEC, Bengaluru-083 9


IP MOBILE ANDROID 2022-2023

Chapter 6
TASK PERFORMED

6.1 INTRODUCTION
In this report I have focused on experiences with the organization during the internship period. I was
put into a project in broadband and media. Working in this project gave me clear idea of how an
OTT streaming service works using android studio in different devices like mobile and android TV.
We created an OTT service named TEFLIX which works in android TV and mobile. It has modules
like movies, sports, games, apps, settings etc. We have subscription plans through which the users
pay to use this OTT service. It allows members to rent movies and also watch movies and TV shows
online with a computer, game console, smartphones, tablet or android TV.
This is an IP project that is Internal Project which is not submitted to the client. I was asked to write
JUnit test codes as a part of developer testing as the project was halfway done when I was into the
project. I was asked to write unit test code in JUnit version 4 and then convert that test code to JUnit
version 5.
OTT generally refers to the commercialized practice of streaming content on the world wide web.
OTT stands for “over-the-top” platforms, which provide a simple and exclusive way to enjoy
entertainment over the internet. Over-the-top (OTT) video viewers: Individuals who watch video via
any app or website that provides streaming video content and bypasses traditional distribution.
Examples include HBO Now, Hulu, Netflix, Amazon Video, YouTube/YouTube Red and Sling TV.
Android Studio provides a unified environment where you can build apps for Android phones,
tablets, Android Wear, Android TV, and Android Auto. Structured code modules allow you to
divide your project into units of functionality that you can independently build, test, and debug. Use
the Android Studio Layout Editor to create and preview your app's UI by dragging elements into a
visual designer, so you don't have to write XML by hand.
JUnit is a unit testing open-source framework for the Java programming language. Java Developers
use this framework to write and execute automated tests. In Java, there are test cases that have to be
re-executed every time a new code is added. I also started learning Mockito which was not
completed.

Department of ISE, AMCEC, Bengaluru-083 1


0
IP MOBILE ANDROID 2022-2023

6.2 ABOUT INTERNSHIP


As a part of my academic I joined Tata Elxsi as an intern for a period of a month from 29 august
2022 to 30 September 2022. I was assigned into an IP Mobile Android project. Where 70% of the
project was completed by the time I was assigned.
Working in this project gave me clear idea of how an OTT streaming service works using android
studio in different devices like mobile and android TV. We created an OTT service named TEFLIX
which works in android TV and mobile. It has modules like movies, sports, games, apps, settings
etc. We have subscription plans through which the users pay to use this OTT service. It allows
members to rent movies and also watch movies and TV shows online with a computer,
game console, smartphones, tablet or android TV.
This is an IP project that is Internal Project which is not submitted to the client. Project Managers
can be categorized as “internal” project managers, who deliver projects for stakeholders within their
own organizations
I was asked to write JUnit test codes as a part of developer testing as the project was halfway done
when I was into the project. I was asked to write unit test code in JUnit version 4 and then convert
that test code to JUnit version 5.
ANDROID STUDIO: Android Studio provides a unified environment where you can build apps
for Android phones, tablets, Android Wear, Android TV, and Android Auto. Structured code
modules allow you to divide your project into units of functionality that you can independently
build, test, and debug.
ANDROID STUDIO IMPLEMENTATION:
To install Android Studio on Windows, follow these steps:
 If you downloaded an .exe file (recommended), double-click to launch it.
 If you downloaded a .zip file:

1. Unpack the .zip.

2. Copy the android-studio folder into your Program Files folder.

3. Open the android-studio > bin folder.

4. Launch studio64.exe (for 64-bit machines) or studio.exe (for 32-bit machines).

5. Follow the Setup Wizard in Android Studio and install any recommended
SDK packages.

Department of ISE, AMCEC, Bengaluru-083 1


1
IP MOBILE ANDROID 2022-2023

First day we were welcomed with the company’s welcome kit and a small gathering of the team
colleagues. I was given an official laptop to work for the project assigned.
Initially I was along with IP TV ANDROID project team. This was a chance to learn about the
setup- box physical connection and the modules in IP TV ANDROID. They taught how to add,
remove, and update the movies and subscription plans from the backend. I got to learn about how a
set-up box works from backend and also adb commands.
ADB (Android Debug Bridge) is a versatile command-line tool that lets you communicate with the
device. The command facilitates a variety of device actions, such as installing and debugging apps.
ADB provides access to a Unix shell that you can use to run a variety of commands on a device. It is
a client-server program that includes three components: A client, which sends commands. A
daemon (adbd), which runs commands on a device. The daemon runs as a background process on
each device. A server, which manages communication between the client and the daemon. ADB is
an important tool for developers because it allows you to interact with Android emulators, and also
with connected devices.
IP TV ANDROID and IP MOBILE ANDROID is the same broadband and media OTT streaming
service name TEFLIX which works in two different devices like android TV and android mobile
respectively.
Days going by I was asked to do a course named Kotlin essential as in this project we used Kotlin
language to develop the OTT service.
Kotlin is a cross-platform, statistically typed, general-purpose high-level programming language
with type interface. This language is easy if we have knowledge on java. It is designed to
interoperate fully with java, and JVM version of kotlin’s standard library depends upon the java
class library, but inference allows its syntax to be more concise.
A recent study by Google represents that developers who adopt Kotlin are, on average, 50% more
likely to be satisfied with their programming language. Besides, currently, more than 70% of the top
1000 apps in the Google Play store include Kotlin code.
The Kotlin language allow you to focus on expressing your ideas and write less boilerplate
code. Kotlin’s strong type system helps prevent runtime issues, such as null pointer exceptions and
string format issues. In fact, Google has indicated that among the top 1000 apps on Google Play,
those
that use Kotlin have 20% fewer crashes per user than those that do not. Kotlin is 100% interoperable
with the Java programming language.

Department of ISE, AMCEC, Bengaluru-083 1


2
IP MOBILE ANDROID 2022-2023

Fig 6.1 Course Competion Certificate

In continuation learnt about the variables and it types in kotlin. Variables are containers for storing
data values. To create a variable, use var or val, and assign a value to it with the equal sign (=).
Syntax: var
variablename=value val
variablename=value
Example: var Name=’Abhi’
val age=38
when you give a command println(Name) and println(age) the values of name and age are given as
output.The value of the var can be declared when ever we want and can change according to our
convinience. But, the value of val can be declared only once and can’t change to our convinience
after declaring it. Unlike many other programming languages, variables in Kotlin do not need to be
declared with a specified type (like "String" for text or "Int" for numbers, if you are familiar with

Department of ISE, AMCEC, Bengaluru-083 1


3
IP MOBILE ANDROID 2022-2023

those).

Department of ISE, AMCEC, Bengaluru-083 1


4
IP MOBILE ANDROID 2022-2023

To create a variable in Kotlin that should store text and another that should store a number, look
at the following example: var Name=’Abhi’
val age=38
Kotlin is smart enough to understand that “Abhi” is a string (text), and that 38 is an int
(number) variable. A variable can have a short name (like x and y) or more descriptive names
(age, sum, totalVolume).
The general rules for Kotlin variables are:
->Names can contain letters, digits, underscores, and dollar signs
->Names should start with a letter
->Names can also begin with $ and _ (but we will not use it in this tutorial)
->Names are case sensitive ("myVar" and "myvar" are different variables)
->Names should start with a lowercase letter and it cannot contain whitespace
->Reserved words (like Kotlin keywords, such as var or string) cannot be used as names
In Kotlin, the type of a variable is decided by its value. Sometimes you have to specify the type,
and often you don't. Anyhow, it is good to know what the different types represent.
Data types are divided into different groups:
->Numbers
->Characters
->Booleans
->Strings
->Arrays
Number types are divided into two groups:
Integer types store whole numbers, positive or negative (such as 123 or -456), without decimals.
Valid types are Bytes, Shorts, Int and Long.
Floating point types represent numbers with a fractional part, containing one or more decimals.
There are two types: Float and Double.
The Boolean data type and can only take the values true or false. Boolean values are mostly used
for conditional testing.
The char data type is used to store a single character. A char value must be
surrounded by single quotes, like 'A' or 'c
The string data type is used to store a sequence of characters (text). String values must be
surrounded by double quotes.

Department of ISE, AMCEC, Bengaluru-083 1


5
IP MOBILE ANDROID 2022-2023

Arrays are used to store multiple values in a single variable, instead of declaring separate variables
for each value.
Type conversion is when you convert the value of one data type to another type. In Kotlin, numeric
type conversion is different from java.
To convert a numeric data type to another type, you must use one of the following functions: toInt
(), toByte (), toShort (), toFloat (), toBinary (), toDouble (), toChar ().
Further continued with collections. A collection usually contains a number of objects of the same
type and these objects in the collection are called elements or items. Kotlin Standard Library
provides a rich set of tools for managing collections.
In Kotlin collections are categories into two forms. They are:
->Immutable Collection
->Mutable Collection
Immutable collection means that it supports only read-only functionalities and cannot modify its
elements. Immutable Collections and their corresponding methods are List, Set and Map.

List – It is an ordered collection in which we can access elements or items by using indices – integer
numbers that define a position for each element. Elements can be repeated in a list any number of
times. We cannot perform add or remove operations in the immutable list.

Set – It is a collection of unordered elements also it does not support duplicate elements. It is a
collection of unique elements. Generally, the order of set elements does not have a significant
effect. We cannot perform add or remove operations because it is an immutable Set.

Map – Map keys are unique and hold only one value for each key, it is a set of key-value pairs.
Each key maps to exactly one value. The values can be duplicates but keys should be unique. Maps
are used to store logical connections between two objects, for example, a student ID and their name.
As it is immutable its size is fixed and its methods support read-only access.

Mutable collections support both read and write functionalities. Mutable collections and their
corresponding methods are List, Set and Map.

List -Since mutable list supports read and write operation, declared elements in the list can either
be removed or added.

Department of ISE, AMCEC, Bengaluru-083 1


6
IP MOBILE ANDROID 2022-2023

Set -The mutable Set supports both read and write functionality. We can access add or remove
elements from the collections easily and it will preserve the order of the elements.

Map – It is mutable so it supports functionalities like put, remove, clear, etc.

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. On Android, 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.

In continuation Android basics were taught to me. We use the Android Studio Layout Editor to
create and preview your app's UI by dragging elements into a visual designer, so you don't have to
write XML by hand. Android Studio provides a unified environment where you can build apps for
Android phones, tablets, Android Wear, Android TV, and Android Auto. Structured code modules
allow you to divide your project into units of functionality that you can independently build, test,
and debug.
There are Java, resource and manifest folder in android studio. Java folder contains all the java
source code. Resource folder (res) contains all the non-code resources, such as XML layouts,
UI strings, and bitmap images. In manifest folder we have to define the essential information about
the app to the android build tools, os and google play.
To build and create android applications we need activity, layout and launcher activity in android
manifest. Activity refers to the Screen. Launcher activity refers to the first screen which we see
when we press an app icon.
The Android lifecycle helps developers understand which states activities go through when a user
navigates through an app. As a result, we can do proper operations at the right time and avoid
crashes and other bugs. An Android application has a lifecycle. It crosses through various stages
from when a user opens and exits an application. An android activity goes through six major
lifecycles stages. These are onCreate (), onStart (), onResume (), onPause (), onStop (), and
onDestroy ().
The onCreate () callback is compulsory in all Android applications. It is the first method called
when we launch an activity from the home screen or intent. In other words, it is a default callback
that is automatically created when you create a new activity.
When an application is started, the system will invoke an onStart () method. This callback is
invoked to make the activity visible to the user.

Department of ISE, AMCEC, Bengaluru-083 1


7
IP MOBILE ANDROID 2022-2023

Once onStart () is called, onResume () is immediately invoked. Every component associated with
this activity is brought to the foreground state. The activity is now considered interactive.
The onPause () is called when the user switches to another activity or a multi-window mode
application. At this point, the activity has lost focus and is running in the background.
At this point, most of the activity processes have been stopped. However, the activity is still running
in the background. This life-cycle usually occurs after the onPause () method is executed due to the
user switching to other activities or pressing the home button. In such situations, it is used to release
heavy resources and stop intensive operations that are not required while the activity is invisible.
Since onPause () is brief, onStop () can be used to save data to other channels such as databases.
Since the activity’s states still exist, the onRestart () method can be called when the user restarts the
activity. This means the activity will go back to the main screen and the user can resume interacting
with its components.
This is the final callback that the activity will receive when it is stopped. The method is called when
there is a change in the configuration states such as screen rotation or language settings. The
Android system will destroy the activity, then recreate it with the set configurations.

Fig 6.2 Lifecycle Work Flow

Department of ISE, AMCEC, Bengaluru-083 1


8
IP MOBILE ANDROID 2022-2023

A layout defines the structure for a user interface in your app, such as in an activity. All elements in
the layout are built using a hierarchy of view and viewgroup objects. A view usually draws
something the user can see and interact with. Whereas a viewgroup is an invisible container that
defines the layout structure for view and other viewgroup objects

Fig 6.3 Illustration of a View Hierarchy

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 cannot live on their
own-
-they must be hosted by an activity or another fragment. The fragment’s view hierarchy becomes
part of, or attaches to, the host’s view hierarchy. Fragments introduce modularity and reusability
into your activity’s UI by allowing you to divide the UI into discrete chunks. Activities are an ideal
place to put global elements around your app's user interface, such as a navigation drawer.
Conversely, fragments are better suited to define and manage the UI of a single screen or portion of
a screen.
Android Architecture Components (AAC) is a new collection of libraries that contains the lifecycle-
aware components. It can solve problems with configuration changes, supports data persistence,
reduces boilerplate code, helps to prevent memory leaks and simplifies async data loading into your
UI. I can’t say that it brings absolutely new approaches for solving these issues, but, finally, we have
a formal, single and official directions.
Architecture components provides some abstractions to deal with Android lifecycle:
->lifecycle owner
->live data
->view model

Department of ISE, AMCEC, Bengaluru-083 1


9
IP MOBILE ANDROID 2022-2023

State Initialized Destroyed Created Started Resume


onCreate ()
onStart ()
onResume ()
Event
onPause ()
onStop ()
onDestroy ()
State Initialized Destroyed Created Started Resume
Fig 6.4 Architecture components

It's possible to write code that wins every performance test in the world, but still feels sluggish, hang
or freeze for significant periods, or take too long to process input. The worst thing that can happen
to your app's responsiveness is an "Application Not Responding" (ANR) dialog. In Android, the
system guards against applications that are insufficiently responsive for a period of time by
displaying a dialog that says your app has stopped responding. At this point, your app has been
unresponsive for a considerable period of time so the system offers the user an option to quit the
app. It's critical to design responsiveness into your application so the system never displays an ANR
dialog to the user.
Generally, the system displays an ANR if an application cannot respond to user input. For example,
if an application blocks on some I/O operation (frequently a network access) on the UI thread so the
system can't process incoming user input events. Or perhaps the app spends too much time building
an elaborate in-memory structure or computing the next move in a game on the UI thread. It's
always important to make sure these computations are efficient, but even the most efficient code
still takes time to run. Android applications normally run entirely on a single thread by default the
"UI thread" (or "main thread"). This means anything your application is doing in the UI thread that
takes a long time to complete can trigger the ANR dialog because your application is not giving
itself a chance to handle the input event or intent broadcasts.
The Espresso API encourages test authors to think in terms of what a user might do while
interacting with the application - locating UI elements and interacting with them. At the same time,
the framework prevents direct access to activities and views of the application because holding on to
these objects and operating on them off the UI thread is a major source of test flakiness. Thus, you
will not see methods like getView () and getCurrentActivity () in the Espresso API. You can still
safely operate on views by implementing your own subclasses of ViewAction and ViewAssertion.
Department of ISE, AMCEC, Bengaluru-083 2
0
IP MOBILE ANDROID 2022-2023

The main components of Espresso include the following:


->Espresso – Entry point to interactions with views (via onView () and onData ()). Also exposes
APIs that are not necessarily tied to any view, such as pressBack ().
-> ViewMatchers – A collection of objects that implement the Matcher<? super View> interface.
You can pass one or more of these to the onView () method to locate a view within the current view
hierarchy.
->ViewActions – A collection of ViewAction objects that can be passed to
the ViewInteraction.perform() method, such as click ().
->ViewAssertions – A collection of ViewAssertion objects that can be passed
the ViewInteraction.check () method. Most of the time, you will use the matches assertion, which
uses a View matcher to assert the state of the currently selected view.
Espresso (ViewMatchers)=ViewInteraction (ViewAssertion/ViewAction)

The MVVM architecture has Model, View and View-Model. MVVM architecture is a Model-View-
View-Model architecture that removes the tight coupling between each component. Most
importantly, in this architecture, the children don't have the direct reference to the parent, they only
have the reference by observables.
Model is responsible for featuring data from the database. It has repository, room and web service.
It stores the UI data. Create the app model. Also referred to as the data class. To avoid confusion,
create a package named model inside the java folder. Then, create a data class named Blog in the
model package. It represents the data and the business logic of the Android Application. It consists
of the business logic - local and remote data source, model classes, repository
View is whatever the user sees on the screen. It is the text or the activity that is visible and can
directly interact. The UI, therefore, needs to be well structured to minimize any confusion and
dissatisfaction. It consists of the UI Code (Activity, Fragment), XML. It sends the user action to the
ViewModel but does not get the response back directly. To get the response, it has to subscribe to
the observables which View-Model exposes to it.
View-Model is the intermediate between the View and Model. It is a bridge between the View and
Model (business logic). It does not have any clue which View has to use it as it does not have a
direct reference to the View. So basically, the ViewModel should not be aware of the view who is
interacting with. It interacts with the Model and exposes the observable that can be observed by the
View.

Department of ISE, AMCEC, Bengaluru-083 2


1
IP MOBILE ANDROID 2022-2023

API Source
Model
View ViewModel
(Domain) Shared Preference

Data Binding

Fig 6.5 MVVM architecture

For platform-specific source sets, the corresponding platform-specific variant of the library is used,
while a common standard library is added to the rest. The Kotlin Gradle plugin will select the
appropriate JVM standard library depending on the compiler Options.
Dependency injection (DI) is a technique widely used in programming and well suited to Android
development. By following the principles of DI, you lay the groundwork for good app architecture.
It is a design pattern in which an object or function receives other object or function that it depends
on. Implementing dependency injection provides you with the following advantages:
->Reusability of code
->Ease of refactoring
->Ease of testing
There are two major ways to do dependency injection in Android:
->Constructor Injection. This is the way described above. You pass the dependencies of a class to its
constructor.
->Field Injection (or Setter Injection). Certain Android framework classes such as activities and
fragments are instantiated by the system, so constructor injection is not possible. With field
injection, dependencies are instantiated after the class is created.
Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual
dependency injection in your project. Doing manual dependency injection requires you to construct
every class and its dependencies by hand, and to use containers to reuse and manage dependencies.
Hilt provides a standard way to use DI in your application by providing containers for every
Android class in your project and managing their lifecycles automatically. Hilt is built on top of the
popular DI library Dagger to benefit from the compile-time correctness, runtime performance,
scalability, and Android studio support that Dagger provides.

Department of ISE, AMCEC, Bengaluru-083 2


2
IP MOBILE ANDROID 2022-2023

Apps that handle non-trivial amounts of structured data can benefit greatly from persisting that data
locally. The most common use case is to cache relevant pieces of data so that when the device
cannot access the network, the user can still browse that content while they are offline.
Room database is a persistence library that provides an abstraction layer over the SQLite database
to allow a more robust database. With the help of room, we can easily create the database and
perform CRUD operations very easily.
The three main components of the room are Entity, Database, and DAO.
Entity is a modal class that is annotated with @Entity. This class is having variables that will be our
columns and the class is our table.
Database is an abstract class where we will be storing all our database entries which we can call
Entities.
The full form of DAO is a Database access object which is an interface class with the help of it we
can perform different operations in our database.
Benefits of room database:
->Compile-time verification of SQL queries.
->Convenience annotations that minimize repetitive and error-prone boilerplate code.
->Streamlined database migration paths.

Fig 6.6 Room database architecture

Department of ISE, AMCEC, Bengaluru-083 2


3
IP MOBILE ANDROID 2022-2023

I was asked to take a KT (Knowledge Transfer) session on MVVM. I also attended other KT
session on coroutines, android basics and room database conducted by others.
Also, there was competitions conducted between the internal projects. Demo of how our project
works was presented to the higher official.
In the last week I was asked to learn about JUnit4 and write developer testing code which was
converted to JUnit5 version later. Unit testing is trying and testing a specific unit (Specific
boundary). Unit can be a single method, or a group of methods or a set of groups of classes. Once I
write unit test cases I will be able to run unit test automatically within milliseconds and check
whether all conditions for that particular method passing or not / Or we can say To Ensure a
function does what it is supposed to do
JUnit is a unit testing open-source framework for the Java programming language. Java Developers
use this framework to write and execute automated tests. In Java, there are test cases that have to be
re-executed every time a new code is added. Unit has been important in the development of test-
driven development, and is one of a family of unit testing frameworks which is collectively
known as XUnit that originated with SUnit.

Fig 6.7 Example JUnit test cases

Department of ISE, AMCEC, Bengaluru-083 2


4
IP MOBILE ANDROID 2022-2023

Fig 6.8 Data classes


I achieved around 71% by writing JUnit test code for the data classes. The data classes which I
wrote the JUnit test cases are account_remote, continue_watch_remote,
device_management_remote, dictionary_remote, episodes_remote, fcm_backend_remote,
login_remote, logo_remote, etc…

Department of ISE, AMCEC, Bengaluru-083 2


5
IP MOBILE ANDROID 2022-2023

Chapter 7
WORK SCHEDULED

7.1 WEEK N0.1

DATE NAME OF THE TOPIC/ MODULE COMPLETED

29/08/2022  Introduction to IP TV Android.

30/08/2022  Variables and its type and data types.

31/08/2022  Collections and converting the data types.

01/09/2022  Coroutines and Suspended functions.

02/09/2022  KT session on coroutines.


Table 7.1 Overview of first week activity

7.2 WEEK NO.2

DATE NAME OF THE TOPIC/ MODULE COMPLETED

05/09/2022  Android basics.

06/09/2022  Life cycle and layout in android.

07/09/2022  Fragments in android.

08/09/2022  Kotlin Essential course.

09/09/2022  KT session on android basics


Table 7.2 Overview of second week activity

Department of ISE, AMCEC, Bengaluru-083 2


6
IP MOBILE ANDROID 2022-2023

7.3 WEEK NO.3

DATA NAME OF THE TOPIC/ MODULE COMPLETED

12/09/2022  Android Architecture Components.

13/09/2022  ANR in android.

14/09/2022  Espresso.

15/09/2022  MVVM architecture.

16/09/2022  KT session on MVVM


Table 7.3 Overview of third week activity

7.4 WEEK NO.4

DATA NAME OF THE TOPIC/ MODULE COMPLETED

19/09/2022  Demo for competition of internal projects

20/09/2022  Room Database.

21/09/2022  Dependency, dependency injection and HILT dependency.

22/09/2022  Generating SSH key to access the project code.

23/09/2022  KT session on Room database.


Table 7.4 Overview of fourth week activity

Department of ISE, AMCEC, Bengaluru-083 2


7
IP MOBILE ANDROID 2022-2023

7.5 WEEK NO.5

DATA NAME OF THE TOPIC/ MODULE COMPLETED

26/09/2022  Introduction for JUnit testing.

27/09/2022  Writing Junit test cases for 6 data classes.

28/09/2022  Writing Junit test cases for 6 data classes.

29/09/2022  Writing Junit test cases for 5 data classes.

30/09/2022  Converting JUnit4 test cases to JUnit5 test cases and merge with the
project code.
Table 7.5 Overview of fifth week activity

Department of ISE, AMCEC, Bengaluru-083 2


8
IP MOBILE ANDROID 2022-2023

Chapter 8

CONCLUSION

In an internship period of a month I have gained a lot of experience and knowledge technically and
personally. I have explained precisely, briefly and clearly about the internship experience and
knowledge gained for a month.

We created an OTT service named TEFLIX which works in android TV and mobile. It has modules
like movies, sports, games, apps, settings etc. We have subscription plans through which the users
pay to use this OTT service. It allows members to rent movies and also watch movies and TV shows
online with a computer, game console, smartphones, tablet or android TV.
TEflix was the app created by my team which works in android mobile. Working in this project
gave me clear idea of how an OTT streaming service works using android studio in different devices
like mobile and android TV.

Department of ISE, AMCEC, Bengaluru-083 2


9
IP MOBILE ANDROID 2022-2023

REFERNCES

1. Model View and ViewModel


https://developer.android.com/topic/libraries/architecture/viewmodel
2. JUnit testing
https://www.developer.com/database/exploring-java-unit-testing-with-the-junit-test-
framework/
3. Room Database
https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase
4. Kotlin essentials
https://developer.android.com/kotlin
5. Espresso
https://developer.android.com/training/testing/espresso
6. Android Architecture components.
https://developer.android.com/topic/architecture
7. Android basics
https://developer.android.com/kotlin/androidbasics

Department of ISE, AMCEC, Bengaluru-083 3


0
IP MOBILE ANDROID 2022-2023

APPENDIX-PHOTO GALLERY

In park after lunch

Group picture after the demo

Department of ISE, AMCEC, Bengaluru-083 3


1

You might also like