All Projects → ardakazanci → Heyyoo

ardakazanci / Heyyoo

Heyyoo is a sample social media Android application 📱 built to demonstrate use of Modern Android development tools - (Kotlin, Coroutines, Architecture Components, MVVM, Room, Retrofit, Material Components).

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Heyyoo

Github-Trending-Repos
An Android App that lists the most trending repositories from Github.
Stars: ✭ 57 (+50%)
Mutual labels:  android-application, android-studio, repository-pattern, mvvm-architecture
FindTaek
📦 내가 시킨 택배가 어디까지 왔는지 확인해보세요
Stars: ✭ 26 (-31.58%)
Mutual labels:  retrofit2, okhttp3, android-studio, mvvm-architecture
Trailersapp
A simple demo project for The Movie DB based on MVVM clean architecture.
Stars: ✭ 180 (+373.68%)
Mutual labels:  gson, android-studio, mvvm-architecture, repository-pattern
Dowy
🎬Application that displays a list of Movies and Tv Series using Modern Android Application Development tools and API's
Stars: ✭ 29 (-23.68%)
Mutual labels:  gson, android-application, retrofit2, mvvm-architecture
MVVM-Demo
This demo for MVVM Design pattern for android
Stars: ✭ 20 (-47.37%)
Mutual labels:  gson, retrofit2, repository-pattern, mvvm-architecture
Paginglibrary Sample
An open source app that is refactored to demo Paging Library from Android Jetpack
Stars: ✭ 165 (+334.21%)
Mutual labels:  android-studio, mvvm-architecture, android-application
Moviefinderusingmvvm Android
🔥 MVVM + Clean Architecture + Best Practices | 🍿Movie Finder is a sample Android application 📱to search movies using OMDb API which is built to demonstrate use of Modern Android development tools - (Kotlin, Coroutines, Kodein, Architecture Components, MVVM, Retrofit, Gson, Material Components) 😊😊😉
Stars: ✭ 66 (+73.68%)
Mutual labels:  gson, mvvm-architecture, retrofit2
Todo
简洁清爽的Todo清单工具❤️ (MVP+okhttp3+retrofit+gson)
Stars: ✭ 93 (+144.74%)
Mutual labels:  gson, okhttp3, retrofit2
Mifos Mobile
Repository for the Mifos Mobile Banking App for clients
Stars: ✭ 154 (+305.26%)
Mutual labels:  okhttp3, android-application, retrofit2
Phoenix For Vk
Yet another VK client for Android
Stars: ✭ 131 (+244.74%)
Mutual labels:  gson, android-studio, retrofit2
Manime
🍱 An anime app, based on single activity and MVVM architecture.
Stars: ✭ 24 (-36.84%)
Mutual labels:  retrofit2, repository-pattern, mvvm-architecture
Movie Zone
movies application using MVVM Architecture
Stars: ✭ 25 (-34.21%)
Mutual labels:  mvvm-architecture, repository-pattern, retrofit2
Android Inappbilling
A sample which uses Google's Play Billing Library and it does InApp Purchases and Subscriptions.
Stars: ✭ 114 (+200%)
Mutual labels:  android-studio, mvvm-architecture, android-application
Dagger2 Sample
A sample app to demo how to implement dagger in Android using Dagger Android Support library
Stars: ✭ 72 (+89.47%)
Mutual labels:  android-studio, repository-pattern, android-application
Kotlin Android Scaffolding
An android project structure using kotlin and most common libraries.
Stars: ✭ 53 (+39.47%)
Mutual labels:  android-studio, android-application, retrofit2
BakingApp
🍛🍴 This app allows a user to select a recipe and see video-guided steps for how to complete it, showcasing MVVM, Retrofit, ExoPlayer with lifecycle components, Master/Detail Flow, Widgets.
Stars: ✭ 18 (-52.63%)
Mutual labels:  gson, retrofit2, mvvm-architecture
Android Kotlin Mvi Cleanarchitecture
Android + Kotlin + Modularization + Gradle Depedency managment + Gradle written in Kotlin DSL + Custom Gradle Plugin + MVVM + MVI + Clean Architecture + Repository Pattern + Coroutines + Flows + Koin + Retrofit2 + ROOM + Kotlin-Android-Extension + KtLints
Stars: ✭ 187 (+392.11%)
Mutual labels:  mvvm-architecture, repository-pattern, retrofit2
Dagger Examples
Some dagger-android examples with Retrofit2, MVVM architecture, RxJava, (Java)
Stars: ✭ 242 (+536.84%)
Mutual labels:  mvvm-architecture, repository-pattern, retrofit2
NYTimesMostPopularArticles
A simple app to hit the NY Times Most Popular Articles API and show a list of articles, that shows details when items on the list are tapped (a typical master/detail app), also user able to browse/ add articles to favorite list that implements MVVM architecture using Dagger2, Retrofit, Coroutines, LiveData, RoomDatabase, Database Debugging, Data…
Stars: ✭ 38 (+0%)
Mutual labels:  retrofit2, repository-pattern, mvvm-architecture
weather-app-android-mvvm
Simple MVVM practice repository for very very beginners. You don't need to know about Dagger, Coroutine or Rx for understanding MVVM and this project. To check the MVVM Architecture Bengali Tutorial visit my blog site
Stars: ✭ 32 (-15.79%)
Mutual labels:  retrofit2, android-studio, mvvm-architecture

A sample modern Kotlin application - Documentation still under maintenance

CircleCI Codacy Badge codebeat badge CodeFactor Kotlin Version API License

Content

It is an exemplary social media application where users motivate each other.

Architecture components

Ideally, ViewModels shouldn’t know anything about Android. This improves testability, leak safety and modularity. ViewModels have different scopes than activities or fragments. While a ViewModel is alive and running, an activity can be in any of its lifecycle states. Activities and fragments can be destroyed and created again while the ViewModel is unaware.

Passing a reference of the View (activity or fragment) to the ViewModel is a serious risk. Lets assume the ViewModel requests data from the network and the data comes back some time later. At that moment, the View reference might be destroyed or might be an old activity that is no longer visible, generating a memory leak and, possibly, a crash.

The communication between the different layers follow the above diagram using the reactive paradigm, observing changes on components without need of callbacks avoiding leaks and edge cases related with them.

Patterns

  • Repository Pattern - The Repository Pattern is one of the most popular patterns to create an enterprise level application. It restricts us to work directly with the data in the application and creates new layers for database operations, business logic, and the application's UI.
  • Observer Pattern - The observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods.

Usage

Values ​​in Constants.kt file must be filled.

        const val API_URL = "https://sample-node-social-app.herokuapp.com/"
        const val PREF_USER_TOKEN_VALUE = "PREF_USER_TOKEN_VALUE"
        const val PREF_USER_ID_VALUE = "PREF_USER_ID_VALUE"
        const val PREF_USER_TOKEN = "user_token_code.xml" 
        const val ALGOLIA_APPLICATION_ID = "xxxx"
        const val ALGOLIA_SEARCH_ONLY_API_KEY = "xxxxx"
        const val ALGOLIA_ADMIN_API_KEY = "xxxxx"
        const val ALGOLIA_INDEX_NAME = "user-list"

Features

  • Followed - Following System
  • User Search System
  • Content Share(Location,Text) System
  • User Profile System
  • Register - Login System
  • ...

BackEnd

  • NodeJs
  • Mongoose
  • MongoDb

Libraries

  • Retrofit : type-safe HTTP client.
  • Coroutines : managing background threads with simplified code and reducing needs for callbacks.
  • Room Library
  • Lifecycle : perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
  • ViewModel : designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.
  • LiveData : lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
  • Data Binding - allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
  • Navigation
  • Gson : makes it easy to parse JSON into Kotlin objects.
  • Glide : image loading library for Android.
  • CircleImageView
  • EasyValidation
  • Toasty
  • Dexter
  • RxImagePicker
  • Secure-Preferences
  • Algolia - instantsearch
  • Paging
  • Splashy
  • Locgetter
  • ReactiveNetwork
  • Lottie
  • ...

Resources

Projects

This is project is a sample, to inspire you and should handle most of the common cases, but obviously not all. If you need to take a look at additional resources to find solutions for your project, visit these interesting projects:

Libraries

The open-source community create and maintains tons of awesome libraries making your job more easy, giving the opportunity to use them in your developments. Here are a very important collection of them:

Best practices

Avoid reinventing the wheel by following these guidelines:

Codelabs

Google Developers Codelabs provide a guided, tutorial, hands-on coding experience. Most codelabs will step you through the process of building a small application, or adding a new feature to an existing application. They cover a wide range of android concepts to learn and practice:

Thank You

Thank You Sanchit Sharma - Dribble

Logo - FlatIcon

Thank Yoy @nuhkoca for guiding projects and documentation brief descriptions.

Images

Copyright 2019 Arda Kazancı

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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].