A curated collection of 10 hands-on Android applications exploring core framework components and UI patterns
Lab Partner: @MNK-21
This repository documents my journey through Android application development during the 6th semester Android Java Development Lab at Farook College. Each program is a self-contained Android Studio project designed to demonstrate specific framework capabilities, from basic UI components to complex user interaction patterns.
These programs represent both practical lab exercises and theoretical coursework, providing a comprehensive foundation in native Android development using Java.
|
Foundation & UI Components |
Visual & Input Controls |
Objective: Implement lightweight, non-intrusive user feedback
Key Concepts: Toast API, message duration, positioning
Use Case: Displaying transient status messages without disrupting user flow
Objective: Build a simple calculator for adding two numbers
Key Concepts: Event handling, input validation, arithmetic operations
Components: EditText, Button, TextView, number parsing, error handling
Objective: Master inter-activity communication
Key Concepts: Intent, activity lifecycle, back stack management
Skills: Activity transitions, navigation patterns, starting new activities
Objective: Programmatic text manipulation between view components
Key Concepts: View references, text getters/setters, EditText to TextView copying
Pattern: Basic UI synchronization and text transfer
Objective: Apply background colors using XML resources
Key Concepts: android:background attribute, color resources (colors.xml)
Application: Declaring UI styles via layout attributes
Objective: Apply background images using Drawable resources
Key Concepts: android:background attribute, drawable resources, ImageView vs Background
Technique: declarative UI styling using XML assets
Objective: Inline date and time selection widgets
Key Concepts: DatePicker, TimePicker, OnDateChangedListener, OnTimeChangedListener
Components: Month/day/year selectors, hour/minute controls, event handling
Objective: Multi-select input mechanism (Qualification Selector)
Key Concepts: CheckBox, state management, conditional logic
Pattern: Independent boolean selections, aggregating multiple user choices
Objective: Mutually exclusive option selection (Gender Selector)
Key Concepts: RadioButton, RadioGroup, OnCheckedChangeListener
Pattern: Form inputs requiring exactly one choice
Objective: Transfer data between different activities
Key Concepts: Intent extras, putExtra(), getIntent(), data serialization
Skills: Inter-activity communication, passing user input (e.g., name) to a second screen
| Component | Technology |
|---|---|
| Language | Java |
| Framework | Android SDK |
| IDE | Android Studio (Kotlin DSL) |
| Build System | Gradle 8.x |
| Version Control | Git |
| UI Toolkit | Android Views & Widgets |
Each project follows standard Android application structure:
ProjectName/
βββ app/
β βββ src/
β β βββ main/
β β β βββ java/com/example/projectname/
β β β β βββ MainActivity.java
β β β βββ res/
β β β β βββ layout/activity_main.xml
β β β β βββ values/strings.xml
β β β β βββ values/colors.xml
β β β β βββ drawable/
β β β βββ AndroidManifest.xml
β β βββ test/
β βββ build.gradle.kts
βββ gradle/
β βββ wrapper/
βββ build.gradle.kts
βββ settings.gradle.kts
βββ gradle.properties
β Android Studio Hedgehog | 2023.1.1+
β JDK 11 or JDK 17
β Android SDK Platform 33+
β Gradle 8.0+
# Clone the repository
git clone <repository-url>
cd Sem-6-Android_Studio_Programs
# Open individual project in Android Studio
# File β Open β Select project directory (e.g., "01-Implement Toast")
# Sync Gradle
# Android Studio will automatically trigger Gradle sync
# Run on emulator or physical device
# Click Run βΆοΈ or press Shift+F10- Minimum SDK: API 21 (Android 5.0 Lollipop)
- Target SDK: API 33 (Android 13)
- Recommended: API 30+ for best compatibility
Upon completing these programs, you will have mastered:
- Activity lifecycle and task management
- Intent-based navigation and data passing
- Resource management (layouts, strings, drawables)
- Event-driven programming model
- XML layout design and view hierarchy
- Material Design component implementation
- Responsive layouts and constraint systems
- User input handling and validation
- Model-View-Controller (MVC) fundamentals
- Adapter pattern for data binding
- Observer pattern for state management
- Component lifecycle awareness
- Code organization and separation of concerns
- Null safety and defensive programming
- Resource optimization and memory management
- Debugging and testing strategies
Projects are numbered sequentially following the lab syllabus. Each is fully independent with its own:
- Complete Android Studio project structure
- Self-contained resources and assets
- Dedicated
build.gradle.ktsconfiguration - Standalone execution capability
No dependencies exist between projects β run any program individually without prerequisite setup.
All programs adhere to:
- β Android development guidelines
- β Java naming conventions (camelCase for methods, PascalCase for classes)
- β Inline documentation and comments
- β Logical code organization
- β Error handling and edge case management
Lab Partner: @MNK-21
These programs were developed collaboratively as part of our academic lab coursework.
Institution: Farook College
Program: Bachelor of Science in Computer Science
Semester: 6
Course: Android Java Development Lab
Academic Year: 2025-2026
This repository serves as both coursework submission and a portfolio of Android development fundamentals.
- Farook College Computer Science Department
- Android Developer Documentation Team
- Lab instructors and mentors
- @MNK-21 for collaborative development
For questions, discussions, or collaboration opportunities:
- π Issues: Use the GitHub issue tracker
- π¬ Discussions: Open a discussion thread
- π Pull Requests: Improvements and suggestions welcome