/FoodRecipesApp

Primary LanguageKotlinApache License 2.0Apache-2.0

FoodRecipesApp

Food Recipes app that users can view, fav recipes, and share jokes. I work on improving app architecture.

Screenshots

Tech Stack & Open Source Libraries

  • Minimum SDK level 21
  • %100 Kotlin based
  • Repository pattern is a design pattern that isolates the data layer from the rest of the app.
  • Coroutines for asynchronous programming on Android.
  • Room provides an abstract layer over the SQLite Database to save and perform the operations on persistent data locally.
  • Flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value In coroutines
  • ViewModel class is a business logic or screen level state holder. It exposes state to the UI and encapsulates related business logic
  • LiveData is an observable data holder class.
  • Lifecycle is a class that holds the information about the lifecycle state of a component (like an activity or a fragment) and allows other objects to observe this state.
  • Navigation Component refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within app
  • Retrofit A type-safe HTTP client for Android and Java
  • Dagger Hilt Hilt provides a standard way to incorporate Dagger dependency injection into an Android application.
  • DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers.
  • Jsoup is a Java library for working with real-world HTML. It provides a very convenient API for fetching URLs and extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.
  • Coil An image loading library for Android backed by Kotlin Coroutines.
  • Shimmer Shimmer is an Android library that provides an easy way to add a shimmer effect to any view in your Android app.
  • MotionLayout MotionLayout is a layout type that helps you manage motion and widget animation in your app.
  • ViewBinding is a feature that allows you to more easily write code that interacts with views.
  • Extension Functions Kotlin provides the ability to extend a class or an interface with new functionality without having to inherit from the class or use design patterns