Skip to content

5 Android applications development with Kotlin — from basic UI to API integration with MVVM architecture

zamirmehdi/Mobile-Programming-Course

Repository files navigation

Mobile Programming Course

📚 Table of Contents

📘 Overview

A collection of 5 Android applications — Personal Card, Hafez Fal, Book Reader, Currency Exchange, and Weather Forecast developed using Kotlin as part of the Mobile Programming course. Each project demonstrates progressive skill development in Android development, from basic UI layouts to advanced features like API integration and MVVM architecture.

Key Features:

  • Native Android development with Kotlin
  • Material Design implementation
  • RESTful API integration (Retrofit)
  • RecyclerView and custom adapters
  • MVVM architecture pattern
  • Responsive UI/UX design

Kotlin Android License

📱 Projects

1. Personal Card

Description: A digital business card application displaying personal information with a clean, professional layout.

Features:

  • Custom UI layout with personal photo
  • Material Design components
  • Profile information display

Key Concepts:

  • XML layouts
  • ImageView and TextViews
  • Basic Android UI components

📁 Path: 1- Personal Card/Personal_card/

Personal Card Screenshot

2. Hafez Fal

Description: Traditional Persian fortune-telling app using Hafez poetry (Fal-e Hafez).

Features:

  • Random poem selection
  • Persian text display
  • Custom splash screen
  • Information page about Hafez

Key Concepts:

  • Multiple activities
  • Intent navigation
  • String resources (Persian language)
  • Random data generation

📁 Path: 2- Hafez Fal/Hafez_Fal/
📦 APK: Available in project folder

Hafez Fal Intro Hafez Fal 1 Hafez Fal 2
Hafez Info Apps List

3. Book Reader

Description: A book catalog application with grid/list view toggle and detailed book information.

Features:

  • RecyclerView with custom adapter
  • Grid and List layout switching
  • Book detail activity
  • Custom card layouts
  • Hardcoded book database

Key Concepts:

  • RecyclerView implementation
  • ViewHolder pattern
  • Intent data passing
  • Menu items (layout switcher)
  • Data classes (Book model)
  • Multiple activities

Sample Books:

  • Deep Work
  • No Excuses
  • The Alchemist
  • The Zahir
  • Parallel Worlds

📁 Path: 3- Book Reader/hw3/
📦 APK: app-debug.apk

Book Reader Grid View Book Reader List View Book Detail
Book Detail 2 Book List Book Grid

4. Currency Exchange

Description: Real-time currency exchange rate application.

Features:

  • Currency conversion calculator
  • Exchange rate display
  • Clean, intuitive UI
  • MVVM architecture pattern

Key Concepts:

  • ViewModel implementation
  • LiveData
  • Data binding
  • MVVM pattern
  • ExchangeViewModel class

📁 Path: 4- Currency Exchange/HW4/
📦 APK: app-debug.apk

Currency Exchange 1 Currency Exchange 2 Currency Exchange 3
Currency Exchange 4 Currency Exchange 5

5. Weather Forecast

Description: Weather forecast application with city search and 5-day forecast display.

Features:

  • City search with autocomplete
  • 5-day weather forecast
  • Weather icons and conditions
  • Temperature display
  • API integration (OpenWeatherMap)

Key Concepts:

  • Retrofit HTTP client
  • RESTful API integration
  • JSON parsing (data classes)
  • RecyclerView with weather cards
  • Dropdown (AutoCompleteTextView)
  • Network permissions
  • Multiple data classes for API response

Components:

  • ApiInterface.kt - API endpoints
  • RetrofitClient.kt - Network client
  • WeatherItemAdapter.kt - RecyclerView adapter
  • Multiple data classes for JSON mapping

📁 Path: 5- Weather Forecast/HW5/
📦 APK: app-debug.apk
🎥 Demo Video: record screen.webm

Weather Forecast Splash Weather Forecast 1 Weather Forecast 2 Weather Forecast 3 Weather Forecast 4 Weather Forecast 5

Weather Forecast 6

🛠️ Technologies Used

Category Technologies
Language Kotlin
Platform Android SDK 33+
Architecture MVVM (Projects 4-5)
UI Material Design, XML Layouts
Networking Retrofit, OkHttp
Data LiveData, ViewModel
Views RecyclerView, CardView
Build Tool Gradle

⚙️ Installation & Setup

Prerequisites

  • Android Studio Arctic Fox or later
  • JDK 11+
  • Android SDK 33+
  • Gradle 7.0+

Clone and Run

# Clone the repository
git clone https://github.com/zamirmehdi/Mobile-Programming-Course.git
cd Mobile-Programming-Course

# Open individual projects in Android Studio
# Navigate to project folder (e.g., "3- Book Reader/hw3/")
# Open in Android Studio and sync Gradle

Running Individual Projects

  1. Open Android Studio
  2. Select File → Open
  3. Navigate to desired project folder (e.g., 3- Book Reader/hw3/)
  4. Wait for Gradle sync to complete
  5. Click Run or press Shift + F10

Installing APKs

Pre-built APK files are available in some project folders:

  • Hafez Fal: HafezFal.apk
  • Book Reader: app-debug.apk
  • Currency Exchange: app-debug.apk
  • Weather Forecast: app-debug.apk

Installation:

adb install path/to/app-debug.apk

🎓 Learning Outcomes

  • Android Fundamentals

    • Activity lifecycle
    • Intent navigation
    • XML layout design
    • Resource management
  • UI/UX Development

    • Material Design principles
    • RecyclerView implementation
    • Custom adapters
    • Responsive layouts
    • Grid and List views
  • Architecture Patterns

    • MVVM architecture
    • ViewModel and LiveData
    • Data binding
    • Separation of concerns
  • Networking

    • RESTful API integration
    • Retrofit configuration
    • JSON parsing
    • HTTP requests
  • Kotlin Programming

    • Data classes
    • Extension functions
    • Lambda expressions
    • Null safety
  • Best Practices

    • Code organization
    • Resource separation
    • ProGuard configuration
    • Testing structure

ℹ️ Project Information

Author: Amirmehdi Zarrinnezhad
Course: Mobile Programming
University: Amirkabir University of Technology (Tehran Polytechnic) - Fall 2022
Repository: zamirmehdi/Mobile-Programming-Course

📧 Contact

Questions or collaborations? Feel free to reach out!

📧 Email: amzarrinnezhad@gmail.com
🌐 GitHub: @zamirmehdi


(back to top)

If you found this project helpful, please consider giving it a star!

Amirmehdi Zarrinnezhad

About

5 Android applications development with Kotlin — from basic UI to API integration with MVVM architecture

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages