Shainiha Intern Report
Shainiha Intern Report
INTERNSHIP REPORT
Submitted by
SHREE SHAINIHA JS
(113022205098)
BACHELOR OF TECHNOLOGY
In
INFORMATION TECHNOLOGY
APRIL 2025
VEL TECH HIGH TECH
Dr RANGARAJAN Dr SAKUNTHALA ENGINEERING COLLEGE
An Autonomous Institution
BONAFIDE CERTIFICATE
SIGNATURE SIGNATURE
Mrs. S. NITHYA, M.E., Dr. M. MALLESWARI, M.E, Ph.D.,
SUPERVISOR HEAD OF THE DEPARTMENT
ASSISTANT PROFESSOR PROFESSOR
Department of Information Technology Department of Information Technology
Vel Tech High Tech Dr. Rangarajan Vel Tech High Tech Dr. Rangarajan
Dr. Sakunthala Engineering College. Dr. Sakunthala Engineering College.
1 INTRODUCTION 5
2 WORKING PROCESS 19
4 PROJECT 26
6 CONCLUSION 27
ABOUT THE COMPANY
1.5.2 Java:
1.5.3 Kotlin:
CHAPTER 2
WORKING PROCESS
The frontend is then coded using Kotlin or Java to manage user interactions,
linking UI elements to backend logic such as event handling, data validation,
and asynchronous tasks. During this phase, the app may need to integrate
local databases (like SQLite or Room) for data storage or cloud-based
services (such as Firebase) for real-time data synchronization and user
authentication. Parallelly, the backend logic is developed to handle API calls,
process data, and manage interactions with external servers or cloud
platforms. Once both the frontend and backend are functional, the app
undergoes rigorous testing to ensure its usability, performance, and security.
Unit testing, UI testing, and integration testing are performed to identify and
resolve any bugs or issues. After successful testing, the app is prepared for
deployment on the Google Play Store or other distribution platforms.
Throughout the process, developers at NSIC follow an iterative and agile
development model, constantly refining the app based on feedback and
emerging requirements, ensuring that the final product meets industry
standards and is fully functional.
Fig 2.2 – Mobile App Development Process
CHAPTER 3
Android offers several built-in security features to protect users and their
data. These include app sandboxing, where each app operates in its own
isolated environment, preventing it from accessing data from other apps.
Android also supports data encryption, ensuring that sensitive information
stored on devices is kept secure. Permissions are another key security feature
—users must grant explicit permission for apps to access system resources,
such as location, camera, or contacts. Additionally, Google Play Protect scans
apps for malware, helping prevent malicious apps from reaching the devices.
These security measures make Android a secure platform for both users and
developers.
CHAPTER 4
PROJECT
The output will display an image viewer interface where users can view images,
zoom in/out, and swipe between them seamlessly. It ensures a smooth,
responsive experience with optional captions and action buttons for enhanced
interactivity.
Fig 4.2 – Image view with left right switching option
4. 4 DESCRIPTION:
Header: Displays the app's name or section title (e.g., "Gallery Viewer") for
clear identification.
Title: Shows a brief description or name of the current image being displayed.
Loading Indicator: Shows a Progress Bar while images are being loaded from a
server or storage.
The Image View and switch interface includes features like a header and title
for identification, swipe gestures for navigating between images, and pinch-to-
zoom for enhanced viewing. It displays images in a responsive format with
optional captions for context.
CHAPTER 5
5.1LIFECYCLE:
The Activity Lifecycle in Android refers to the various states an activity goes
through, from its creation to its destruction. Each activity follows a well-defined
lifecycle with methods such as onCreate(), onStart(), onResume(), onPause(),
onStop(), and onDestroy(), allowing developers to manage resources and handle
user interactions effectively. Understanding these methods ensures proper
resource management, such as saving data when an activity is paused or
releasing resources when it is stopped, ultimately providing a seamless
experience for the user.
5.2STATES:
Managing the state of an activity through lifecycle methods is critical for
maintaining a consistent user experience, especially when activities are paused
or destroyed due to system resource constraints or user navigation. Methods like
onSaveInstanceState() and onRestoreInstanceState() allow developers to save
and restore data across configuration changes, such as screen rotations. Properly
handling state ensures that user data is not lost, and the app continues from
where the user left off, providing a smooth, uninterrupted experience.
5.3INTENTS
Intents are essential for navigating between activities in an Android app. An
explicit intent directly specifies the target activity, while an implicit intent
allows Android to choose the appropriate activity based on the desired action.
By passing data through intents using methods like putExtra() and retrieving it
with getIntent(), developers can seamlessly transfer data between activities.
This facilitates easy and dynamic navigation, such as moving from one screen
to another and handling user-driven interactions.
FRAGMENTS:
Fragments in Android provide modular and reusable components for managing
UI. Each fragment has its own lifecycle, closely linked to the activity that hosts
it. Key fragment lifecycle methods, such as onCreateView(), onStart(), and
onDestroyView(), ensure that developers can manage UI elements and
resources effectively as the fragment enters or exits the foreground. Fragment
navigation is typically handled using FragmentTransaction, which allows
dynamic changes to the UI, such as adding, removing, or replacing fragments
based on user interactions, enabling flexible and responsive UI designs.
BACKSTACK:
The back stack is a key feature in Android that keeps track of activities and
fragments in reverse order as the user navigates through them. The system
automatically manages the back stack when the user presses the back button,
popping the top activity or fragment. Developers can modify the back stack
behavior using FragmentTransaction.addToBackStack() or by using specific
flags with Intents, allowing for more control over activity and fragment
navigation. Proper management of the back stack ensures that the app behaves
as expected when navigating through different screens and ensures smooth user
experiences.
PASSERS:
When navigating between activities, passing data is an essential part of app
functionality. Android provides Intents to send and receive data between
activities. By using methods like putExtra() to add data to an intent and
getStringExtra() or getIntExtra() to retrieve it, developers can easily share data
across activities. For complex data, developers can use Parcelable or
Serializable interfaces to serialize objects and pass them through intents.
Efficient data handling ensures that the necessary information is available in
each activity, enhancing app interactivity and functionality.
NAVIGATIONS:
In more complex applications, Fragments are often used instead of activities to
create flexible and modular UIs. The Navigation Component simplifies
navigation by managing fragment transactions, ensuring smooth transitions
between fragments, and handling the back stack automatically. Developers can
use a NavController to navigate between fragments, and Safe Args ensures
type-safe data passing. This component reduces boilerplate code and provides a
consistent navigation experience, streamlining app architecture and enhancing
maintainability while improving user interactions.
CHAPTER – 6
CONCLUSION
Throughout the internship at NSIC, the experience of developing Android
applications using Android Studio has been invaluable in understanding the
end-to-end process of mobile app development. From mastering the Activity
Lifecycle to managing Fragments and implementing intuitive navigation
systems using Intents, the internship provided a comprehensive understanding
of Android development. Working on a variety of apps, such as List Apps, Web
Views, Calendars, Games, and Music Apps, enabled the application of core
concepts like state management, back stack handling, and data passing between
components. The hands-on exposure to Fragments, Navigation Components,
and Back Stack Management helped in creating dynamic, flexible, and user-
friendly interfaces that adapt to different user interactions and device
configurations.
The internship also allowed for a deeper understanding of the Android API and
how to integrate various functionalities such as SMS, Autocomplete,
Checkboxes, and Tic-Tac-Toe games. Furthermore, the integration of UI
elements like Spinners, Buttons, and Text Views in different activities added
another layer of customization and complexity to the projects. Learning how to
handle different data types with Intents, Bundles, and Shared Preferences has
been crucial in enhancing app functionality, ensuring that data is managed
efficiently and passed across different components seamlessly. The use of
Android Studio as the primary development environment also helped sharpen
skills in debugging, testing, and optimizing apps. Overall, the internship has
been an enriching experience, combining theoretical learning with practical
exposure, which will undoubtedly aid in the development of more advanced and
efficient Android applications in the future.