0% found this document useful (0 votes)
61 views

Internship Project

internship project

Uploaded by

snehakhatoon18
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views

Internship Project

internship project

Uploaded by

snehakhatoon18
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

DECLARATION

We here by declare that the internship on“ ANDROID APP DEVELOPMENT” is a


genuine internship. This work has been submitted to the ADITYA ENGINEERING COLLEGE,
Surampalem, permanently affiliated to JAWAHARLAL NEHRU TECHNOLOGICAL
UNIVERSITY, KAKINADA in partial fulfillment of the B.Tech degree. We further declare that
this internship work has not been submitted in full or part of the award of any degree of this or any
other educational institutions.

by

SNEHA KHATOON 22A91A12C5


ACKNOWLEDGEMENT

I would like to express my sincere gratitude to Internshala for providing me with the opportunity to
undertake this internship. A special thanks goes to the entire team for their support, patience, and
openness, which created an enjoyable and productive working environment throughout my
internship. I also want to thank my colleagues, whose collaboration made this experience truly
enriching.

It is with immense pleasure that we would like to express my indebted gratitude to our internship
coordinator Mrs. S. Neelima, Associate Professor in IT who has guided us a lot and encouraged us
in every step of the intern project work, her valuable moral support and guidance throughout the
Intern project helped us to a greater extent.

Our deepest thanks to Dr. M. Rajababu, Professor & HOD-IT for inspiring us all the way and for
arranging all the facilities and resources needed for our internship.

We wish to thank Dr. S. Rama Sree, Professor in CSE and Dean (Academics) for her support and
suggestions during our internship.

We owe our sincere gratitude to Dr. M. Sreenivasa Reddy, Principal for providing a great support
and forgiving us the opportunity of doing the internship.

We are thankful to my College Management for providing all the facilities in time to us for
completion of my internship.

Not to forget, Faculty, Lab Technicians, non-teaching staff and our friends who have directly or
in directly helped and supported us in completing my internship in time.
ABSTRACT

As an avid Android developer, I am well versed in building dynamic, user-centric and functional
mobile applications using Android Studio, Java, and Kotlin. I've gathered hands-on experience with
stylish, user-friendly design, using modern UI/UX principles to ensure a seamless user experience,
and maintaining app data through SQLite databases My job involves integrating third-party APIs
and libraries into apps. That includes increased performance and scalability, providing users with a
richer and more interactive experience

Also, my technical toolkit uses Git effectively for version control, ensuring smooth collaboration
with teams and maintaining code integrity across multiple development environments where I am
familiar with the software development lifecycle, and have practical knowledge on in terms of agile
methods , I can confidently navigate tasks to debugging and deployment, with a focus on delivering
high quality products.

During my academic course projects and independent assignments, I gained a solid foundation in
mobile app architecture, optimizing performance, and debugging complex problems. These
experiences not only honed my problem solving skills but solidified my understanding of best
practices to maintain a clean and scalable code

My passion for Android development fuels my desire to keep learning and growing. I am
particularly excited to use my technical skills in a professional environment where I can help
develop innovative mobile solutions. I look forward to collaborating with experienced developers,
learning from their insights and improving my skills.
Learning Objectives / Internship Objectives

 Internships are generally thought of to be reserved for college students looking to gain
experience in a particular field. However, a wide array of people can benefit from Training
Internships in order to receive real world experience and develop their skills.

 An objective for this position should emphasize the skills you already possess in the area and
your interest in learning more.

 Internships are utilized in a number of different career fields, including architecture,


engineering, healthcare, economics, advertising and many more.

 Some internships are used to allow individuals toper form scientific research while others are
specifically designed to allow people to gain first-hand experience working.

 Utilizing internships is a great way to build your resume and develop skills that can be
emphasized in your resume for future jobs. When you are applying for a Training Internship,
make sure to highlight any special skills or talents that can make you stand apart from the rest of
the applicants so that you have an improved chance of landing the position.
WEEKLY OVERVIEW OF INTERNSHIP ACTIVITIES

DATE DAY NAME OF THE TOPIC/MODULE COMPLETED

Monday Jumpstart your Android Adventure


01/07/24

02/07/24 Introduction to Android app development.


Tuesday
WEEK

03/07/24 Android Components & Architecture


Wednesday
04/07/24 Diving into Android Development: Languages, Tools, and
Thursday
1st

Technologies
Friday
05/07/24 Setting up the Android development environment (Android
Studio, SDKs)
Saturday
06/07/24 Kotlin Bootcamp practice

DATE DAY NAME OF THE TOPIC/MODULE COMPLETED

07/07/24 Monday Mastering Strings and Functions in Kotlin

08/07/24 Tuesday Functions Redefined , Classes and Objects in Kotlin

09/07/24 Kick starting Android App Development: Kotlin and


2nd WEEK

Wednesday
Jetpack Compose.

10/07/24 Thursday Crafting Wonders with Android Studio

11/07/24 Friday
Mastering the Flow: Android Lifecycle
Levelling Up Kotlin Skills
12/07/24 Saturday
DATE DAY NAMEOFTHETOPIC/MODULE COMPLETED

13/07/24 Monday Classes: Pillars of Strength in App Development

Data Management in Kotlin Using Collections


14/07/24 Tuesday
3rd WEEK

15/07/24 Wednesday Conditionals & Loops in Kotlin

Making an Android App Interactive


16/07/24 Thursday

17/07/24 Friday Adding Additional Screens to our Android App

Pathway to App Navigation


18/07/24 Saturday

DATE DAY NAME OF THE TOPIC/MODULE COMPLETED

19/07/24 Monday Scaffold Widget - Trying Out Material Design

To the Web: Introducing Retrofit


20/07/24 Tuesday

21/07/24 Wednesday Handling Errors & Adding Permissions in Android


4th WEEK

Fetching and Displaying Data from Web


22/07/24 Thursday

23/07/24 Friday Coil Library- Elevating AsyncImage Loading

24/07/24 Saturday Adding a New Screen and Enabling Data Persistance


DATE DAY NAME OF THE TOPIC/MODULE COMPLETED

25/07/24 Monday Introduction to Baas and Firebase Authentication

Implementing Firebase Authentication


26/07/24 Tuesday

Connecting Our App to the Internet


27/07/24 Wednesday

Sending OTP & Setting Callbacks


28/07/24 Thursday
5th WEEK

29/07/24 Friday Configuring Firebase project and adding Firebase SDK to Android
app

30/07/24 Saturday Storing Data in the Cloud With Realtime Database

DATE DAY NAME OF THE TOPIC/MODULE COMPLETED


Overview of Google Play Store and its role in Android app
01/08/24 Monday
distribution

Listing Apps in Google Play Store


02/08/24 Tuesday

Introduction to AI in Android Apps


03/08/24 Wednesday
6th WEEK

Setting Up AI Frameworks in Android


04/08/24 Thursday

05/08/24 Friday Text Recognition and Language Processing

06/08/24 Saturday Using TensorFlow Lite for On-Device AI


DATE DAY NAME OF THE TOPIC/MODULE COMPLETED
Real-Time AI Features
07/08/24 Monday

Introduction to Kotlin Multiplatform


08/08/24 Tuesday

Using Kotlin Coroutines in Multiplatform


09/08/24 Wednesday
7th WEEK

Building User Interfaces


10/08/24 Thursday

11/08/24 Friday Developing a Kotlin Multiplatform App

12/08/24 Saturday Final project


INDEX

S.No Contents Page No


1. Introduction 1
2. Competitive Coding 2-4
3. Android Fundamentals 5-6
4. Android Studio Overview 7-10
5. Android Architecture 11-12
6. UI/UX Design in Android 13-15
7. Tools in Android Development 16-18
8. Android Debugging and Testing 19-21
9. Summary 22
10. About the Company 23-24
11. Opportunities 25-26
12. Training 27-28
13. Challenges Faced 29-30
14 Implementation 31-32
15. Conclusion 33
1. Introduction
Internshala’s Android App Development Training is a participatory program aimed at equipping
students with the necessary skills to develop functional and user-friendly mobile applications on
the Android platform. The training caters to beginners and those looking to strengthen their app
development skills through a well-rounded curriculum that starts at the basics and progresses to
more complex topics.

The course begins with a solid foundation in Java programming, which is the backbone of
Android development. Students are introduced to basic programming concepts, including
principles of objects, variables, loops, and conditionals, which are essential for writing efficient
and scalable Android applications As the course progresses, students go deeper in the intricacies
of UI design, user experience They learn how to create visually appealing interfaces that
improve. Through learning about activities, blocks, layouts and widgets, they are equipped to
organize and build the core components of any Android app.

A unique part of the training includes a focus on data warehousing and API integration. Students
explore various methods of storing and retrieving data from using shared preferences for small
details to using databases such as SQLite for more complex data management Perhaps
interacting with external applications such as payment gateways

The main effectiveness of this system is the hands-on nature of the study. Rather than just a
theoretical course, Internshala’s Android App Development Training offers a variety of real-
world projects that guide students through app development.

1
2. Competitive Coding

1.1 Competitive Coding in Android App Development Internships: The Case


of Internshala

This article introduces the first internship portal, Internshala, which has emerged as a leading
opportunity provider for students and professionals seeking experience in many fields by getting
real-world experience in the fast-moving world of technology. In this assignment, an in-depth
understanding of the role of competitive coding in broadening the scope of internships in
Android app development shall be contemplated further. An internship in Android application
development might be a very challenging affair, since employers will expect candidates to have
not only theoretical knowledge but also applicable skills necessary to solve real-world problems
efficiently. It is in this respect that competitive coding comes in. Competitive coding prepares the
student to the best of his or her abilities for what he or she would face while interns-to be able to
take on the complex problems of algorithms, data structures, and logic building, which is quite
essential in app development.

Importance of Competitive Coding in Android App Development Competitive coding is


basically a practice where programmers try to solve algorithmic problems in an optimized and
efficient manner. For Android developers, this is an extremely critical exercise for many reasons:

Effective Problem-Solving Skill: Competitive coding sharpens problem-solving skills. Android


development involves multiple scenarios where large datasets must be processed or complex
features need to be implemented while requiring the app to be fast and responsive. Competitive
coding equips developers with a set of skills in writing efficient algorithms which could solve
problems in minimal time, quite crucial to mobile application development where performance is
paramount.

Handling Data Structures and Algorithms: Understanding how data is handled correctly is one of
the important things to understand in Android development. From proper use of data structures
such as arrays and lists, maps, right up to writing algorithms that handle user input or database

2
management and server communications, it leads to a deep understanding of what the basic data
structures are and the algorithms you can apply directly to your Android projects.

Debugging and Code Optimization: The code written must be bug-free and as efficient as
possible in the world of competitive programming. The same applies to the debugging and
optimization of an app to achieve better performance in the Android environment. A mobile app
has to deal with fitting the objects properly in memory and processing them. Poorly developed
code often leads to issues such as crashes, slowing down, and memory leakages.

Internshala and Competitive Coding: What Internships Expect on Internshala There are
thousands of internships available on Internshala that fall under the category of Android
development, ranging from making a basic app, such as an alarm clock or Tic-Tac-Toe game, to
developing a very complex project involving AI integration, database management, and even
full-stack mobile development. But in any case, competitive coding is an important force in
getting an internship and sticking with one.

1.2 Competitive Coding Areas Relevant to Android Development Interns

Graph Algorithms: It is a no-brainer that a lot of applications running on Android need to deal
with complex relationships. For example, the relationship between users in social network apps
may resemble a graph. Any algorithm regarding graph algorithms like DFS, BFS, or any shortest
path using Dijkstra's algorithm may be helpful while working with features like friend
suggestions, maps, or routing functionality within an app.

Dynamic Programming: This is a technique helping to solve problems by breaking them up into
smaller sub-problems. Optimization of performance in case of very high memory usage is
involved in most cases while making Android apps, and dynamic programming comes into play
when optimizing is critical, especially while managing UI components in that they are rendered
efficiently on different devices.

Internship Case Study: Competitive Coding Skills in Action There might have been an
Internshala internship that asked to develop a social media app. Common features of the app

3
could include suggesting friends based on mutual connections or common interests. A candidate
who is aware of competitive coding can easily implement graph traversal algorithms like BFS or
DFS to analyze the connections of all users and list out suggestions of new potential friends.

Supposing the app has a feature where users can upload media files, then, to make sure that
uploading media doesn't freeze up the application, the developer will add background threading
to allow the user to navigate through the application while upload happens in the background. A
competitive coder is more likely to implement such features well because competitive coders are
able to handle several processes at once.

Conclusion Competitive coding, of itself does not provide answers to abstract algorithmic
problems in a timed environment but helps develop a mind strongly applicable to real-world
development tasks-in this case, Android app development. All internshala internships would
require technical acumen, the ability to solve problems effectively in the shortest possible
amount of time, and an aptitude to handle complex complexities-all qualities that competitive
coding builds for one. For anyone looking forward to being an Android developer, strong
competitive coding skills enhance one's chances considerably-in both internship selection and
during actual execution of duties during the internship. Therefore, excellence in competitive
coding becomes not only beneficial but essential for any candidate seeking the best Android app
development internship through Internshala.

4
3. Android Fundamentals
Android is an operating system that is built basically for Mobile phones. It is based on the Linux
Kernel and other open-source software and is developed by Google. It is used for touchscreen
mobile devices such as smart phones and tablets. But nowadays these are used in Android Auto
cars, TV, watches, camera, etc. The app is developed on an application known as Android Studio.
These executable apps are installed through a bundle or package called APK(Android Package
Kit).

1.1 Android Fundamentals

1. Android Programming Languages

In Android, basically, programming is done in two languages JAVA or C++ and XML(Extension
Markup Language). Nowadays KOTLIN is also preferred. The XML file deals with the design,
presentation, layouts, blueprint, etc (as a front-end) while the JAVA or KOTLIN deals with the
working of buttons, variables, storing, etc (as a back-end).

2. Android Components

The App components are the building blocks of Android. Each component has its own role and
life cycles i.e from launching of an app till the end. Some of these components depend upon
others also. Each component has a definite purpose. The four major app components are:

 Activities
 Services
 Broadcast Receivers:
 Content Provider

Activities: It deals with the UI and the user interactions to the screen. In other words, it is a User
Interface that contains activities. These can be one or more depending upon the App. It starts
when the application is launched. At least one activity is always present which is known as
MainActivity. The activity is implemented through the following.

Syntax:

public class MainActivity extends Activity{

5
// processes }

Services: Services are the background actions performed by the app, these might be long-
running operations like a user playing music while surfing the Internet. A service might need
other sub-services so as to perform specific tasks. The main purpose of the Services is to provide
non-stop working of the app without breaking any interaction with the user.

Syntax:

public class MyServices extends Services{

// code for the services

Broadcast Receivers: A Broadcast is used to respond to messages from other applications or


from the System. For example, when the battery of the phone is low, then the Android OS fires a
Broadcasting message to launch the Battery Saver function or app, after receiving the message
the appropriate action is taken by the app. Broadcast Receiver is the subclass of
BroadcastReceiver class and each object is represented by Intent objects.

Syntax:

public class MyReceiver extends BroadcastReceiver{

public void onReceive(context,intent){

Content Provider: Content Provider is used to transferring the data from one application to the
others at the request of the other application. These are handled by the class ContentResolver
class. This class implements a set of APIs(Application Programming Interface) that enables the
other applications to perform the transactions. Any Content Provider must implement the Parent
Class of ContentProvider class.

Syntax:

public class MyContentProvider extends ContentProvider{

public void onCreate(){}}

6
4. Android Studio Overview
 Android Studio is the official Integrated Development Environment (IDE) for android
application development. Android Studio provides more features that enhance our
productivity while building Android apps.
 Android Studio was announced on 16th May 2013 at the Google I/O conference as an
official IDE for Android app development. It started its early access preview from version
0.1 in May 2013. The first stable built version was released in December 2014, starts
from version 1.0.
 Since 7th May 2019, Kotlin is Google's preferred language for Android application
development. Besides this, other programming languages are supported by Android
Studio.

Fig: Android studio view

7
1.1 Features of Android Studio

1. It has a flexible Gradle-based build system.


2. It has a fast and feature-rich emulator for app testing.
3. Android Studio has a consolidated environment where we can develop for all Android
devices.
4. Apply changes to the resource code of our running app without restarting the app.
5. Android Studio provides extensive testing tools and frameworks.
6. It supports C++ and NDK.
7. It provides build-in supports for Google Cloud Platform. It makes it easy to integrate
Google Cloud Messaging and App Engine.

1.2 Android Studio Version History

Version Release date

1.0 December 2014

1.1 February 2015

1.2 April 2015

1.3 July 2015

1.4 September 2015

1.5 November 2015

2.0 April 2016

2.1 April 2016

2.2 September 2016

2.3 March 2017

3.0 October 2017

3.1 March 2018

3.2 September 2018

3.3 January 2019

3.4 April 2019

8
3.5 August 2019

1.3 Android Studio Project Structure

The Android Studio project contains one or more modules with resource files and source code
files. These include different types of modules-

 Android app modules


 Library modules
 Google App Engine modules

Android Studio

By default, Android Studio displays our project files in the Android project view, as shown in the
above image. This view is formed by modules to provide quick access to our project's key source
files.

Android Studio User Interface

 The toolbar provides us a wide range of actions, which includes running apps and
launching Android tools.
 The navigation bar helps in navigating our project and open files for editing. It gives a
compact view of structure visible in the Project window.
 The editor window is a space where we can create and modify our code. On the basis of
the current file type, the editor can change. While viewing a layout file, the editor
displays the Layout Editor.
 The tool window bar runs around the outside the IDE window and contains buttons that
allow as to expand and collapse individual tool windows.
 The tool windows provide us access specific tasks like search, project management,
version control, and more. We can able expand and collapse them.
 The status bar displays the status of our project and IDE itself, as well as any messages or
warnings.

9
Android Studio Tool window

We can use keyboard shortcuts to open tool windows. The below table provides the list of
shortcuts for the most common windows.

Tool window Windows and Linux Mac

Project Alt+1 Command+1

Version Alt+9 Command+9


Control

Run Shift+F10 Control+R

Debug Shift+F9 Control+D

Logcat Alt+6 Command+6

Return to Esc Esc


Editor

Hide all Tool Control+Shift+F12 Command+Shift+F12


Windows

Gradle build system

Gradle build used as the foundation of the build system in Android Studio. It uses more Android-
specific capabilities provided by the Android plugin for Gradle. This build system runs
independently from the command line and integrated tool from the Android Studio menu. We can
use build features for the following purpose:

 Configure, customize, and extend the build process.


 We can create multiple APKs from our app, with different features using the same project
and modules.
 Reuse resource and code across source sets.

10
5. Android Architecture
Android architecture or Android software stack is categorized into five parts:

1. Linux kernel
2. native libraries (middleware),
3. Android Runtime
4. Application Framework
5. Applications

1) Linux kernel

It is the heart of android architecture that exists at the root of android architecture. Linux kernel
is responsible for device drivers, power management, memory management, device management
and resource access.

11
2) Native Libraries
On the top of linux kernel, their are Native libraries such as WebKit, OpenGL, FreeType, SQLite,
Media, C runtime library (libc) etc.

The WebKit library is responsible for browser support, SQLite is for database, FreeType for font
support, Media for playing and recording audio and video formats.

3) Android Runtime

In android runtime, there are core libraries and DVM (Dalvik Virtual Machine) which is
responsible to run android application. DVM is like JVM but it is optimized for mobile devices.
It consumes less memory and provides fast performance.

4) Android Framework

On the top of Native libraries and android runtime, there is android framework. Android
framework includes Android API's such as UI (User Interface), telephony, resources, locations,
Content Providers (data) and package managers. It provides a lot of classes and interfaces for
android application development.

5) Applications

On the top of android framework, there are applications. All applications such as home, contact,
settings, games, browsers are using android framework that uses android runtime and libraries.
Android runtime and native libraries are using linux kernal.

12
6. UI/UX Design in Android
UI, an abbreviation for User Interface, represents the way users interact with mobile apps. The
design of a mobile app’s user interface aims to facilitate easy, enjoyable, and effective
interactions between users and the app.

In the world of information technology, UI refers to devices that enable users to interact with
monitors, screens, or mobile devices.

Android Design Tools and Resources

Fig: Android Design Tools and Resources

1.1 UI Deliverables

1. Mood Boards: Mood boards serve as a means to effectively communicate innovative ideas
to a wide audience. They facilitate client understanding of the app concept that designers
will be working on.
2. Visual Designs: Visual designs play a vital role in comprehending the impact of various
design elements. Elements such as photography, typography, space, colors, layouts, and
images are better grasped through visual designs, allowing for a more comprehensive
understanding of their effects.

13
3. Dynamic Prototyping: Dynamic prototypes are another important UI deliverable. These
prototypes contribute to enhancing the overall functionality of the app and enable ongoing
improvements as necessary. With dynamic prototypes, the UI can be developed according to
the specific desires and requirements of the clients.
4. Style Guides: Style guides provide comprehensive guidelines for maintaining visual
consistency throughout the app. They define the typography, color schemes, iconography,
and other design elements that should be followed consistently across different screens and
interactions.
5. Wireframes: Wireframes are basic, low-fidelity representations of the app’s layout and
structure. They outline the placement of key elements and content without focusing on
visual aesthetics. Wireframes help in planning the app’s functionality and user flow.
6. Mockups: Mockups are high-fidelity representations of the app’s user interface. They
incorporate visual design elements, such as colors, typography, and graphics, to showcase
how the final app will look. Mockups provide a more realistic visual representation for
client and stakeholder feedback.
7. Interaction Design: Interaction design focuses on defining the behavior and responsiveness
of the app’s interface. It involves creating interactive prototypes or animations that
demonstrate how users will engage with the app’s features and navigate through different
screens.
8. Icon Design: Icons play a vital role in enhancing the visual appeal and usability of an app.
Icon design involves creating a set of cohesive and intuitive icons that represent actions,
features, or concepts within the app. These icons contribute to the overall user experience
and aid in navigation.
9. Responsive Design: In today’s multi-device landscape, responsive design has become very
important. It involves designing and optimizing the app’s user interface to adapt seamlessly
across various screen sizes and orientations, ensuring a consistent and optimal user
experience across different devices.

14
1.2 UX Deliverables

1. Competitive Analysis Report: The purpose of the competitive analysis report is to evaluate
the level of competition your app faces. If your app operates in a highly competitive market
or is unprepared to outperform its competitors, all efforts might go in vain. Conducting a
competitive analysis can identify the strengths and weaknesses of your competitors’ apps.
2. User Personas: Creating buyer personas not only helps in understanding customer behavior
but also facilitates effective communication with clients. The UX process involves
conducting user research to gain insights into behavioral patterns.
3. User Journeys, Experience Maps, and User Flows: Experience maps provide a
comprehensive view of users’ overall behavior and interactions with a product. They
showcase expectations, time spent, reactions, thoughts, and needs, among other factors.
User journeys, or user flows, describe how users interact with a product at different stages.
Depending on the product, these can include both current and potential interactions.
4. Interactive Prototypes: This is another essential deliverable in the UX process. Utilizing
rudimentary prototypes can save significant time and effort while still effectively fulfilling
their purpose. Prototypes help demonstrate how the final product will function once fully
developed, enabling designers to communicate their ideas more effectively.
5. Usability Testing: It is a crucial UX deliverable that involves observing and analyzing how
users interact with the app or website. By conducting usability tests, designers can gather
valuable feedback on the usability and effectiveness of the user interface. This feedback
helps identify areas for improvement and ensures a more user-friendly experience.
6. Visual Design: This encompasses the aesthetic aspects of the app or website, including
color schemes, typography, icons, and overall branding. It focuses on creating a visually
appealing and cohesive interface that aligns with the target audience and brand identity.
Visual design enhances the overall user experience and helps establish a strong visual
identity for the product.
7. Creating an exceptional user experience is essential for businesses to thrive and succeed.
Users demand seamless, intuitive, and visually appealing interfaces that not only meet their
needs but also exceed their expectations.

15
7. Tools in Android Development
The android developer tools let you create interactive and powerful application for android
platform. The tools can be generally categorized into two types.

1. SDK tools
2. Platform tools

1.1 SDK tools

SDK tools are generally platform independent and are required no matter which android platform
you are working on. When you install the Android SDK into your system, these tools get
automatically installed. The list of SDK tools has been given below –

SN.No Tool & description


1 android
This tool lets you manage AVDs, projects, and the installed components of the SDK
2 ddms
This tool lets you debug Android applications
3 Draw 9-Patch
This tool allows you to easily create a NinePatch graphic using a WYSIWYG editor
4 emulator
This tools let you test your applications without using a physical device
5 mksdcard
Helps you create a disk image (external sdcard storage) that you can use with the
emulator
6 proguard
Shrinks, optimizes, and obfuscates your code by removing unused code
7 sqlite3
Lets you access the SQLite data files created and used by Android applications
8 traceview
Provides a graphical viewer for execution logs saved by your application

16
9 Adb
Android Debug Bridge (adb) is a versatile command line tool that lets you
communicate with an emulator instance or connected Android-powered device.

1.2 Platform tools

The platform tools are customized to support the features of the latest android platform.The
platform tools are typically updated every time you install a new SDK platform. Each update of
the platform tools is backward compatible with older platforms.

Some of the platform tools are listd below −

 Android Debug bridge (ADB)


 Android Interface definition language (AIDL)
 aapt, dexdump , and dex e.t.c

Gradle

 A build automation tool used by Android Studio to manage project dependencies and
build processes.
 Allows for customization of builds through Groovy or Kotlin DSL.

Emulator

 A virtual device that allows developers to test applications without needing a physical
device.
 Supports various Android versions and device configurations.

Firebase

 A mobile platform that provides various tools and services like real-time
databases,authentication, and cloud storage.
 Useful for backend services in mobile applications.

Android Jetpack

17
 A set of libraries and architectural components designed to help developers follow best
practices.
 Includes components for lifecycle management, data persistence, and UI design.

Version Control Systems (e.g., Git)

 Tools that help developers track changes in their codebase and collaborate with others.
 Essential for managing projects, especially in team environments.

Debugging Tools

 Tools like Logcat for logging, Android Profiler for performance analysis, and the built-in
debugger in Android Studio.
 Help identify and fix issues in applications.

Design Tools

 Tools like Figma, Adobe XD, or Sketch for UI/UX design.


 Can be integrated with Android development workflows for creating mockups and
prototypes.

Testing Frameworks

 Libraries such as JUnit, Espresso, and Robolectric for unit testing and UI testing.
 Ensure the reliability and quality of applications.

Libraries and Frameworks

 Third-party libraries like Retrofit for networking, Glide for image loading, and Room for
database access.
 Enhance functionality and reduce development time.

Documentation and Community Resources

 Websites like Stack Overflow, Android Developers documentation, and GitHub


repositories for community support and examples.
 Helpful for troubleshooting and learning new techniques.

18
8. Android Debugging and Testing
Debugging and testing in Android development are essential steps to ensure your app functions
as expected across different devices and environments. Here’s an overview of tools and
techniques for Android debugging and testing:

1.1 Android Studio Debugger

Android Studio offers a powerful built-in debugger. Here are the key features:

 Breakpoints: Pause your app at specific lines to inspect variables, expressions, and the
flow of execution.
 Step In, Over, and Out: Controls to move through your code to see how it behaves step
by step.
 Watches and Evaluations: Track the value of variables and expressions in real time.
 Conditional Breakpoints: Break the execution only when certain conditions are met.

Logcat

Logcat is a command-line tool in Android Studio that shows real-time logs from the device. You
can filter logs by severity (e.g., debug, warning, error) or by tags (log messages from specific
parts of your app).

Common log levels:

 Log.d() for debug messages.


 Log.i() for informational messages.
 Log.e() for error messages.

Android Device Monitor (ADM)

The ADM helps in:

 Monitoring real-time performance (memory, CPU usage).


 Viewing the file system on your device/emulator.
 Inspecting thread and heap usage.

19
Emulator & Device Debugging

You can run your app on both an emulator and a physical device. Emulators allow you to test on
different Android versions and configurations, while real devices provide insight into how your
app runs on actual hardware.

Memory and CPU Profiler

Android Studio has profiling tools for monitoring app performance:

 Memory Profiler: Helps track memory allocation and identify memory leaks.
 CPU Profiler: Allows you to inspect your app’s CPU usage, thread activity, and method
execution time.

StrictMode

StrictMode is a development tool that detects accidental disk or network access on the main
thread, helping prevent ANRs (Application Not Responding errors).

1.2 Android Testing

Unit Testing

 JUnit: Android supports JUnit 4 for unit testing. Tests are typically written in Java or
Kotlin and are placed in the test/ directory.
 Mockito: This library is often used for mocking dependencies in unit tests.

Example of a unit test using JUnit and Mockito in Kotlin:

20
UI Testing

Espresso: A UI testing framework for Android that allows you to simulate user interactions such
as button clicks, typing, swipes, etc.

Example:

Integration Testing

 Integration tests verify how different parts of your app work together.
 For example, testing if the network layer successfully fetches data and updates the UI.
 Robolectric: A testing framework that runs Android tests inside the JVM without the
need for an emulator or device. This makes it faster than running Espresso tests.

End-to-End (E2E) Testing

End-to-end testing simulates real-world usage scenarios, ensuring the app works correctly across
all layers (UI, business logic, and backend services).

Test Automation

 Firebase Test Lab: Allows you to run your app on real devices in the cloud, testing
across a wide variety of devices and configurations.
 Sauce Labs: Another cloud-based testing platform that provides automated testing across
different devices.

1.3 Continuous Integration (CI) for Android

 GitHub Actions: Allows you to automate testing and builds for your Android project.
 Bitrise: A CI/CD platform designed specifically for mobile development.
 CircleCI and Jenkins: Common CI tools with Android build support.

21
9. Summary
Internshala offers a variety of internships in Android app development for students and fresh
graduates, aimed at providing hands-on experience in mobile application development. Here's a
general summary of what these internships typically involve:

1. Skill Development: Internships focus on teaching core Android development skills,


including Java/Kotlin programming, Android Studio, UI/UX design, APIs, databases
(SQLite, Firebase), and deployment practices. Some internships might also cover
advanced topics like Android Jetpack components, MVVM architecture, and material
design.
2. Work on Real Projects: Interns often work on real-world projects where they build, test,
and deploy Android apps. This helps them learn the full development lifecycle, from
conceptualizing the app idea to publishing it on the Google Play Store.
3. Stipend: Many internships on Internshala offer stipends, typically ranging between
₹5,000 to ₹15,000 per month, although some can be unpaid or offer higher stipends
depending on the complexity of the role and the company.
4. Duration: The internships usually last between 1 to 6 months, allowing candidates to
gain substantial hands-on experience in Android development.
5. Work Environment: Depending on the company, these internships can be remote or on-
site. Remote internships are particularly popular, allowing interns to work from
anywhere.
6. Eligibility: Most Android development internships require a basic understanding of Java
or Kotlin, some experience with Android Studio, and a passion for app development.
Many also prefer candidates who have built at least one app or project independently.
7. Certificate and Job Offers: Interns often receive a certificate upon completion, and
some companies may extend job offers to high-performing interns.

These internships serve as a great platform for students and beginners to kickstart their careers in
mobile app development while enhancing their practical skills.

22
10. About the Company
Internshala is a popular online platform based in India that connects students with internships
across various domains, including technology, business, marketing, design, and more. It was
founded in 2010 with the goal of bridging the gap between students and meaningful internship
opportunities. Here's an overview of what Internshala offers and its impact:

1. Company Mission

Internshala's primary mission is to provide students with a platform where they can easily find
internships to gain practical experience and improve their employability. It aims to create a
supportive ecosystem for young learners by making internships accessible and affordable.

2. Key Services

Internship Listings: Internshala offers thousands of internship opportunities across multiple


industries. These internships are available in both online and offline formats, allowing flexibility
for students.

Job Opportunities: Along with internships, Internshala provides a job platform for fresh
graduates looking to start their careers.

Online Training: Internshala offers skill-building courses in various domains like programming,
digital marketing, data science, Android app development, etc., to help students prepare for
internships and jobs.

3. Internship Categories

23
Internshala covers a wide range of fields, including:

Technical Internships: Software development, web development, Android app development,


data science, machine learning, etc.

Business Internships: Marketing, sales, human resources, and management roles.

Creative Internships: Content writing, graphic design, UI/UX design, video editing, etc.

4. Internship Stipends and Benefits

Most internships listed on Internshala offer stipends, which typically range from ₹5,000 to
₹15,000 per month, though some can be unpaid.

Interns often receive certificates upon successful completion, and there may be opportunities for
full-time employment after the internship period.

5. Platform Reach

Internshala has become one of the leading internship platforms in India, with over 15 million
students and 100,000+ companies having used the platform to connect with each other.

6. Student-Centric Approach

Internshala is designed to cater to students and fresh graduates, making it easy to apply for
internships. The platform also provides free resources like resume-building tools, interview tips,
and career advice to help students succeed.

7. Internshala's Impact

Internshala has transformed the internship culture in India by making internships more
accessible. It has empowered students to gain practical experience in their desired fields, helping
bridge the gap between academic learning and real-world job requirements.

In summary, Internshala is a trusted and widely-used platform that provides valuable internship
opportunities, offering students the chance to gain practical experience, develop skills, and boost
their employability

24
11. Opportunities
Internshala is a popular platform in India for finding internships across a wide range of fields.
Opportunities available on Internshala often include internships in:

1. Technology & Development

 Web Development: Internships in front-end and back-end web development using


technologies like HTML, CSS, JavaScript, PHP, React, Node.js, etc.
 Mobile App Development: Opportunities in Android and iOS development using Java,
Kotlin, Swift, or Flutter.
 Data Science & Machine Learning: Internships involving data analytics, machine
learning, and AI using Python, R, and data visualization tools.

2. Marketing & Sales

 Digital Marketing: Social media management, SEO, content marketing, email marketing,
and more.
 Content Writing: Blogging, copywriting, article writing, and scriptwriting.
 Sales & Business Development: Internships in business outreach, client relations, and
sales strategy.
 Branding & PR: Opportunities to work on branding, public relations, and event planning.

3. Design & Creative Fields

 Graphic Design: Internships involving visual design, UI/UX design, and branding using
tools like Adobe Photoshop, Illustrator, Figma, etc.
 Video Editing & Animation: Opportunities to work with video editing software like
Premiere Pro, After Effects, and motion graphics.
 Interior Design & Architecture: Internships in space planning, drafting, and architectural
design.

4. Finance & Management

 Finance & Accounting: Roles focusing on financial analysis, auditing, accounting, and
budgeting.

25
 Human Resources (HR): Internships related to talent acquisition, employee engagement,
and performance management.
 Operations Management: Process optimization, supply chain management, and logistics.

5. Engineering & Core Fields

 Mechanical, Civil, and Electrical Engineering: Internships for students specializing in


core engineering roles, including product design, CAD modeling, and fieldwork.
 Chemical & Material Science: Opportunities in research, process improvement, and
laboratory work.

6. Law & Legal Internships

 Legal Research: Internships focusing on legal research, drafting, and assisting in


corporate legal procedures.
 Intellectual Property Rights (IPR): Involves research and assistance on patenting,
trademarks, and intellectual property law.

7. Social Work & NGO Internships

Internships with NGOs working in areas like education, environment, health, and human rights.
Tasks might include fundraising, community outreach, and project management.

8. Education & Teaching

 Teaching Internships: Opportunities to teach subjects, provide online tutoring, or assist in


curriculum development for educational startups and schools.
 Research: Internships in academic research, paper writing, and data analysis.

9. Media & Journalism

 Journalism: Reporting, content creation, editorial tasks, and research work.


 Media Production: Internships in radio, television, and podcast production.

10. Entrepreneurship & Startup Roles

Many startups post on Internshala offering internships where you can wear multiple hats—
product management, marketing, business development, etc.

26
12. Training
Internshala offers a wide range of trainings specifically designed to help students and fresh
graduates prepare for internships and jobs. These trainings focus on practical skills that are
highly valued in the job market. Some of the popular categories include:

1. Programming & Coding:


 Web Development (HTML, CSS, JavaScript)
 Python for beginners
 Android App Development (Java, Kotlin)
 Ethical Hacking
 Data Science & Machine Learning
 C/C++ and Java
2. Business & Management:
 Digital Marketing
 Financial Modeling & Valuation
 Business Communication Skills
 Advanced Excel
 Tally
3. Creative Arts & Design:
 Graphic Design
 Video Editing
 Animation
 UI/UX Design
4. Core Engineering:
 AutoCAD
 SolidWorks
 MATLAB
 IoT (Internet of Things)
 Robotics
5. Language & Soft Skills:

27
 Spoken English
 Communication and Public Speaking
 Creative Writing
6. Career Preparation:
 Resume Writing
 Interview Preparation
 Business Etiquette

Internshala offers these trainings in an online format, often bundled with certification upon
completion. They also provide projects and assignments for hands-on experience, making them
useful for those seeking internships in these areas.

28
13. Challenges Faced
Interning via Internshala, while beneficial, can come with certain challenges. Here are a few
common ones:

1. Competition

Since Internshala is widely used, there is often tough competition for popular internships,
making it challenging to stand out.

Solution:

Tailor your resume and cover letter for each application, showcasing skills relevant to the
specific role. Completing certifications or courses related to the internship can also improve your
chances.

2. Unpaid or Low-Paid Internships

Some internships on the platform offer minimal or no stipend, which can be a demotivator for
many candidates.

Solution:

Carefully research the company and consider if the experience will add significant value to your
resume. You may choose to balance a low-paid internship with other opportunities or freelance
work.

3. Lack of Clear Job Description

Occasionally, internship descriptions can be vague, leading to confusion about what you’re
expected to do.

Solution:

Ask clarifying questions during the interview process or reach out to the employer for more
detailed information about your responsibilities.

29
4. Remote Work Challenges

With many internships being remote, there may be difficulties in communication, understanding
work expectations, and time management.

Solution:

Set clear goals and timelines with your supervisor. Use productivity tools, establish regular
check-ins, and maintain open lines of communication.

5. Limited Learning Opportunities

Some internships may focus on repetitive tasks with limited learning potential, leaving you
feeling unchallenged.

Solution:

Proactively seek additional responsibilities, ask for mentorship, or propose new ideas to show
initiative. If the environment is too restrictive, look for internships that prioritize skill
development.

6. Lack of Feedback

You might not always receive the feedback you need to grow professionally.

Solution:

Request regular feedback from your supervisors and ask for constructive criticism on areas
where you can improve.

7. Work-Life Balance

Balancing internships with other commitments, especially if you’re a student, can be tricky.

Solution:

Plan and organize your schedule, setting clear boundaries for work hours while managing
academic or personal commitments.

30
14. Conclusion
Internshala internships in Android app development are generally well-regarded, providing
valuable hands-on experience for learners and those starting in the field. Many users have
highlighted the flexibility in timing and self-paced learning as major advantages, making the
internships accessible to a wide range of students regardless of their schedules.

The Android app development course offered by Internshala typically involves mini-projects,
such as creating basic apps (e.g., calculators or food ordering platforms), which allow students to
apply their skills in real-world scenarios. Participants appreciate that the course materials are
clear, with detailed step-by-step instructions to minimize errors. Completing these projects often
boosts confidence, and students receive certificates upon completion, which can enhance their
resumes.

Overall, Internshala provides a good starting point for those looking to break into Android app
development, combining practical learning with an internship search platform that connects
students to relevant opportunities.

33

You might also like