This assignment gives you basically a post list and its detail with comments.πŸš€

Overview

Android Assignment

πŸ“œ Description

This assignment gives you basically a post list and its detail with comments.

πŸ“± Features

  • Users can see random post list.
  • Users can see the comments of the post.

πŸ“Έ Screenshots

Splash Screen Post List Screen Post Detail Screen
Error Screen Missing Data Screen

πŸš€ What the project uses ?

πŸ“ Package Structure

com.okanaydin.assignment    # root package
.
|
β”œβ”€β”€ data
β”‚   ── remote                 # api calls
β”‚     └── models	      # response model
β”‚     └── remote data source  # data source
|
β”œβ”€β”€ features
β”‚   └── core                  # resource handling
β”‚                 
β”‚   └── feature1              # post list
β”‚     └── di                  # dependency Injection
β”‚     └── repository          # repository
β”‚     └── ui                  # fragments, viewModel, viewState, adapters
β”‚     └── usecase             # use case
.

✍️ GitHub Projects

I have created issues for the defined requirements such as features, improvements, and bugs to assign myself and track those issues on the board. Basically, there are three columns which are In-Progress, To-Do, and Done.

πŸƒβ€β™‚οΈ GitHub Action

I have implemented GitHub Action for this project and when you create a new pull request it goes to build the project automatically if there is a problem in your build time you can easily see the issue.

License

Copyright 2021 The Android Open Source Project

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

    https://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.
Comments
  • fix some minor issues

    fix some minor issues

    • move BaseFragment to the core package
    • @path(id) is should be non-null in Post Service
    • change variables with 'val' in the data classes, you don't need to re-assignee those
    • change the naming for 'PostDetailRepository' , 'PostDetailUseCase', 'CommentsDiffUtil' and check the other ones
    • create PostViewState
    • @Inject your adapters in Fragments
    • add @androidentrypoint for Splash Screen
    • ViewState classes should be taken non-null parameters
    • change the naming for functions because some of them are not consistent
    bug 
    opened by okanaydin 0
  • fix some minor bugs

    fix some minor bugs

    • move BaseFragment to the core package
    • @Path(id) is should be non-null in Post Service
    • change variables with 'val' in the data classes, you don't need to re-assignee those
    • change the naming for 'PostDetailRepository' , 'PostDetailUseCase', 'CommentsDiffUtil' and check the other ones
    • create PostViewState
    • @Inject your adapters in Fragments
    • add @AndroidEntryPoint for Splash Screen
    • ViewState classes should be taken non-null parameters
    • change the naming for functions because some of them are not consistent
    bug 
    opened by okanaydin 0
  • fix refactoring needs

    fix refactoring needs

    • move BASE_API_URL to Gradle file
    • set build type for Http Logging Interceptor if it is on prod variant don't send logs
    • remove FrameLayout from the activity_main.xml if you don't need to set anything else
    • use web-p format for the image if you can find this format
    • move 'click listener' to 'init' in view holder
    • change the naming 'photoDataSource' with 'photoRemoteDataSource'
    • set an app icon
    • remove Glide implementation
    improvement 
    opened by okanaydin 0
  • improvement project

    improvement project

    • update splash screen with animation listener
    • update recyclerview with ListAdapter
    • implement moshi
    • check whole error states and create view state for post screen
    • update view models
    • update naming for data source
    improvement 
    opened by okanaydin 0
  • Feature/Post detail

    Feature/Post detail

    • add new end-point for comments
    • implement data-source for comments
    • create a new repository for comments
    • create use-case for comments
    • create viewModel for comments
    • pass data from PostList to the detail page with safeArgs
    • create an adapter for comments
    feature 
    opened by okanaydin 0
  • Feature/Post-List

    Feature/Post-List

    • implement required libraries for fetching data from the remote server
    • refactoring remote data sources
    • add an api layer for services
    • prepare data source for the posts and photos
    • create repository for post list
    • create post module
    • create remote data module
    • create generic resource for the data status
    • create use-case for post list
    • create viewmodel for post list
    • refactoring to naming for response models
    • pass the data from viewModel to Activity and fix some minor issues
    feature 
    opened by okanaydin 0
Owner
Okan AYDIN
Android Developer @citizenme
Okan AYDIN
This project is basically PowerNukkit but just in Kotlin (check out the original PowerNukkit source here: https://github.com/PowerNukkit/PowerNukkit)

Introduction Nukkit is nuclear-powered server software for Minecraft: Pocket Edition. It has a few key advantages over other server software: Written

Chrones 5 Jul 7, 2021
Desenvolvimento de um CRUD sabendo lidar com requisiçáes GET, POST, PUT e DELETE. E CAMADA DE PERSISTENCIA

API-REST-com-Kotlin-e-Spring-Boot Aprendemos nesse projeto: Parte 1 - DESENVOLVIMENTO WEB 1- Criação de classes de domínio que representam os recursos

Marcello Eduardo 4 Aug 9, 2021
Assignment Trending With Kotlin

Trending Repositories For Clone https://github.com/Himanshu-18/Assignment_Trending.git API Since there is no official API for Trending Repositories (i

null 0 Nov 21, 2021
SPHTech Android Applications Assignment

SPHTech This is the project for SPHTech Android Applications Assignment, where I have to create a native Android application to display the amount the

Mohammad Rezania 0 Nov 23, 2021
Text-array-process - A home assignment used during the recruitment process at Lumera

Rules to implement class={isogram|palindrome|semordnilap} maxlength=<INT> minl

Mầu Tiến Đoàn 0 Jan 27, 2022
To-Do-List - Create a To Do List-style App from scratch and drive the entire development process using Kotlin

To-Do-List! Crie um App no estilo "To Do List" do zero e conduza todo o processo

River Diniz 0 Feb 14, 2022
Map-vs-list-comparator - The project compares the time needed to find a given element in a map vs the time needed to find a given element in a list.

Map vs List Comparator The project compares the time needed to find a given element in a map vs the time needed to find a given element in a list. To

null 0 Jan 4, 2022
A backend service that generates a random 32-chars length message and its sha256 hashcode and put them to DB

This is an Android application in which a user can ask the server to generate a random message and its sha256, and ask to obtain this info from the server.

Iskander 1 Nov 20, 2022
This repository contains RabbitMQ Protobuf starters with its usage samples for spring-rabbit and spring-cloud-starter-stream-rabbit modules

This repository contains RabbitMQ Protobuf starters with its usage samples for spring-rabbit and spring-cloud-starter-stream-rabbit modules

Maksim Kostromin 2 Nov 29, 2021
An attendance recorder app for teachers. Its a part of Android Study Jams 2021 @ GDSC-NITA

Attendance-Pad An attendance recorder app for teachers, build for Android using Kotlin. This project is a part of Andoird Study Jams 2021 @ GDSC-NITA.

Developer Student Clubs - NIT Agartala 2 Jun 23, 2022
An Android Image compress library, reduce's the size of the image by 90% without losing any of its pixels.

Image Compressor An Android image compress library, image compressor, is small and effective. With very little or no image quality degradation, a comp

Vinod Baste 11 Dec 23, 2022
This just checks what architecture an installed application is using for its libraries.

Architecture Checker This just checks what architecture an installed application is using for its libraries. About Recently, I've seen that many peopl

Rev 11 Jan 31, 2023
App with plant list 🌱 , the app reminds you when to water πŸ’¦ your best plant at a certain time.

Plant Life App with plant list ?? , the app reminds you when to water ?? your best plant at a certain time.. Table of Contents Introduction Features U

Haya Saud Alrawdhan 0 Jan 6, 2022
An application to follow popular movies and tv series and create watch list

MoviesAndTV MoviesAndTV is an application to follow popular movies and tv series and create watch list from your favorite tv series and movies. Also y

Elvan Erdem 3 May 25, 2022
A simple store project that includes a list of products, search on products, details of the product, and review submission.

AdidasTest A simple store project that includes a list of products, search on products, details of the product, and review submission. Summary Technol

Mohammad 5 May 8, 2021
myMaps displays a list of maps, each of which show user-defined markers with a title, description, and location.

My Maps Trevor Carrell myMaps displays a list of maps, each of which show user-defined markers with a title, description, and location. The user can a

null 0 Nov 1, 2021
This prototype app provides a list of events to be held under an organization (school, college, club, etc.) and the users can manually set event reminders at their scheduled time so that they do not miss an event.

E-CELL NITS Sample App This prototype app provides a list of events to be held under E-Cell NIT Silchar (for example, Srijan 2.0) and the users can ma

Ritam Nath 1 Nov 7, 2021
An Android app consuming Pixabay API to search and display list of images, built with MVVM pattern

Images An Android app consuming Pixabay API to search and display list of images, built with MVVM pattern as well as Architecture Components. Min Api

Ronnie Otieno 8 Sep 21, 2022
BooksApp - Show the books list from an API with using retrofit2, picasso and JSON libraries

BooksApp Books App Show the books list from an API with using retrofit2, picasso

null 0 Jan 3, 2022