Skip to content

BahadirKayis/Services

Repository files navigation

Services


It teaches how to use different types of services in conjunction with multi-module architecture.


Medium License API Profile

Video

services.mp4

Permission

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />  SDK <=32
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />  SDK =>33

Tech stack & Open-source libraries

  • Minimum SDK level 24
  • Kotlin based + Coroutines and Flow
  • Android Effect-Event-State(EES) - It is an architectural approach to UI management that organizes the relationship of effects, events and states.
  • Jetpack- It is a collection of libraries, tools and guidelines that simplify and empower Android app development.
    • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
      • Lifecycle - perform an action when lifecycle state changes
      • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
      • UseCases - Located domain layer that sits between the UI layer and the data layer.
      • Repository - Located in data layer that contains application data and business logic.
    • DataStore - It is an important component used to manage data and facilitate data storage operations.
  • Dependency Injection - Is a design pattern that facilitates the management of dependencies and the integration of components in a flexible, testable, and maintainable manner
  • Android Hilt - Dependency Injection Library
  • Broadcasts - It enables receiving information by subscribing to desired broadcasts in the Android system. Here, I used Dynamic Broadcast Receiver to subscribe to the channels "ACTION_SCREEN_OFF" and "ACTION_SCREEN_ON," which indicate events related to the device's screen state, allowing me to listen
  • Sensor Manager - They are components that measure motion, orientation, and environmental conditions, providing raw data with high precision and accuracy.
  • Notification - is a system feature that allows displaying informative messages, alerts, or updates to users.
  • Firebase Crashlytics - is a error tracking and reporting tool used to monitor, report, and analyze crashes and errors in your application.

Dependency graph

License

Designed and developed by 2023 BahadirKayis

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.