Skip to content

Latest commit

 

History

History
78 lines (61 loc) · 6.64 KB

README.md

File metadata and controls

78 lines (61 loc) · 6.64 KB

WhatsHelp

WhatsHelp is an android application which helps to start WhatsApp chat with numbers that are not saved in contact list.

Features

  • Support for Whatsapp & WhatsApp Business.
  • Option to select number from call history.
  • Detects numbers copied from other applications.
  • Generate WhatsApp chat link.
  • Saves recently opened numbers for reusing.
  • Dark theme support.
  • Auto select country while pasting number with country code.
  • Number formatting according to country.
  • Pre written messages for sending Quick messages.

Screenshots

About this project

WhatsHelp application is built with Modern Android application development tools and libraries. Aim of this project is to showcase Good practice implementation of Android application development with proper architecture design.

The codebase focuses on following key things:

  • Single Activity Design
  • MVVM Architecture with Jetpack libraries
  • Clean and Simple Material UI

Built with

  • MVVM - Recommended architecture for building robust, production-quality apps.
  • Kotlin - Official programming language for Android development.
  • Coroutines - A coroutine is a concurrency design pattern that can be used on Android to simplify code that executes asynchronously.
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • LiveData - Data objects that notify views when the underlying database changes.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
    • DataBinding - A support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
    • Room - SQLite object mapping library.
    • WorkManager - WorkManager is an API that makes it easy to schedule deferrable, asynchronous tasks that are expected to run even if the app exits or the device restarts.
    • Navigation Component Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app.
  • Material Components - Help developers execute Material Design, enable a reliable development workflow to build beautiful and functional Android apps.
  • Constraint Layout - Allows to create large and complex layouts with a flat view hierarchy (no nested view groups).
  • Dagger Hilt - A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection.
  • Gson - A Java library that can be used to convert Java Objects into their JSON representation annd vise versa.
  • Firebase - Google's mobile platform that helps to quickly develop high-quality apps.
  • CountryCodePicker - Provides an easy way to search and select country or country phone code for the telephone number.
  • libphonenumber-android - Android port of Google's libphonenumber.
  • Peko - Android Permissions with Kotlin Coroutines or LiveData.

License

Copyright 2021 Vipin KT

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.