Skip to content

gonexwind/our_story

Repository files navigation

Our Story

Our Story is an app to share your stories

OurStory

About

It uses retrofit.

  • Fully functional.
  • Clean and Simple Material UI.
  • It's dark theme 🌗.

📸 Screenshots

Built With 🛠

  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
    • SharedPreferences - Reading and writing key-value pairs.
  • Dependency Injection -
    • Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
    • Hilt-ViewModel - DI for injecting ViewModel.
  • Retrofit - A type-safe HTTP client for Android and Java.
  • GSON - A modern JSON library for Kotlin and Java.
  • GSON Converter - A Converter which uses GSON for serialization to and from JSON.
  • Coil - An image loading library for Android backed by Kotlin Coroutines.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.

Package Structure

com.gonexwind.ourstory         # Root Package
.
├── core                    # Core of the app
|   ├── di                  # Dependency Injection  
|   ├── repository          # Single source of data
│   └── source              # Source of data
|       ├── datasrouce      # Datasource classes
|       ├── model           # Model data classes, both remote and local entities
|       └── remote          # Remote classes
|           ├── network     # Network classes
|           ├── request     # Request classes
|           └── response    # Response classes
|
├── ui                      # UI/View layer
│   └── auth                # Authorization Fragments and ViewModel
|        ├── customview     # Custom view for password edit text
|        ├── signin         # Sign In fragments
|        └── signup         # Sign Up fragments
│   ├── splashscreen        # Splash Screen fragments
│   └── story               # Story Fragments and ViewModel
|       ├── add             # Add Story fragments
|       ├── detail          # Detail Story fragments
|       └── list            # List Story fragments
└── utils                   # Utility Classes / Kotlin extensions