An InternshipReport
On
Google Android Developer Virtual Internship
Submitted in accordance with the requirement for the degree of
BACHELOR OFTECHNOLOGY
ECE (Electronics and Communication Engineering)
Under the Esteemed Guidance of
Dr.K . RAJKAMAL, [Link]., Ph.D
[Link]
Submitted by
DEPANGI PRASANNA KUMAR
Regdno : 208X1A0416
Departmentof ECE-(Electronics and Communication
Engineering)
KALLAM HARANADHAREDDY INSTITUTE OF
TECHNOLOGY
(AUTONOMOUS) Approved by (AICTE, NewDelhi; Permanently
Affiliated to JNTU, KAKINADA) Accredited by NAAC with an
‘A’Grade NH – 16, Chowdavaram, Guntur – 522019 (A.P)
AY:2024-2025
PROGRAM BOOK FOR SUMMER INTERNSHIP-2
Name of the Student: DEPANGI PRASANNA KUMAR
Name of the College: KALLAM HARANADHAREDDY INSTITUTE OF
TECHNOLOGY
Registration Number: 208X1A0416
Period of Internship: 10 WEEKS APRIL 2024 – JUNE 2024
Name &Address of the Internship Organization: INDIA EDU PROGRAM
Student’s Declaration
I, DEPANGI PRASANNA KUMAR a student of III/IV [Link] Program, Reg. No.
208X1A0416 of the Department of ECE -
(ELECTRONICS AND COMMUNICATION ENGINEERING), Kallam Haranadha Reddy
Institute of
Technology do hereby declare that I have completed the mandatory internship virtually from
APRIL 2024
TO JUNE 2024 in GOOGLE ANDROID DEVELOPER VIRTUAL INTERNSHIP
under the
Faculty Guideship of [Link], Associate Professor, Department of ECE
(ELECTRONICS AND COMMUNICATION ENGINEERING), Kallam Haranadha Reddy
Institute of Technology.
(Signature and Date)
Faculty Guide External Examiner
Head of the Department Principal
INTERNSHIP COMPLETION CERTIFICATE
ACKNOWLEDGEMENT
We profoundly express our gratitude and respect towards our honourable chairman SRI
KALLAM MOHAN REDDY, Chairman of KHIT for his precious support in the
college.
We sincerely express our deepest gratitude to dynamic director of our institute Dr. M.
UMA SHANKARA [Link]., Ph.D. Director of KHIT for his valuable guidance.
We owe our sincere gratitude to Dr. B. S. B. REDDY [Link]., Ph.D., Principal of KHIT for
providing a great support and for giving us the opportunityof doing the Internship.
Our deepest thanks to [Link] Suryanarayana M.E..Phd. Head of the Department,
ECE
(Electronics And Communication ) resources needed for our internship.
It is with immense pleasure that we would like to express our indebted gratitude to our
internship coordinator [Link], [Link]., Ph.D., Associate. professor,
Department of ECE - (Electronics
And Communication),KHITwho has guided us a lot and encouraged us in every step of
the intern project work, hi
I would also like to thank the Directors of Edu Skill and India Edu Program for giving me
the opportunity to do an internship within your organization. I would like to thank our
internship mentor Mr. Gadhiraju,
Edu Skill consultant and our mentors who has guided us a lot and encouraged us in every
step of the intern project work.
Finally, we would like to thank our parents and friends for being supportive all the time, and
we are very much obliged to them.
CONTENTS
[Link]. TITLE Page No.
1 CHAPTER 1: Your First Android App 07-08
2 CHAPTER 2: Building App UI 09-10
3 CHAPTER 3: Display Lists And Use Material Design 11-15
4 CHAPTER 4: Navigation And App Architecture 16-17
5 CHAPTER 5: Connect To The Internet 18-20
6 CHAPTER 6: Data Persistence 21-22
7 CHAPTER 7: Work Manager 23-24
8 CHAPTER 8 : Views And Compose 25
9 SELF EVALUATION 27
CHAPTER1: Your First Android App
Learning Objectives:
1. Learn programming basics and create your first Android app.
2. Write simple Kotlin programs that display text output.
3. Download and install Android Studio.
4. Build an Android app with a simple user interface that displays text and images.
5. Run the app on a device or emulator.
Introduction to Kotlin
Pathway 1| Duration: 3 hours
Learn introductory programming concepts in Kotlin.
Setup Android Studio
Pathway 2 | Duration: 4 hours!-
Install and set up Android Studio, create your first project, and run it on a device or emulator.
Build a basic layout
Pathway 3 | Duration
Build an Android app with a simple user interface that displays text and images
7
Learning Outcomes:
[Link] Programming Basics
Kotlin Fundamentals: Gain a solid understanding of Kotlin, the primary programming language for Android
development. This includes writing simple programs, creating variables, and using functions
.
Object-Oriented Concepts: Familiarize yourself with object-oriented programming principles such as class
inheritance, which are crucial for structuring your app code effectively.
2. Setting Up Development Environment
Android Studio Installation: Learn how to download and install Android Studio, the integrated development
environment (IDE) used for Android app development. Understand the system requirements and how to configure
the IDE for your projects.
Emulator Usage: Get accustomed to using Android emulators to test your applications on various virtual devices.
3. Building Your First App
Creating a Simple App: Follow guided steps to create a basic "Hello World" application. This involves using project
templates in Android Studio and understanding the structure of an Android project.
User Interface Design: Learn how to design user interfaces using Jetpack Compose or XML layouts. This includes
adding buttons, text fields, and images to enhance user interaction.
4. Running and Testing the App
Execution on Devices: Understand how to run your app on both physical devices and emulators, ensuring that you
can test functionality across different environments.
Debugging Skills: Develop basic debugging skills to troubleshoot issues within your application during the testing
phase.
[Link] FeaturesInteractivity:
Implement interactive elements such as buttons that respond to user clicks and manage state changes within the app.
Data Handling: Learn how to manage data within your app, possibly integrating features like saving preferences or
handling user input effectively.
8
CHAPTER2: BUILDING APP UI
Continue learning the fundamentals of Kotlin, and start building more interactive apps.
A. Use conditionals, function types, classes, and lambda expressions in Kotlin.
B. Understand how composition and recomposition works.
C. Add a button to an app Ul and respond to user taps.
D. Create an app that works with data entered by the user.
E. Learn how to use state to display data and reflect the changes automatically when the data gets updated.
F. Write unit tests to test isolated functions.
What Is GOOGLE ANDROID DEVELOPER?
An Android Developer is a specialized software engineer focused on creating applications for devices
that run the Android operating system. This role involves a range of responsibilities, skills, and tools
essential for developing functional and user-friendly mobile applications.
Key Responsibilities :
I. Application Development: Design, build, and maintain Android applications using programming
languages such as Java and Kotlin.
II. User Interface Design: Implement user interfaces following Google's Material Design guidelines to
ensure an intuitive user experience.
III. Testing and Debugging: Conduct thorough testing to identify and fix bugs, ensuring the app operates
smoothly across various Android devices.
IV. Collaboration: Work closely with product teams, UX designers, and other developers to define app
features and enhancements.
V. Integration: Utilize APIs to connect apps with external data sources and services.
9
Essential Skills:
I. Programming Languages: Proficiency in Java and Kotlin is crucial, along with familiarity with XML
for layout design.
II. Android SDK Knowledge: A strong understanding of the Android Software Development Kit (SDK)
is necessary for effective app development.
III. Development Tools: Experience with Android Studio, the official IDE for Android development, and
tools like Git for version control.
IV. Problem-Solving: Ability to troubleshoot issues and optimize application performance.
Educational Background
Typically, an Android Developer holds a bachelor’s degree in Computer Science, Software Engineering, or a
related field. Practical experience through internships or projects is also highly beneficial.
Career Prospects
Android Developers can pursue various roles including:
Senior Android Developer
Mobile Application Developer
Android UI/UX Designer
Android Game Developer
With the growing demand for mobile applications, skilled Android Developers are increasingly sought after
in the tech industry
VISSION MISSION OF GOOGLE ANDROID DEVELOPER :
Vision :
▪ Universal Accessibility: Making applications that cater to diverse user needs and preferences.
▪ Integration of AI: Leveraging artificial intelligence to improve app functionality and user experience,
allowing developers to focus on creativity rather than routine tasks.
Mission:
The mission of Google Android Developers involves several key objectives:
▪ Empowering Developers: Providing tools, resources, and support to help developers create high-quality
applications efficiently. This includes utilizing the Android SDK, Android Studio, and adhering to best
practices like Material Design.
▪ Enhancing User Experience: Ensuring that applications are not only functional but also engaging and
easy to use across all Android devices, including smartphones, tablets, wearables, and automotive
systems.
10
▪ Fostering Innovation: Encouraging developers to explore new technologies and frameworks that can
lead to groundbreaking applications.
▪ By focusing on these aspects, Google aims to maintain Android as the leading mobile operating system
while supporting a vibrant ecosystem of developers who contribute to its growth and evolution.
Objectives of Google Android Developer
1. Application Development:
Design and Build: Develop functional and aesthetically pleasing Android applications that meet user needs and
preferences.
Feature Implementation: Create new features while maintaining existing functionalities to enhance user
engagement and satisfaction.
2. User Experience Optimization:
Adhere to Guidelines: Follow Google's Material Design principles to ensure a consistent and intuitive user
interface across all applications.
Testing for Usability: Conduct thorough testing to identify usability issues, ensuring that applications are
efficient and user-friendly.
3. Collaboration and Communication:
Team Collaboration: Work closely with cross-functional teams, including designers and product managers, to
align app development with overall project goals.
Feedback Integration: Actively incorporate feedback from users and team members to continuously improve
app performance and features.
4. Troubleshooting and Maintenance:
Bug Fixing: Identify and resolve bugs in existing applications to ensure reliability and performance.
Ongoing Maintenance: Regularly update applications to keep them compatible with the latest Android versions
and technologies.
5. Continuous Learning and Adaptation:
Stay Updated: Keep abreast of the latest trends in mobile technology, tools, and best practices in Android
development.
Skill Development: Continuously enhance programming skills, particularly in Java, Kotlin, XML, and the
Android SDK.
6. Performance Monitoring:
Analytics Integration: Use analytics tools to monitor app performance, user engagement, and retention rates to
inform future development decisions.
11
Optimization: Optimize code for performance improvements, ensuring applications run smoothly across various
devices.
By focusing on these objectives, Google Android Developers aim to create innovative applications that not only
fulfill user needs but also contribute to the overall growth of the Android ecosystem
CHAPTER 3 : DISPLAY LISTS AND USE MATERIAL DESIGN
1. Build apps that display a list of data and learn how to make your apps more beautiful with Material
Design.
2. Use data classes, functions, and collections in Kotlin.
3. Create a scrollable list in an app that displays both text and images.
4. Add click listeners to interact with list items.
5. Add an app bar to the app and modify the app theme.
6. Use Material Design to build modern and intuitive user interfaces, using colors, shapes and typography
12
Key Topics in Kotlin Fundamentals
I. Basic Syntax and Structures: Learn about loops, ranges, expressions, and how to define variables.
II. Object-Oriented Programming: Understand classes, interfaces, data classes, and sealed classes.
III. Functions: Explore how to effectively use functions, including higher-order functions and lambdas.
IV. Collections: Get familiar with using arrays, lists, sets, and maps to store data.
V. Generics and Extensions: Gain insights into generics for type safety and extension functions for
enhancing existing classes.
Step-by-Step Guide to Creating a
Scrollable List with RecyclerView
[Link] Up Your Project
• Create a New Project: Open Android Studio and create a new project with an empty activity.
• Add Dependencies: Ensure you have the necessary dependencies in your [Link] file. Add the
following line in the dependencies section:
implementation '[Link]:recyclerview:1.2.1'
[Link] the Layout for the Activity
• In your res/layout/activity_main.xml, define a RecyclerView:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent">
<[Link]
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
[Link] a Data Model
• Create a simple data class for your list items:
13
data class Item(val name: String)
[Link] the Layout for Each Item
• Create a new XML layout file named item_view.xml in res/layout:
Xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/textViewItem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp" />
</LinearLayout>
[Link] the Adapter
• Create an adapter class that extends [Link]. This will bind your data to the views.
class ItemAdapter(private val items: List<Item>) :
[Link]<[Link]>() {
class ItemViewHolder(itemView: View) : [Link](itemView) {
val textView: TextView = [Link]([Link])
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
val view = [Link]([Link]).inflate([Link].item_view, parent, false)
return ItemViewHolder(view)
}
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
[Link] = items[position].name
}
override fun getItemCount() = [Link]
• }
[Link] Up RecyclerView in MainActivity
• In your [Link], set up the RecyclerView and its adapter:
Kotlin
14
class MainActivity : AppCompatActivity() {
private lateinit var recyclerView: RecyclerView
private lateinit var adapter: ItemAdapter
override fun onCreate(savedInstanceState: Bundle?) {
[Link](savedInstanceState)
setContentView([Link].activity_main)
recyclerView = findViewById([Link])
[Link] = LinearLayoutManager(this)
// Sample data
val items = List(100) { Item("Item #$it") }
adapter = ItemAdapter(items)
[Link] = adapter
}
}
Building Beautyfull Apps
Key Principles for Building Beautiful Apps
1. User-Centered Design
Understand Your Users: Conduct user research to understand their needs and preferences.
User Personas: Create personas that represent your target audience to guide design decisions
.
2. Consistent UI/UX
Color Scheme: Choose a harmonious color palette that reflects your brand.
Typography: Use readable fonts and maintain consistency across the app.
Icons and Images: Use high-quality icons and images that align with your theme.
3. Responsive Design
Ensure your app looks good on various screen sizes by using flexible layouts (e.g., ConstraintLayout).
4. Intuitive Navigation
Implement clear navigation patterns (e.g., bottom navigation, tabs) to help users find what they need quickly.
5. Animations and Transitions
Use subtle animations to enhance user interactions without overwhelming them.
Tools for Designing Beautiful Apps
15
[Link] Tools
Figma: A collaborative design tool for creating UI mockups and prototypes.
Adobe XD: Another powerful tool for designing user interfaces and wireframes.
2. Color Palettes
Use tools like Coolors or Adobe Color to generate appealing color schemes.
3. Icon Libraries
Utilize libraries like Font Awesome or Material Icons for high-quality icons.
CHAPTER4: NAVIGATION AND APP ARCHITECTUR
1. Mobile App Architecture
• Mobile app architecture refers to the structural design of an application, outlining how various
components interact with each other to deliver functionality. It serves as a blueprint for building the
app, encompassing rules, processes, and patterns that guide development.
2. Types of Mobile App Architecture
Layered Architecture:
• Organizes the application into distinct layers, typically including presentation, business logic, and
data access layers. This promotes modularity and separation of concerns, making maintenance and
scalability easier.
Monolithic Architecture:
• Structures the entire application as a single unit where all components are tightly integrated. While
simpler to develop and deploy, it can lead to challenges in scalability and maintenance as the application
grows15.
Microservices Architecture:
• Divides the application into smaller, independent services that communicate via APIs. This approach
allows for greater flexibility and scalability, enabling teams to develop, test, and deploy features
independently.
16
Model-View-Controller (MVC):
• A common architectural pattern that separates an app into three interconnected components: Model (data
handling), View (UI), and Controller (business logic). This separation aids in better organization and
maintainability of code15.
Recommended Architecture
• For modern applications, especially Android apps, a recommended architecture often includes:
• UI Layer: Responsible for displaying data.
• Data Layer: Contains business logic and manages data sources.
• Domain Layer: Optional layer that simplifies interactions between UI and data layers24.
Principles of Good Architecture
• Modularity: Components should be developed independently to facilitate updates and maintenance.
• Scalability: The architecture should support growth in features without significant restructuring.
• Testability: A well-defined architecture enhances the ability to test individual components effectively36.
Navigation in Mobile Apps
I. Importance of Navigation
• Effective navigation is essential for enhancing user experience by allowing users to move seamlessly
through the app. Poor navigation can lead to frustration and increased abandonment rates.
II. Bottom Navigation:
• Ideal for apps with three to five top-level destinations. It provides quick access to core functionalities.
III. Navigation Drawer:
• A side menu that slides in from the left or right, allowing users to access different sections of the app
without cluttering the UI.
• Tabs:
• Useful for organizing content into multiple categories within a single screen.
IV. Stack Navigation:
• Allows users to navigate back through their history of screens using a back button or gesture.
V. Best Practices for Navigation
• Consistency: Maintain a consistent navigation structure throughout the app.
• Feedback: Provide clear feedback when users interact with navigation elements (e.g., highlighting
selected items).
• Accessibility: Ensure navigation is accessible for a
17
CHAPTER 5: CONNECT TO THE INTERNET
To connect an Android application to the internet, you need to follow several steps that involve checking
network connectivity, requesting permissions, and performing network operations. Below is a detailed guide
based on the provided search results.
Steps to Connect to the Internet in an Android App
1. Add Required Permissions
First, ensure that your app has the necessary permissions to access the internet and check network state. Add the
following lines to your [Link]:
xml
<uses-permission android:name="[Link]" />
<uses-permission android:name="[Link].ACCESS_NETWORK_STATE" />
2. Check Network Connectivity
Before performing any network operations, check if the device is connected to the internet. You can use the
ConnectivityManager class for this purpose:
kotlin
val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as
ConnectivityManager
val activeNetwork = [Link]
val isConnected = activeNetwork?.isConnectedOrConnecting == true
18
3. Perform Network Operations
If the device is connected, you can perform network operations using classes like HttpURLConnection or
libraries like Retrofit or Ktor for more complex tasks.
Using HttpURLConnection
Here’s an example of how to fetch data from a URL using HttpURLConnection:
if (isConnected) {
val url = URL("[Link]
val connection = [Link]() as HttpURLConnection
[Link] = "GET"
// Connect and get response code
[Link]()
val responseCode = [Link]
if (responseCode == HttpURLConnection.HTTP_OK) {
// Read response
val inputStream = [Link]
val reader = BufferedReader(InputStreamReader(inputStream))
val response = StringBuilder()
var line: String?
while ([Link]().also { line = it } != null) {
[Link](line)
}
// Use the response data
println([Link]())
}
}
3. Using Modern HTTP Clients
For more efficient networking, consider using libraries like Retrofit or Ktor:
Example with Retrofit
Add Retrofit dependencies in your [Link]:
19
implementation '[Link].retrofit2:retrofit:2.9.0'
implementation '[Link].retrofit2:converter-gson:2.9.
5. Handle Connectivity Changes
To monitor changes in connectivity, you can implement a NetworkCallback with ConnectivityManager:
val networkRequest = [Link]()
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
.build()
[Link](networkRequest,
object : [Link]() {
override fun onAvailable(network: Network) {
// Connected to internet
override fun onLost(network: Network) {
// Lost internet connection
}
}
20
CHAPTER 6: DATA PERSISTENCE
SQL, or Structured Query Language, is a standard programming language used for managing and
manipulating relational databases. It allows users to perform various operations such as creating, updating,
deleting, and retrieving data from databases. Here’s a comprehensive introduction to SQL based on the
search results.
What is SQL?
SQL is a domain-specific language designed for managing data held in a relational database management
system (RDBMS). It was developed by IBM in the 1970s and has since become the standard for database
interaction. SQL enables users to communicate with databases through commands that perform specific tasks.
Key Features of SQL
• Data Manipulation: SQL allows users to insert, update, and delete records in a database.
• Data Querying: Users can retrieve specific data using queries, with the most common command being
SELECT.
• Database Creation and Management: SQL provides commands to create and modify database
structures, including tables and views.
Functions in SQL
• SQL also includes several built-in functions for performing calculations on data:
• MIN(): Returns the smallest value in a specified column.
• MAX(): Returns the largest value in a specified column.
• SUM(): Calculates the total sum of a numeric column.
• AVG(): Computes the average value of a numeric column.
• COUNT(): Counts the number of rows that match a specified condition.
Benefits of SQL Knowledge
• Data Analysis: Enables users to extract insights from large datasets.
• Career Opportunities: Proficiency in SQL is often required for roles in data analysis, software
development, and database administration.
21
• Foundation for Other Technologies: Understanding SQL provides a strong foundation for learning
other technologies related to data management and manipulation.
CHAPTER 7: WORK MANAGEMENT
22
Scheduling tasks effectively is a crucial aspect of work management that enhances productivity and
ensures that teams meet their goals efficiently. Here are key insights and best practices for scheduling
tasks within a work management framework
.
Importance of Scheduling Tasks
I. Improved Time Management: Scheduling helps allocate time effectively, ensuring that personal and
professional responsibilities do not conflict. This balance is essential for maintaining productivity and
well-being.
II. Enhanced Accountability: A clear schedule assigns ownership of tasks to team members, fostering a
sense of responsibility and collaboration. Each member knows their role, which promotes teamwork and
reduces confusion.
III. Reduced Errors: By scheduling tasks, organizations can minimize human errors associated with manual
processes. Adequate time and resources allocated to each task lead to higher quality outcomes
IV. Progress Tracking: Scheduled tasks allow for tangible goal setting, making it easier to monitor progress
and make necessary adjustments. Regular reviews of the schedule help keep teams on track
Steps to Schedule Tasks Effectively
I. Determine Time Frames: Establish reasonable time frames for tasks based on their complexity and
urgency. For instance, if studying for a course is a priority, consider adjusting work hours to
accommodate study time
II. Identify Essential Tasks: Focus on critical responsibilities that drive success. Prioritize these tasks based
on their importance and deadlines
III. Prioritize Tasks: Categorize tasks into urgent and non-urgent to ensure that the most critical activities
are addressed first, ideally during peak productivity hours
IV. Utilize Task Management Tools: Implement software solutions that facilitate task assignment, tracking,
and communication among team members. These tools can streamline processes and reduce
miscommunication
V. Share Schedules in Advance: Distributing schedules 7 to 14 days prior allows team members to prepare
for changes or reschedule as needed, minimizing disruptions
VI. Involve Team Members: Engage your team in the scheduling process by considering their preferences
and availability, which can lead to better compliance and satisfaction with the schedule
23
VII. Monitor and Adjust: Regularly review the effectiveness of the schedule and be prepared to make
adjustments based on changing priorities or unforeseen circumstances.
Best Practices for Task Scheduling
I. Understand Team Dynamics: Familiarize yourself with each team member's strengths and weaknesses to
assign tasks appropriately.
II. Break Down Workloads: Distribute tasks according to available hours and critical team members needed
for completion.
III. Establish Clear Communication Channels: Use various methods (e.g., emails, chat apps) to keep
everyone informed about scheduling changes
.
IV. Avoid Over-Scheduling: Be mindful of not overloading team members, which can lead to burnout and
decreased productivity
By implementing these strategies, organizations can enhance their work management processes through
effective task scheduling, leading to improved outcomes and a more cohesive work environment.
CHAPTER 8: VIEWS AND COMPOSE
Android Views in Compose
24
Overview of AndroidView
The AndroidView composable enables the embedding of standard Android Views (e.g., TextView, Button,
etc.) within a Compose layout. Here’s how it works:
• Factory Function: You provide a factory function that creates an instance of the Android View.
• Modifier: You can apply modifiers to control the layout and appearance.
• Update Callback: This callback allows you to update the View whenever the associated state changes.
@Composable
fun MyComposable() {
// State variable to track clicks
val clickCount = remember { mutableStateOf(0) }
Column {
// Android View (ImageView)
AndroidView(factory = { context ->
ImageView(context).apply {
setImageDrawable([Link](context, [Link].my_image))
}
})
// Compose Button
Button(onClick = { [Link]++ }) {
Text("Click Me")
}
// Update TextView with click count
AndroidView(factory = { context ->
TextView(context).apply {
layoutParams = [Link](MATCH_PARENT,
WRAP_CONTENT)
}
}, update = { textView ->
[Link] = "Clicked ${[Link]} times"
})
}
}
25
Badges earned
Introduction to Kotlin Set up Android Studio Kotlin fundamentals
Add a button to an app Build beautiful apps
Interact with UI and state More Kotlin fundamentals Build a scrollable list
26
CONCLUSION
I am grateful for the opportunity to have participated in the Google Android Developer Virtual Internship.
I have learned a great deal about Android development and I am now confident that I have the skills
necessary to start a career as a Android developer.
I would recommend the Android Developer Virtual Internship to anyone who is interested in becoming a
Android developer. It is a great way to learn the skills you need to be successful in this field.
Thank you to Google Android for offering this internship and for providing such a comprehensive learning
experience.
27
StudentSelf-Evaluationfor the Short-TermInternship
Student Name : [Link] Kumar Roll Number:-208X1A0416
Term of Internship: 10 Weeks From: April 2024 To June 2024
Date of Evaluation:
Organization Name & Address: India Edu Program
Date: Signature of the Student
28
29