Final 9987a6
Final 9987a6
On
Bachelor of Technology
in
Information Technology
By
G. SAI SHASHI VARAN 22311A1299
G. M. ROHAN GOUD 22311A1287
S. VINAY KARTHIK 22311A12A6
Affiliated to
CERTIFICATE
This is to certify that the Dissertation entitled “GOOGLE ANDROID DEVELOPER” is
bonafide workdone and submitted by G. Sai Shashi Varan (22311A1299), G. M. Rohan
Goud (22311A1287), S. Vinay Karthik (22311A12A6) , in partial fulfillment of the requirement
for the award of Degree of Bachelor of Technology in Information Technology, SREENIDHI
INSTITUTE OF SCIENCE AND TECHNOLOGY, Affiliated to Jawaharlal Nehru
Technological University, Hyderabad is a record of bonafide work carried out by us under the
guidance and supervision.
The results presented in this dissertation have been verified and are found to be satisfactory. The
results embodied in this dissertation have not been submitted to any other university for the award
of any other degree or diploma.
External Examiner
Date:-
DECLARATION
We, G. Sai Shashi Varan (22311A1299), G. M. Rohan Goud (22311A1287), S. Vinay Karthik
(22311A12A6), students of SREENIDHI INSTITUTE OF SCIENCE AND
TECHNOLOGY, YAMNAMPET, GHATKESAR, studying IV year I semester,
INFORMATION TECHNOLOGY solemnly declare that the Summer Industry Internship-II
Report, titled “GOOGLE ANDROID DEVELOPER” is submitted to SREENIDHI
INSTITUTE OF SCIENCE AND TECHNOLOGY for partial fulfillment for the award of
degree of Bachelor of technology in INFORMATION TECHNOLOGY.
It is declared to the best of our knowledge that the work reported does not form part of
any dissertation submitted to any other University or Institute for award of any degree.
G. M. Rohan Goud(22311A1287)
I would like to express my gratitude to all the people behind the screen who helped me to
transform an idea into a real application. I would like to thank my Internship coordinator Dr. P.
N. Siva Jyothi mam, for their technical guidance, constant encouragement and support in
carrying out my project at college.
I profoundly thank Dr. Sunil Bhutada sir, Head of the Department of Information Technology
who has been an excellent guide and also a great source of inspiration to my work.
I would like to express my heart-felt gratitude to my parents without whom I would not have
been privileged to achieve and fulfill my dreams. I am grateful to our principal, Dr. T. Ch.
Siva Reddy, who most ably run the institution and has had the major hand in enabling me to
do my project.
The satisfaction and euphoria that accompany the successful completion of the task would be
great but incomplete without the mention of the people who made it possible with their constant
guidance and encouragement crowns all the efforts with success. In this context, I would like
thank all the other staff members, both teaching and non-teaching, who have extended their
timely help and eased my task.
G. M. Rohan Goud(22311A1287)
ABSTRACT
The Google Android Developer Course project is designed to equip learners with the
essential skills required to build, deploy, and maintain robust Android applications.
This project-based learning experience focuses on hands-on development, enabling
participants to apply theoretical concepts in real-world scenarios. The course
emphasizes core Android development principles such as user interface (UI) design,
data management, activity lifecycle, and integration of third-party APIs.
Throughout the project, learners develop a fully functional Android app that
showcases their understanding of Java or Kotlin programming languages, Android
Studio IDE, and modern Android development tools. The project involves
implementing responsive UIs, integrating cloud-based services, and ensuring app
security and performance optimization. Advanced modules cover topics like
Material Design, Room Database, Firebase integration, and Jetpack libraries.
Preface
TABLE OF CONTENTS
1. Executive Summary
1.1 Learning Objectives
1.2 Outcomes
2. Introduction
2.1 Introduction To Google Android Developer
2.2 Benefits Of Google Android Developer
2.3 Google Android Developer Framework
2.4 Understanding Android Development
4. Weekly Reports
5. Outcomes
5.1 Technical Skills Acquired As Android Developer Intern
5.2 Code
6. Output Screens
7. Internship Feedback
7.1 Challenges faced
9. References
CHAPTER 1: EXECUTIVE SUMMARY
1.2
Outcomes:
Posted by Erica Hanson, Global Program Manager, Google Developer Student
Clubs Google Developer Student Clubs, a program of university based
community groups for students interested in Google developer technologies,
recently started hosting study groups called Android Study Jams. The goal is to
Learn Android app development through hands- on codelabs in an online
curriculum provided by Google. There are two tracks: one for students who
are new to programming, and one for those who already have experience.
Interested in participating? Facilitator materials are available for anyone to host
Android Study Jams in their community - take a look and start building apps.
• Large Market Reach: Android boasts the biggest market share in the mobile
operating system landscape. Developing for Android allows you to reach a wider
audience compared to other platforms.
• Open-Source Platform: The open-source nature of Android grants
developers greater flexibility and customization options when building
apps.
• Rich Development Tools: Google offers a robust suite of tools like
Android Studio, an IDE specifically designed for Android app
development, to enhance development efficiency.
• Vibrant Developer Community: A vast and active community of
Android developers exists, providing extensive support, learning
resources, and collaboration opportunities.
The Android development framework provides the foundation for building Android
applications. It offers a collection of pre-built components and functionalities to
streamline development. Here's a quick overview:
Android powers a vast majority of smartphones, making it a prime target for app
developers. Here's a glimpse into what it takes to build Android apps:
• Languages: Master Kotlin (preferred) or Java, the primary languages
for Android development.
• Core Concepts: Grasp the building blocks: Activities (app screens),
Views (UI elements),Services (background tasks), and Broadcast
Receivers (event listeners).
• Architecture: Android apps follow a structured approach. Learn about
Activity lifecycles andhow components interact.
• UI/UX: Design user interfaces that are intuitive and follow Android's
design guidelines for aseamless user experience.
• Resources: Leverage Google's Android Developer resources including
tutorials, documentation, and code samples to kickstart your learning.
• Community: The vibrant Android developer community offers
invaluable support, fromtroubleshooting to collaboration.
• With dedication and these fundamentals, you'll be well on your way to
conquering the world of Android development!
• About: Learn about the latest Android platform version, explore the
Android developer ecosystem, and discover training resources.
• Develop for Android: This comprehensive section covers all aspects of
Android development, from user interface design to device compatibility
and integrating AI features.
• Guides: Find in-depth guides on specific functionalities like user interface
design, data storage, security, and background processing.
• Blog: Stay updated on the latest announcements, platform updates, new
features, and best practices from the Android developer team.
WEEK-1
Objective of the Activity Done: Starting with Kotlin and Android Studion
Detailed Report:
• Functions are defined with the fun keyword and contain reusable pieces of
code.
• Functions help make larger programs easier to maintain and prevent
the unnecessary repetition of code.
• Functions can return a value that you can store in a variable for later use.
• Functions can take parameters, which are variables available inside a
function body.
• Arguments are the values that you pass in when you call a function.
• You can name arguments when you call a function. When you use named
arguments, you can reorder the arguments without affecting the output.
• You can specify a default argument that lets you omit the argument
when you call a function.
• To create a new project: open Android Studio, click New Project > Empty
Activity > Next, enter a name for your project and then configure its
settings.
• To see how your app looks, use the Preview pane.
• Composable functions are like regular functions with a few differences:
functions names
• are capitalized, you add the @Composable annotation before the function,
@Composable functions can't return anything.
• To create an AVD, open your project, click Tools > Device Manager, and
use the Device Manager to select a hardware device and system image.
• To run your app on a virtual device, ensure that you created a device,
select the device from the toolbar menu, and click .
• You can run Android apps on your physical device through a cord or
through Wi-Fi.
• Windows users need to install a USB debugging driver to run apps on their
physical device.
• If you are running your app through Wi-Fi, you can pair using a QR code or
a 6 digit code.
• The Resource Manager tab in Android Studio helps you add and organize
your images and other resources.
• An Image composable is a UI element that displays images in your app.
WEEKLY REPORT WEEK-2
WEEK-2
Detailed Report:
Conditions In Kotlin:
WEEK-3
Detailed Report:
Introduction:
A dice roller app is a basic yet engaging application that simulates the rolling of
a dice. It's a popular choice for beginners to learn Android development due to
its simplicity and the opportunity to explore fundamental concepts. This report
outlines the core components and steps involved in building a dice roller app.
Core Components
UI (User Interface):
o An image view to display the dice face.
o A button to trigger the dice roll.
Logic:
Development Steps:
1) Project Setup
2) UI Design
3) Image Resources
4) Dice Rolling Logic
5) Button Click Handler
Understanding UI and State
Core Concepts
• Views: Building blocks of the UI. They represent visual elements on the
screen and handle user interactions.
• Layouts: Organize views into hierarchies to define the UI structure.
• View Groups: Containers that hold other views, such as LinearLayout,
RelativeLayout, and ConstraintLayout.
• State Management: Techniques for storing and managing application
data that affect the UI’s Managing State
• Instance State: Save and restore UI state when an activity or fragment is
destroyed and recreated.
• Shared Preferences: Store simple key-value pairs for persistent data.
• SQLite Database: For structured data storage.
• LiveData: Observe data changes and update the UI automatically.
• ViewModel: Store and manage UI-related data that survives configuration
changes.
• StateFlow and SharedFlow: For reactive state management with Kotlin
Flow.
Best Practices
WEEK-4
Objective of the Activity Done: Built Scrollable lists and Beautiful apps
Detailed Report:
In this guide, you will learn how to build an Affirmations app using Jetpack
Compose. Theapp will display a list of encouraging messages (or quotes!) paired
with beautiful images, designed to bring positivity to your day. By leveraging
Jetpack Compose, you can create a smooth, scrollable list that presents this
uplifting content in an engaging manner. The key concepts includedata classes,
composable functions, and efficient list management with ‘LazyColumn’
WEEK-5
At last I created a Material app by customizing color palettes for light and dark
themes, defining component shapes, downloading and integrating custom
fonts, and designing a top bar for branding. Through this codelab, you learned
how to use Material Theming to personalize colors, typography, and shapes.
Key files include Theme.kt for theme settings, Color.kt for color definitions,
Shape.kt for shapes, and Type.kt for typography. These skills enable you to
craft unique and cohesive app designs.
1. onCreate 5. onPause
2. onStart 6. onStop
3. onRestart 7. onDestroy
4. onResume
A typical Android app contains multiple app components, including activities,
fragments, services, content providers, and broadcast receivers. You declare
most of these app components in your app manifest. The Android OS then uses
this file to decide how to integrate your app intothe device's overall user
experience.
In Compose, the only way to update the UI is by changing the state of the app.
What you can control is your UI state. Every time the state of the UI changes,
Compose recreates the parts of the UI tree that changed. Composables can
accept state and expose events.
The use of the UDF pattern for app architecture has the following implications:
WEEK-6
Objective of the Activity Done: Navigation in Jetpack, Adapt for different Screen
Sizes
Detailed Report:
Navigation Graph
A navigation graph is an XML resource file that defines all possible destinations
and the actions that can be taken to navigate between them. It acts as a visual
representation of the app's navigation hierarchy.
NavHostFragment
One of the great advantages of developing our app in the Android platform is the
vast opportunity to reach users in different kinds of form factors, such as
wearables, foldables, tablets,desktop, and even TV. When using an app, your
users may want to use the same app on large screen devices to take advantage of
the increased real estate. Increasingly, Android users use theirapps on multiple
devices of varying screen sizes, and expect a high-quality user experience
acrossall devices.
So far, I learned to make apps primarily for mobile devices. In this, I’ve learned
how to transform my apps to make them adaptive to other screen sizes. I'll use
adaptive navigation layoutpatterns that are beautiful and usable for both mobile
and large screen devices, such as foldables,tablets, and desktop.
WEEKLY REPORT WEEK-7
WEEK-7
Objective of the Activity Done: Get Data From the Internet, Load and Display
images from the internet
Detailed Report:
In this unit, I have learnt on how to build an Android app that can retrieve data
from the internet. The key concepts covered include Kotlin coroutines for
asynchronous programming andRetrofit for consuming RESTful web services.
Introduction to Coroutines
In this we may learn about the data layer and its two basic components:
repositories and the datasource. We will also cover data immutability, error
handling, threading, testing in this concept.
• App overview
• Display a downloaded image
• Display a grid of images with a lazy vertical grid
• Add retry action
From this topic I had learnt about the load and display images from the internet by
using the above steps like add repository and manual dependency injection steps
and also load and display images from the internet steps finally I am concluding
that these are the steps I used
in downloading and display image from the internet and we may apply
architecture best practices tothe app and use coil to download and display images.
Objective of the Activity Done: Introduction to SQL, Use Room for Data
Persistence
Detailed Report:
Introduction
Importance of SQL:
SQL plays a crucial role in modern data management and is indispensable for
various reasons.
• Firstly, it provides a standardized language for interacting with relational
databases, ensuring consistency and compatibility across different
platforms and systems.
• Secondly, SQL enables efficient data retrieval through its robust querying
capabilities.
• Thirdly, SQL supports data integrity and security through mechanisms like
constraints (e.g., PRIMARY KEY, FOREIGN KEY) and permissions
management(e.g., GRANT, REVOKE).
• Fourthly, SQL facilitates data analysis and decision-making by enabling
complexqueries, aggregations, and transformations.
WEEK-8
Objective of the Activity Done: Store and access data using Keys with
Datastore, Schedule tasks with WorkManager
Detailed Report:
Datastore is a modern Android library for storing user preferences locally using
a key- value store or typed objects. It provides a more efficient and type-safe
alternative to Shared Preferences, using Kotlin Coroutines for asynchronous
data access. Datastore supports both preferences and proto formats, allowing
for flexible data storage solutions. This helps improve app performance and
maintainability.
5.OUTCOMES DESCRIPTION
5.1 Technical Skills Acquired as Android Developer Intern
• Unit Testing: Writing unit tests using JUnit and Mockito to ensure code 32
reliability.
• UI Testing: Implementation of UI tests using Espresso and UIAutomator.
• Debugging Tools: Proficiency in using Android Studio's debugging tools
to identify and fix issues.
• Data Privacy: Ensuring user data privacy by following best practices and
regulations such as GDPR.
• Security Measures: Implementation of security measures to protect
sensitive data and prevent common vulnerabilities such as SQL injection,
XSS, and insecure data storage.
• Ethical Coding: Adherence to ethical standards in coding practices,
including accessibility and inclusivity considerations.
5.2 Code:
package com.example.diceroller
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import kotlin.random.Random
6.OUTPUT SCREENS
34
7.INTERNSHIP FEEDBACK
The Google Android Developer Course presents several challenges for learners.
Beginners often face a steep learning curve when understanding key concepts
like the activity lifecycle and threading. Developers transitioning from Java to
Kotlin may struggle with the differences in syntax and paradigms.
35
and API integration, can be time-intensive. Designing responsive and visually
appealing UIs for various screen sizes adds another layer of complexity.
Ensuring app performance and battery efficiency across diverse devices can
also be demanding.
9.REFERENCES
1. https://developer.android.com/courses/android-basics-compose/unit-1
2. https://developer.android.com/courses/android-basics-compose/unit-2
3. https://developer.android.com/courses/android-basics-compose/unit-3
4. https://developer.android.com/courses/android-basics-compose/unit-4
5. https://developer.android.com/courses/android-basics-compose/unit-5
6. https://developer.android.com/courses/android-basics-compose/unit-6
7. https://developer.android.com/courses/android-basics-compose/unit-7
8. https://developer.android.com/courses/android-basics-compose/unit-8
APPENDIX A
ABSTRACT
The Google Android Developer Course provides comprehensive training in
Android app development, covering key concepts like UI design, data
management, and app lifecycle. It focuses on hands-on learning, enabling
learners to build real-world applications using Kotlin and Android Studio. The
course prepares participants for the Google Associate Android Developer
certification, enhancing career prospects. Topics include Firebase integration,
performance optimization, and cloud services. By the end, learners gain practical
skills needed to create, test, and deploy Android apps successfully.
Student 1: G. Sai Shashi Varan Student 2: G. M. Rohan Goud Student 3: S. Vinay Karthik
38
APPENDIX B
CORRELATION BETWEEN THE GROUP
PROJECT AND THE PROGRAM
OUTCOMES (POS), PROGRAM SPECIFIC
OUTCOMES (PSOS)
Batch No: 1
Title
Roll No Name
Table 2: Nature of the Project/Internship work (Please tick √ Appropriate for your project)
GOOGLE
ANDROID
1
DEVELOP
ER
Student 1: G. Sai Shashi Varan Student 2: G. M. Rohan Goud Student 3: S. Vinay Karthik
40
Table 3: Domain of the Project/ Internship work (Please tick √ Appropriate for your project)
GOOGLE
ANDROID
1 DEVELOPER
Student 1: G. Sai Shashi Varan Student 2: G. M. Rohan Goud Student 3: S. Vinay Karthik
41