Skip to content

Smart Mirror App on your Android devices. Turn your tablet into smart mirror!

Notifications You must be signed in to change notification settings

susnil/FutureMirror

Repository files navigation

Future Mirror

Smart Mirror App

The app can show the viewer different kinds of information in the form of widgets, such as calendar, name days and news updates.

Firstly, choose your language.

Choose your language

ENGLISH POLISH

There are instructions on how to get started, and you will see a demo of the app in the screenshots.

How to build

./gradlew clean assembleDebug

Done

  1. Install dependency injection(dagger)
  2. Splash screen with icon fade out effect
  3. Name days in Poland
  4. Monthly agenda of name days
  5. Find name days
  6. Find news api
  7. Check how PagingData is working
  8. Add junit tests for use cases, viewmodel tests
  9. Dashboard personalization
  10. Use datastore for user settings

Future ideas

  1. Add draggable element
  2. Adapt name days strategy for update data structures without lose data from the app. The roadmap's strategy: database.adoc

Technology stack

  • Kotlin - Kotlin is a programming language that can run on JVM. Google has announced Kotlin as one of its officially supported programming languages in Android Studio; and the Android community is migrating at a pace from Java to Kotlin
  • Dagger Hilt - A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project
  • Jetpack Compose - Jetpack Compose is Android’s recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
  • Kotlin Flow - In coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value. For example, you can use a flow to receive live updates from a database.
  • Timber - A logger with a small, extensible API which provides utility on top of Android's normal Log class.
  • Kotlin Coroutines - A concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
  • Material Design 3 - Modular and customizable Material Design UI components for Android
  • Retrofit - Retrofit is a REST Client for Java and Android by Square inc under Apache 2.0 license. Its a simple network library that used for network transactions. By using this library we can seamlessly capture JSON response from web service/web API.
  • Paging - The Paging library helps you load and display pages of data from a larger dataset from local storage or over network. This approach allows your app to use both network bandwidth and system resources more efficiently.
  • Navigation Components - Navigation refers to the interactions that let users navigate across, into, and back out from the different pieces of content within your app.
  • Viewmodel - The ViewModel class is designed to store and manage UI-related data in a lifecycle conscious way
  • JUnit - JUnit is a simple framework to write repeatable tests.
  • Mockk This is a mocking library for Kotlin.
  • Robolectric - Robolectric is a framework that brings fast and reliable unit tests to Android.
  • Espresso - Android UI tests
  • Room - The Room persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.

About

Smart Mirror App on your Android devices. Turn your tablet into smart mirror!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages