Skip to content

anibalventura/my-places

Repository files navigation

My Places

API Kotlin License

Save your favourite places in an easy to use app based on modern Android application tech-stacks and MVVM architecture.

Features

  • Add a place with title, description, date, location and image.
  • Select an image from phone gallery or take a picture with the camera.
  • Add any location or set current location based on phone GPS.
  • View info of a saved place.
  • See your saved location on Google Maps.
  • Swipe to edit or delete a place.
  • Quickly search your saved places by title.
  • Option to delete all saved places.
  • Spanish translation.

Tech Stack & Open-source libraries

  • Minimum SDK level 21.
  • Kotlin - official programming language for Android development.
  • Coroutines - for asynchronous programming.
  • 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.
    • Data Binding - data objects to bind UI components in your layouts to data sources in your app.
    • ViewModel - stores UI-related data that isn't destroyed on UI changes.
    • Room - access your app's SQLite database with in-app objects and compile-time checks.
    • Lifecycle - components to perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
  • Navigation - interactions that allow users to navigate across, into, and back out from the different pieces of content within your app.
  • Fragment - represents a behavior or a portion of user interface in a FragmentActivity.
  • RecyclerView - for display a scrolling list of elements based on large data sets.
  • Material-Components - Material design components.
  • Dexter - Library that simplifies the process of requesting permissions at runtime.
  • Places SDK - Build location-aware apps that respond contextually to the local businesses and other places near the user's device.
  • Play Services

Build

In order to build and use the app you need to add the following string resource on the "strings.xml" file with your Google Maps API Key. In order to get a Key see the following documentation Maps SDK for Android

<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR API KEY</string>

Architecture

This app uses MVVM (Model View View-Model) architecture.

Contribute

Awesome! If you would like to contribute you're always welcome!

License

Copyright 2020 Anibal Ventura

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.