Story Blog

Technologies:
Kotlin XML MVVM Architecture Hilt (Dependency Injection) Retrofit OkHttp Gson Glide Paging 3 Navigation Data Binding RecyclerView Coroutines Flow Material Design AdMob ViewPager2
Project Overview

StoryBlog is a modern Android application designed to deliver an engaging storytelling experience to users. The app allows users to browse, read, and discover stories across various categories with a clean, intuitive interface. Built using industry-standard Android development practices and following the MVVM (Model-View-ViewModel) architecture with Clean Architecture principles, the application provides a seamless reading experience with optimized performance and user-friendly navigation.


Technical Architecture

The application follows Clean Architecture with clear separation of concerns across three distinct layers:


Data Layer: Handles all data operations including network requests, data caching, and data transformation

Domain Layer: Contains business logic, use cases, and domain models

UI/Presentation Layer: Manages UI components, view models, and user interactions


Google AdMob: Integrated mobile advertising platform for revenue generation

Banner ads displayed on the main screen

Application Features

1. Home Screen

Banner Slider: Auto-scrolling carousel featuring featured stories with smooth page transitions and scaling effects

Categories Section: Horizontal scrollable list of story categories for quick navigation

Featured Stories: Grid/list view of latest and trending stories

Responsive UI with proper loading states and error handling

2. Category Exploration

Browse stories by category (e.g., Technology, Lifestyle, Entertainment, etc.)

Category-wise story listing with pagination support

Smooth navigation between categories

3. Story Viewing

Single Story View: Detailed story display with rich content

Support for multimedia content including images and YouTube video embeds

User attribution showing story author information

Readable typography and content formatting

4. Profile Section

User profile management

Personalized story recommendations

Reading history and preferences

5. Settings

App configuration options

Theme customization

Content preferences

6. Navigation

Bottom navigation bar for quick access to main sections

Proper back stack management

Smooth transition animations between screens

API Integration

The application connects to a RESTful API backend (https://storyblog.in/api/) with the following endpoints:



Package Structure

com.altaf.storyblog/

├── data/

│ ├── paging/ # Paging sources for paginated data

│ ├── repository/ # Repository implementations

│ └── source/

│ └── remote/

│ ├── api/ # Retrofit API service interfaces

│ └── dto/ # Data transfer objects

├── domain/

│ ├── mapper/ # DTO to domain model mappers

│ ├── model/ # Domain models

│ ├── repository/ # Repository interfaces

│ └── usecase/ # Business logic use cases

├── ui/

│ ├── adapter/ # RecyclerView adapters

│ ├── main/ # Main activity and view model

│ ├── home/ # Home screen components

│ ├── category/ # Category browsing

│ ├── story/ # Story viewing

│ ├── profile/ # User profile

│ └── setting/ # Settings

├── common/

│ ├── base/ # Base classes (Activity, Fragment, ViewModel)

│ ├── extension/ # Kotlin extension functions

│ └── glide/ # Glide configuration

├── binding/ # Data binding adapters

├── di/ # Dependency injection modules

└── StoryBlogApp.kt # Application class


This StoryBlog application represents a modern, scalable Android application built with industry-standard tools and practices, providing users with an enjoyable and performant storytelling experience.