Skip to content

sheepdestroyer/materialistic

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Materialistic for Hacker News

Materialistic is a Hacker News client for Android that is built with a clean, modern architecture and a focus on Material Design principles. It uses the official HackerNews/API and Algolia Hacker News Search API to provide a fast, reliable, and feature-rich experience.

Project Overview

Materialistic follows a modular architecture that separates concerns and promotes maintainability. The core components of the application are:

  • Data Layer: The data layer is responsible for fetching and caching data from the Hacker News API and other sources. It uses Retrofit for making network requests and Room for local data persistence.
  • Domain Layer: The domain layer contains the business logic of the application. It is responsible for transforming data from the data layer into a format that is easy for the presentation layer to consume.
  • Presentation Layer: The presentation layer is responsible for displaying data to the user and handling user interactions. It uses the Model-View-ViewModel (MVVM) design pattern to separate the UI from the business logic.

Core Components

The codebase is organized into the following packages:

  • data: Contains the data models, network clients, and local data sources for the application.
  • accounts: Contains classes for managing user accounts.
  • appwidget: Contains classes for implementing home screen widgets.
  • ktx: Contains Kotlin extension functions that are used throughout the application.
  • activities: Contains the activities that make up the application's UI.
  • fragments: Contains the fragments that are used to build the activities' UIs.
  • viewmodels: Contains the ViewModels that are used by the activities and fragments.

Setup

Requirements

  • JDK 21
  • Latest Android SDK tools
  • Latest Android platform tools
  • AndroidX

Dependencies

Build

  1. Clone the repository:
    git clone https://github.com/hidroh/materialistic.git
    
  2. Build the project:
    ./gradlew assembleDebug
    
  3. To build with LeakCanary enabled, run:
    ./gradlew assembleDebug -Pleak
    

Code Style

This project follows the official Kotlin style guide. Please make sure your contributions adhere to these guidelines.

Articles

Screenshots

Contributing

Contributions are always welcome. Please make sure you read Contributing notes first.

License

Copyright 2015 Ha Duy Trung

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

A material-design Hacker News Android reader

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 86.1%
  • JavaScript 10.6%
  • Kotlin 3.2%
  • HTML 0.1%