Giter VIP home page Giter VIP logo

zipcodeapi's Introduction

ZipCodeApi

App to calculate distances, radius, and locations for US zip codes and CA postal codes.

zip code by radius

Created a feature module to maintain functionality related to searching for zipcodes by radius. When th app is opened, app module will start the "ZipcodeByRadiusActivity" activity of the module.

We initially disable the Search button until user provides the zipcode and radius. Once user provides the details they can click search to see list of items. We show a loading indicator till the response is obtained.

Once the response is obtained and success, if data is available, we show list of data. If empty, we show a snack bar saying no zipcodes nearby. If error, we show an error snackbar saying that something went wrong.

Bindable Adapter

It uses the Data Binding concept which helps to show different view types in a single recyclerview.

Concepts/Libraries being used

  • Mvvm with Repository and Data Binding.
  • Retrofit:For Network Handling
  • Gson: For Serialization and Deserialization
  • Live Data
  • ViewModel
  • Kotlin coroutines
  • Mockk: For Testing to mock dependencies.

Dependency maintenance

Currently all the dependencies are being maintained at "root/gradle/support/dependencies.gradle" file. This file is applied in the app and feature module.

Tests

Test cases for the Repository, ViewModel and other business logic were added in the src/test directory.

zipcodeapi's People

Contributors

rakeshpraneeth avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.