Weather application built with kotlin

Overview

Weather App - Android Technical Task

👉 Video Demo for this task on youtube 👈

Weather application

  • Created android screen that has search bar on top.
  • Detected current location of the customer.
  • Using https://openweathermap.org/api. Current weather data web service to provide all the necessary data.
  • All permissions is properly handled .
  • There are no restrictions on use of external libraries.

Project Dependency Graph

  • App module depend on core + feature search current weather + library location tracker : contains app start point it may be a splash screen.
  • Core module depend on nothing : contains all sharable data among different modules.
  • Feature Search current weather Module depend on core + library location tracker : contain search weather feature related ui and other staffs.
  • Library location tracker depend on core : contain code of getting current user location.

Use domain specific langauge

  • Make gradle scripts easy
  • Support Kotlin for better dependencies management by Using Domain-Specific Languages.
  • Support autocomplete

Modular architecture

  • Speeds up builds
  • Enable on demand delivery
  • Simplify development
  • Reuse modules across apps
  • Experiment with new technologies
  • Scale development teams
  • Enables refactoring
  • Simplifies test automation

MVVM Inside each module

  • each developer inside android team has a free to select suitable architecture for his module.

Dependency injection with Hilt

  • Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in our project.

Enable AppCenter Pipelines

  • Support CI so i can check different stages like build and run unit test before merge any branch to master branch.

Detekt

  • to make code style analysis and be sure follow best practice for writing kotlin code.

Firebase crashlytics

  • to rack bugs even though app moved to production

To avoid 64k functions problem and get smaller apk

  • Enables code shrinking, obfuscation, and optimization for only
  • Enables resource shrinking, which is performed by the

Data binding

  • The Data Binding Library automatically generates the classes required to bind the views in the layout with your data objects.

leakCanary

  • to detect memory leak through debugging process that will improve app performance as well.

Truth For unit test its recommended from google

Reactive programming (Coroutines)

Coroutines is Google recommended solution for asynchronous programming on Android. Noteworthy features include the following:

  • Lightweight: You can run many coroutines on a single thread due to support for suspension, which doesn't block the thread where the coroutine is running. Suspending saves memory over blocking while supporting many concurrent operations.
  • Fewer memory leaks: Use structured concurrency to run operations within a scope.
  • Built-in cancellation support: Cancellation is propagated automatically through the running coroutine hierarchy.
  • Jetpack integration: Many Jetpack libraries include extensions that provide full coroutines support. Some libraries also provide their own coroutine scope that you can use for structured concurrency.

PermissionsDispatcher

PermissionsDispatcher provides a simple annotation-based API to handle runtime permissions.

  • Fully Kotlin/Java support
  • Special permissions support
  • 100% reflection-free

License

Copyright [2021] [Mostafa Anter]

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.
You might also like...
An e-commercial application built as a technological demonstration.
An e-commercial application built as a technological demonstration.

Overview An e-commercial application built as a technological demonstration. The purpose of this app is to get an experience from creatinig architectu

AnKunv2 is an Android application built with Jetpack Compose to stream anime on demand.
AnKunv2 is an Android application built with Jetpack Compose to stream anime on demand.

AnKunv2 AnKunv2 is an app a bit similar to YouTube but to stream anime. Updated from AnKun using Jetpack Compose. Tech Stack Kotlin AndroidX UI - Jetp

A sample skeleton backend app built using Spring Boot kotlin, Expedia Kotlin Graphql, Reactive Web that can be deployed to Google App Engine Flexible environmennt

spring-kotlin-gql-gae This is a sample skeleton of a backend app that was built using: Spring Boot(Kotlin) Reactive Web Sprinng Data R2DBC with MYSQL

Amazing and easy to use Accordion Library for Android built with kotlin
Amazing and easy to use Accordion Library for Android built with kotlin

AccoLib An easy-to-use, amazing Accordion Library for Android built with kotlin. It reduces the amount of code needed to make Accordions in android, w

A Zero-Dependency Kotlin Faker implementation built to leave you fully satisfied

Satisfaketion A Zero-Dependency Kotlin Faker implementation built to leave you fully satisfied 😏 ... With your fake data How to Install 🚀 Satisfaket

Blog Backend Api built with Kotlin, Springboot and AWS

Kotlin, Spring Boot, MySQL, JPA, Hibernate Rest API for Blogs A Restful CRUD API using Kotlin, Spring Boot, Mysql, JPA and Hibernate hosted on AWS Ela

FirestoreCleanArchitectureApp is an app built with Kotlin and Firestore that displays data in real-time using the MVVM Architecture Pattern. For the UI it uses Jetpack Compose,  Android's modern toolkit for building native UI.
FirestoreCleanArchitectureApp is an app built with Kotlin and Firestore that displays data in real-time using the MVVM Architecture Pattern. For the UI it uses Jetpack Compose, Android's modern toolkit for building native UI.

FirestoreCleanArchitectureApp FirestoreCleanArchitectureApp is an app built with Kotlin and Cloud Firestore that displays data in real-time using Andr

EYLock App Built With Kotlin

EYLock Video Link : https://youtu.be/JfsFKS6zRmo Installation After clone the repo to your local or download it as a zip, you can open the project by

Spring Boot built using Kotlin, H2, Postgres, Hibernate and JPA

Spring-Boot-Kotlin-Sample Spring Boot built using Kotlin, H2, Postgres, Hibernate and JPA Getting Started Reference Documentation For further referenc

Owner
Mostafa Anter
Senior Native Android Developer 😎 who develop high-performance apps ✌🏼👍
Mostafa Anter
Console Weather App With Kotlin

ConsoleWeatherApp Описание Данный сервис позволяет получить текущее состояние погоды в выбранном городе. Использование Сервис может быть запущен со сл

Danil Medvedev 0 Jan 4, 2022
A Weather App Using Kotlin And openweathermap

Code95 Android Task - Weather app Requirements Create a simple mobile application that: Utilize a weather API (http://openweathermap.org/API for examp

Ali Al Fayed 13 Oct 29, 2022
An Android app built with Kotlin, consuming StarWars API to display characters of the popular StarWars Movie. It is built with the MVVM pattern and the latest Jetpack components.

StarWars An Android app built with Kotlin, consuming StarWars API to display characters of the popular StarWars Movie. It is built with the MVVM patte

Joel Kanyi 42 Nov 20, 2022
Koltin Multplatform Project that interacts with a GraphQL server to display golf scores, player and weather information.

GolfScoresKMM Koltin Multplatform Project that interacts with a GraphQL server to display golf scores, player and weather information. The app is setu

Mohit 15 Oct 21, 2022
📒 NotyKT is a complete 💎Kotlin-stack (Backend + Android) 📱 application built to demonstrate the use of Modern development tools with best practices implementation🦸.

NotyKT ??️ NotyKT is the complete Kotlin-stack note taking ??️ application ?? built to demonstrate a use of Kotlin programming language in server-side

Shreyas Patil 1.4k Dec 26, 2022
Shreyas Patil 2.2k Jan 4, 2023
An Intentionally designed Vulnerable Android Application built in Kotlin.

?? InsecureShop InsecureShop is an Android application that is designed to be intentionally vulnerable. The aim of creating this app is to teach devel

Optiv Security 212 Dec 24, 2022
A complete Kotlin application built to demonstrate the use of Modern development tools with best practices implementation using multi-module architecture developed using SOLID principles

This repository serves as template and demo for building android applications for scale. It is suited for large teams where individuals can work independently on feature wise and layer wise reducing the dependency on each other.

Devrath 11 Oct 21, 2022
An e-commerce mobile application built using Android Studio + Java + Firebase.

E-Commerce An e-commerce mobile application built using Android Studio + Java + Firebase. Login for : [email protected] 123456 Screenshots of the app : L

Nisa Efendioğlu 4 Aug 5, 2022
The WeeBe application is a social media-type app built on Ktor framework

The WeeBe application is a social media-type app built on Ktor framework that allows users to exchange various content connected with mental health, motivation, psychology, and improving oneself. Users can share posts with texts, images, videos, and links, as well as discuss the content in the comment section

Perpetio 3 Aug 5, 2022