INDUSTRY INTERNSHIP
SUMMARY REPORT
GOOGLE AICTE Virtual Internships Program 2024
VIRTUAL INTERNSHIP PROGRAM IN ANDROID DEVELOPER
Submitted in partial fulfillment of the
requirement for the award of the degree of
Bachelor of Technology in Computer Science
Under The Supervision of
Name of Supervisor:
Designation
Submitted By
Siddharth Singh - 22SCSE1010891
SCHOOL OF COMPUTER SCIENCE AND
TECHNOLOGY
GALGOTIAS UNIVERSITY, GREATER NOIDA
CERTIFICATE
CERTIFICATE
I hereby certify that the work which is being presented in the Internship project
report entitled "GOOGLE AICTE Virtual Internship Program 2024 - VIRTUAL
INTERNSHIP PROGRAM IN ANDROID DEVELOPER" is in partial fulfilment of
the requirements for the award of the degree of Bachelor of Technology in Computer
Science Galgotias University, Greater Noida, is an authentic record of my work
carriedout in the industry.
To the best of my knowledge, the matter embodied in the project report has not been
submitted to any other University/Institute for the award of any Degree.
Siddharth Singh (22SCSE1010891)
This is to certify that the above statement made by the candidate is correct and true
to the best of my knowledge.
Signature of Internships Signature of Dean (SCSE)
TABLE OF CONTENTS
CHAPTER TITLE PAGE NO
Abstract
1. Introduction
1.1 Objective of The Internship
1.2 Problem Statement and Research Objectives
1.3 Description of Domain
1.4 A Brief Introduction about an Organization
2. Technical Description
3. Modules Leaning
4. System implementation
5. Conclusion and Future Work
6. Appendices
6.1 Learning Experiences
6.2 SWOT Analysis
7. References
Abstract
VERTUAL INTERNSHIP PROGRAM IN ANDROID DEVELOPMENT
This internship is provided by AICTE, GOOGLE ANDROID, and Ed-create. The
main objective of this internship is to provide the students with the knowledge and
skills in the Android app development domain. This internship provides two online
courses at Google Developer. The name of the courses is India Internship Google
android developer. These courses mainly focus on the different types of services
provided by GOOGLE and teaches basics terminology and implementation of those
different services. For example, ANDROID APP.
It has eight modules in the android essentials course and two modules in the
Introduction to android course. Each module focuses on different types of
technologies in the domain and services provided by google to implement that. Each
module has explanatory text slides that explain the concept and then we have a
summary of what we have learned from those slides.
Each summary contains a short brief that we have learned at the end of the module.
The Android development course mainly focuses on that how we understand key
terms and concepts in Android and Analyse new tools and risks within context of
the android.
An internship in Android development at Google would likely involve working on
real-world projects related to the Android operating system or other mobile
technologies. Here are some aspects you might expect.
CHAPTERS 1
INTRODUCTION
1.1 Objective of the Internship: -
The main objective of this internship is to provide the students with the knowledge
and skills in the domain of Android developers and about studios tools.
The main objective of this internship (VIRTUAL INTERNSHIP PROGRAM IN
ANDROID DEVELOPER)
The main objectives of a virtual internship program in Android development are
likely to align with providing interns with practical experience, exposure to real-
world projects, and the opportunity to enhance their skills in Android app
development. While specific objectives can vary, here are some common goals for
such programs.
Hands-On Experience: The internship aims to provide interns with hands- on
experience in developing Android applications. This involves working on actual
projects, writing code, and gaining practical skills that are valuable in a professional
setting.
Skill Development: The program typically focuses on enhancing the technical skills
of interns in Android development. This includes proficiency in programming
languages such as Java or Kotlin, understanding the Android framework, and
learning about best practices in mobile app development.
Project Contribution: Interns may be assigned specific tasks or features within
ongoing projects. The goal is to contribute to the development of real-world
applications, providing a sense of accomplishment and a tangible addition to their
portfolio.
1.2 Problem Statement and Research Objectives: -
During the internship we got a project with the problem statement stating "Design
Secure network for your institution - Select your college or a building of your college
and study the network topology of the same and design the same using on packet
tracer tool (Please don't configure just design the network). Once done, apply your
learnings of Neta cad cyber security course to upgrade / secure the existing network
of your college" and we had to create this with the help of Cisco Packet Tracer by
applying the knowledge we gained from the course Introduction to packet tracer.
1.2 Description of Domain: -
ANDROID DEVELOPMENT: -
The domain of Android development involves creating applications (apps) that run
on the Android operating system, which is primarily used in mobile devices such as
smartphones and tablets. Android development is a specialized field within software
development that focuses on building applications using the Android platform,
typically using programming languages like Java or Kotlin.
Here is a breakdown of key aspects within the domain of Android development:
1. Android Operating System:
Android is an open-source operating system developed by Google for
mobile devices.
Android provides a rich set of features and libraries that developers can
leverage to create diverse applications.
2. Programming Languages:
Java and Kotlin are the primary programming languages used for
Android app development.
Kotlin, introduced by JetBrains, is gaining popularity as an official
language for Android development due to its concise syntax and
modern features.
3. Integrated Development Environment (IDE):
Android Studio is the official IDE for Android development. It provides
tools for designing, coding, testing, and debugging Android
applications.
Android Studio supports both Java and Kotlin, offering a
comprehensive environment for building and testing Android apps.
4. User Interface (UI) Design:
Android apps have a diverse range of user interfaces, from simple to
complex.
XML is commonly used for designing layouts in Android, and
developers can use the Android Studio's visual editor to create and
customize UI elements.
5. Application Components:
Android applications are composed of various components, including
activities, services, broadcast receivers, and content providers.
Activities represent the UI and user interactions, services handle
background processes, broadcast receivers respond to system-wide
events, and content providers manage data access.
6. Application Lifecycle:
Understanding the Android app lifecycle is crucial for managing
resources efficiently.
Activities go through different states (e.g., on Create, on Resume, on
Pause) based on user interactions and system events.
7. Data Storage:
Android apps often need to store and retrieve data. This can be done
using various mechanisms, such as SQLite databases, Shared
Preferences, or external storage options.
8. Networking:
Android apps commonly interact with remote servers to fetch or send
data.
APIs, HTTP requests, and libraries like Retrofit are used for networking
in Android development.
9. Testing and Debugging:
Android Studio provides tools for testing and debugging, including
emulators for testing on virtual devices and real devices.
Unit testing and instrumentation testing are commonly used in Android
development.
10. Security and Permissions:
Android apps need to adhere to security best practices.
Permissions are used to control access to sensitive device features, and
developers need to consider security aspects in areas like data storage
and network communication.
11. Publishing to Google Play:
Once an app is developed, it can be published on the Google Play Store
for distribution to users.
Developers need to adhere to guidelines, create appealing app listings,
and manage updates through the store.
All of these roles can be part of the our work in the exciting system , ever-
changing high-demand of android applications.
1.3 A Brief Introduction about an Organization: -
All India Council for Technical Education (AICTE):
AICTE is a national-level apex advisory and regulatory body for technical education
in India. It operates under the Department of Higher Education, Ministry of
Education, Government of India. AICTE is responsible for planning and
coordinating technical education and management education in the country. It plays
a crucial role in formulating and implementing policies to ensure the quality and
relevance of technical education.
Google:
Google is a multinational technology company that specializes in internet-related
services and products. It is renowned for its search engine but has expanded its
portfolio to include a wide range of products and services, including Android, one
of the most widely used mobile operating systems in the world. Google is known for
its innovative approach to technology, and it actively supports educational initiatives
and programs to promote skill development in various fields, including software
development.
Google Android Development Internship (AICTE):
If there is a collaboration between AICTE and Google for an Android development
internship, it would likely be designed to provide students with practical experience
in Android app development. Here's what such an internship might involve:
Objective: The internship program would likely aim to enhance the skills of
participants in Android development, preparing them for careers in software
development.
Curriculum: The curriculum may cover various aspects of Android development,
including programming languages (Java or Kotlin), Android Studio IDE, user
interface design, application components, data storage, networking, and best
practices in app development.
Mentorship: Interns may have the opportunity to work closely with experienced
mentors from Google or other partnering organizations, providing guidance and
support throughout the internship.
Projects: Interns might work on real-world projects or contribute to ongoing
development efforts, gaining hands-on experience in building Android applications.
Learning Resources: The program may provide access to learning resources,
workshops, and training sessions to help interns develop a strong foundation in
Android development.
For the most accurate and up-to-date information on this specific internship program,
I recommend checking the official websites of AICTE and Google or contacting the
relevant authorities at AICTE for details on any collaboration and internship
opportunities. Additionally, students interested in this program may inquire with
their educational institutions for guidance on application processes and eligibility
criteria.
CHAPTERS 2
Technical Description
A technical description of Android app development involves understanding the
various components, tools, and processes involved in creating applications for the
Android platform. Here's a detailed technical overview:
1. Development Environment:
IDE (Integrated Development Environment): Android Studio is the
official IDE for Android development. It provides a comprehensive
set of tools for designing, coding, testing, and debugging Android
applications.
2. Programming Languages:
Java: Traditionally, Java has been the primary language for Android
development.
Kotlin: Kotlin is a modern programming language that is now
officially supported by Google for Android development. It offers
concise syntax and additional features compared to Java.
3. User Interface (UI) Design:
XML: Android apps use XML for designing layouts. The visual editor
in Android Studio allows developers to create and customize UI
elements.
4. Application Components:
Activities: Represent individual screens in an Android app.
Services: Handle background processes independently of UI.
Broadcast Receivers: Respond to system-wide broadcast
announcements.
Content Providers: Manage shared sets of app data.
5. Android Manifest:
The AndroidManifest.xml file contains essential information about the
app, such as app components, permissions, and hardware
requirements.
6. UI Components:
Android apps use a variety of UI components, including buttons, text
fields, images, lists, and more.
These components are defined in XML layout files and can be
manipulated programmatically.
7. Activities and Fragments:
Activities represent screens with a user interface, while fragments are
modular components within activities.
Fragment usage allows for more modular and reusable UI
components.
8. Intents:
Intents are a messaging system that enables communication between
components.
They are used to start activities, services, and broadcast receivers.
9. Data Storage:
SQLite Database: Android includes a built-in SQLite database for
local data storage.
shared Preferences: Lightweight data storage for key-value pairs.
File Storage: Apps can also store data in files on internal or external
storage.
10. Networking:
Android apps often need to communicate with servers to fetch or send
data.
APIs and libraries such as Retrofit are commonly used for networking
tasks.
11. App Lifecycle:
Understanding the Android app lifecycle is crucial for managing
resources efficiently.
Activities go through various states (e.g., on Create, on Resume, on
Pause) based on user interactions and system events.
12. Debugging and Testing:
Android Studio provides tools for debugging, including emulators for
testing on virtual devices and real devices.
Unit testing and instrumentation testing are commonly used for testing
Android apps.
13. Version Control:
Version control systems like Git are often used to manage source code
changes and collaborate with other developers.
14. Publishing to Google Play:
Once the app is developed and tested, it can be published on the
Google Play Store.
The app's listing includes descriptions, screenshots, and other
metadata.
This technical overview provides a glimpse into the multifaceted process of
Android app development. Developers need to have a strong understanding of
these components and tools to create robust and effective Android applications.
CHAPTER 3
Modules Leaning
Unit 1: Your first Android app
Learn programming basics and create your first Android app.
Write simple Kotlin programs that display text output.
Download and install Android Studio.
Build an Android app with a simple user interface that displays text and
images.
Run the app on a device or emulator.
Unit 2: Building app UI
Continue learning the fundamentals of Kotlin and start building more interactive
apps.
Use conditionals, function types, classes, and lambda expressions in Kotlin.
Understand how composition and recompositing works.
Add a button to an app UI and respond to user taps.
Create an app that works with data entered by the user.
Learn how to use state to display data and reflect the changes automatically
when the data gets updated.
Write unit tests to test isolated functions.
Unit 3: Display lists and use Material Design
Build apps that display a list of data and learn how to make your apps more
beautiful with Material Design.
Use data classes, functions, and collections in Kotlin.
Create a scrollable list in an app that displays both text and images.
Add click listeners to interact with list items.
Add an app bar to the app and modify the app theme.
Use Material Design to build modern and intuitive user interfaces, using
colours, shapes and typography.
Unit 4: Navigation and app architecture
Learn the best practices of app architecture to build more complex apps. Enhance
your users' ability to navigate across, into and back out from the various screens
within your app for a consistent and predictable user experience.
Explain activities and their lifecycles.
Understand Modern Android architecture.
Use State Flow and UDF pattern to work with state and events.
Add a View Model to save data and state.
Set up and use the Navigation component with Compose.
Understand what responsive UI is.
Use window class sizes to build for different screen sizes.
Add a navigation drawer to an app.
Unit 5: Connect to the internet
Use Kotlin coroutines to perform multiple tasks at once, and learn about HTTP and
REST to get data from the internet using Retrofit. Then use the Coil library to
display images in your app.
Describe the basics of concurrency and how to use coroutines in an Android
app.
Define and understand the data layer in Modern Android app architecture.
Implement a repository to centralize data access.
Use Retrofit to retrieve data from a remote server.
Load and display images using the Coil library.
Implement dependency injection to decouple the classes, making it easier to
test, maintain, and scale the app.
Unit 6: Data persistence
Learn how to store data locally on the device and keep your apps working through
any network disruptions for a smooth and consistent user experience.
Learn the basics of SQL to insert, update, and delete data from a SQLite
database.
Use the Room library to add a database to an Android app.
Use Database Inspector to test and debug database issues.
Use Preference Datastore to store user preferences.
Unit 7: Work Manager
Use Android Jetpack's Work Manager API to schedule necessary background
work, such as data backups or fresh content downloads, that keeps running even if
the app exits or the device restarts.
Define long running tasks that need to run in background work.
Add Work Manager to an Android app.
Create a Worker object and enqueue work.
Create constraints on Work Requests.
Use the Background Task Inspector to inspect and debug Work Manager.
Unit 8: Views and compose
Learn how to use Compose and the older UI toolkit based on Views side-by-
side in the same app. In this unit, you will learn interoperability APIs and best
practices to add a new feature to an existing app in Views, use an existing
library that uses Views, or use a UI component that is not yet available in
Compose.
Understand the View-based UI toolkit and build app UI using XML.
Add a composable in an app built with Views.
Add Navigation component to the app and use it to navigate between
fragments.
Use Android View to display views.
Add existing View-based UI components in a Compose app.
CHAPTER 4
System Implementation
Problem Statement:
This project is to create a Calculator application with a user-friendly interface and
functionality to perform basic mathematical operations like addition, subtraction,
multiplication, and division. It aims to simplify arithmetic computations by introducing a
clean, interactive interface that is accessible to everyone.
DESIGN OF PROJECT
4.1 LIST OF MODULES
4.1.1 MODEL
The model in the calculator application is responsible for storing the logic and performing
mathematical operations. The module includes functions for each basic operation:
Addition: Handles the sum of two or more numbers.
Subtraction: Computes the difference between two numbers.
Multiplication: Processes the product of two or more values.
Division: Calculates the quotient and validates non-zero divisors.
The model is designed to encapsulate all the arithmetic functions separately, ensuring that
any changes to operations are isolated without affecting the user interface
4.1.2 DATA
The data module includes components for handling user inputs and storing intermediate
calculation results:
Input Module: Processes numeric inputs and operations from the user interface (buttons).
Validation Module: Ensures inputs are valid numbers and operations adhere to
mathematical rules (e.g., preventing division by zero).
Result Module: Temporarily stores results for chain calculations (e.g., 5 + 3 * 2).
The system handles each calculation step methodically, ensuring accuracy and logical flow,
while efficiently passing results back to the user.
4.1.3 UTILS
The utils module contains helper functions and configurations essential for the calculator:
UI Logic: Maps button clicks to their respective arithmetic operations and ensures dynamic
updates to the result display.
State Management: Keeps track of the current operation, operands, and ongoing calculations
to enable seamless functionality.
These utility functions streamline operations and enhance the overall user experience with
smooth and responsive performance.
SCREENSHOT: -
Figure 1
Figure 2
CHAPTER 5
Future Scope & Conclusion
With the growing reliance on digital tools for daily tasks, calculators remain an indispensable
utility. This application can be enhanced to include scientific features such as trigonometric
and logarithmic functions, matrix operations, and graph plotting. Voice-enabled calculations
and multilingual support can also make the app more accessible. Furthermore, integrating a
dark mode or customizable themes will improve the user experience. Cross-platform
compatibility (iOS, Android, and web) could extend its reach, making it a valuable tool for
students, professionals, and casual users alike.
Conclusion:
The Calculator Application successfully fulfills its goal of providing a simple and effective
solution for basic mathematical operations, including addition, subtraction, multiplication,
and division. It features an intuitive user interface and ensures accurate results for the user.
By focusing on usability and performance, this project demonstrates the potential for further
development to cater to broader needs. With future enhancements, it can become a
comprehensive tool for complex mathematical tasks and beyond.
Appendices
6.1 Learning Experiences:
User-Friendly UI Design:
Created an intuitive interface with easy-to-navigate buttons for numbers and operations.
Efficient Input Handling:
Implemented functions for reliable data input and smooth response to user interactions.
Error Handling Mechanisms:
Incorporated features to manage invalid inputs, such as division by zero, ensuring robust
performance.
Logical Operations:
Built and tested mathematical functions for accurate and efficient calculations.
Code Optimization:
Gained experience in structuring modular code for scalability and future updates.
Debugging and Testing:
Learned to use debugging tools to resolve issues, ensuring reliable operation and user
satisfaction.
6.2 SWOT Analysis
Strengths:
Accurate Results: Provides reliable and precise calculations.
Intuitive Interface: Easy to use for both novice and experienced users.
Compact Design: Minimal resources required, ensuring smooth performance on low-end
devices.
Customizability: Features like theme options and layout changes enhance user engagement.
Weaknesses:
Limited Features: Currently supports only basic operations.
Platform Restriction: Lacks cross-platform support for iOS and web.
No Memory Functionality: Cannot save results for future reference in the current version.
Opportunities:
Advanced Features: Add scientific calculations, graphing tools, and unit conversions.
Accessibility Enhancements: Introduce voice-enabled input and multilingual support.
Cross-Platform Expansion: Develop versions for iOS and web platforms.
Personalization Options: Include user profiles and custom themes.
Threats:
Market Competition: Numerous free and feature-rich calculator apps dominate the market.
User Retention: Continuous improvements are required to stay relevant and retain users.
Rapid Tech Changes: New technologies may outpace existing solutions if not updated
regularly.
Negative Feedback: Early bugs or issues may affect app reputation.
REFERENCES
https://g.dev/SiddharthSingh_gu