This is an Android application that deals with storage or "data persistence". The app is suitable for any shelter house to store the data of pets such as name, breed, gender and weight of the pet. The app uses a SQLite Database to store the data. The data is stored locally on the users phone. This app uses many other concepts such as building a ContentProvider and using a CursorAdapter and CursorLoader to automatically load the data.

Overview

Pets App

This app displays a list of pets and their related com.example.android.pets.data that the user inputs. Used in a Udacity course in the Android Basics Nanodegree by Google.

Pre-requisites

  • Android SDK v24
  • Android Build Tools v23.0.3
  • Android Support Repository v24.1.1

Getting Started

This sample uses the Gradle build system. To build this project, use the "gradlew build" command or use "Import Project" in Android Studio.

Support

Patches are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details.

License

Copyright 2016 The Android Open Source Project, Inc.

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you 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...

A simple-to-use storage ORM supporting several databases for Java.

Storage Handler This is a library based off of my old storage handler within my queue revamp. It's for easy storage handling for multiple platforms. N

Jun 22, 2022

SceneView is a 3D/AR Android View with ARCore and Google Filament. This is the newest way to make your Android 3D/AR app.

SceneView is a 3D/AR Android View with ARCore and Google Filament This is Sceneform replacement Features Use SceneView for 3D only or ArSceneView for

Jan 4, 2023

eXist Native XML Database and Application Platform

eXist Native XML Database and Application Platform

eXist-db Native XML Database eXist-db is a high-performance open source native XML database—a NoSQL document database and application platform built e

Dec 30, 2022

Connecting Java Application With a TDengine Database.

Connecting Java Application With a TDengine Database.

TDengine Java Connector English | 简体中文 'taos-jdbcdriver' is TDengine's official Java language connector, which allows Java developers to develop appli

Dec 10, 2022

Provides many useful CRUD, Pagination, Sorting operations with Thread-safe Singleton support through the native JDBC API.

Provides many useful CRUD, Pagination, Sorting operations with Thread-safe Singleton support through the native JDBC API.

BangMapleJDBCRepository Inspired by the JpaRepository of Spring framework which also provides many capabilities for the CRUD, Pagination and Sorting o

Apr 7, 2022

Database with Java Swing UI that stores consumables (food & drink) using RESTful API to send commands via HTTP

Database with Java Swing UI that stores consumables (food & drink) using RESTful API to send commands via HTTP

Database with Java Swing UI that stores consumables (food & drink) using RESTful API to send commands via HTTP.

Mar 8, 2022

SPRING MySQL Database Connection using JDBC STEPS

SPRING-MySQL-Database-Connection-using-JDBC-STEPS SPRING MySQL Database Connection using JDBC STEPS Step1: Create maven project Group id: com.cdac Art

Jan 27, 2022

A distributed in-memory data store for the cloud

A distributed in-memory data store for the cloud

EVCache EVCache is a memcached & spymemcached based caching solution that is mainly used for AWS EC2 infrastructure for caching frequently used data.

Jan 2, 2023

New-fangled Timeseries Data Store

Newts Newts is a time-series data store based on Apache Cassandra. Features High throughput Newts is built upon Apache Cassandra, a write-optimized, f

Oct 3, 2022
Releases(v1.4)
  • v1.4(Sep 2, 2021)

    This version contains a lot of changes both in the UI and the back-end of the code base. All the major changes are listed below:

    🛠 Implementation of a ListView: The main activity of the App (CatalogActivity.java) now consists of a ListView instead of the TextView as in v1.3 of the app. The ListView shows the list of the pets saved in the database. The ListView uses the CursorAdapter to request for data (more info about this below).

    🛠 Implementation of a CursorAdapter: This version uses a custom PetCursorAdapter which extends from the CursorAdapter. The PetCursorAdapter takes a cursor as an input and inflates an item and passes it off to the ListView.

    🛠 Adding of an EmptyView: When there are no pets in the database or no "data" in the database table, the CatalogActivity shows an Empty View which asks user to add some pets. This feature was added for the betterment of the User Experience(UX). image

    🛠 Implementation of the CursorLoader: Implementation of CursorLoader using a LoaderManager. Loaders run on separate thread to prevent unresponsive UI while querying the database. They simplify thread management by providing callback events when events occur.

    🛠Two modes of the EditorActivity: The EditorActivity has now two different modes. One is when the user wants to add a new pet while the other is for when the data of an existing pet needs to be modified. The latter part consists of querying the database for the current data on the pet and load it into corresponding views.

    🛠 Preventing app crash when entering blank data: The app crashed when the user did not entered any data into the fields of the EditorActivity. This has now been resolved by adding certain checks. So, no more crashing😉.

    🛠 Unsaved Changes Warning: If the user presses the back or the "up" button by mistake while editing the data for a pet the app now shows the user a warning message about the unsaved changes. The user has the option to keep continuing editing the data or discard the changes made. image

    🛠 Delete functionality added: Delete functionality has now been added to the app. Delete pets by clicking on them and selecting the delete pet option in the menu of the EditorActivity that opens up.

    🛠 Hiding the Delete Pet option for a new Pet: When adding a new pet, deleting the pet just doesn't make sense. You can't delete something that just never existed! Therefore, the menu option Delete Pet is hidden when adding a new pet into the database.

    🛠 Delete All Pets: You can delete all of the pets in the database just by tapping on the Delete All Pets option in the CatalogActivity. Beware that this will clear out the entire database and delete all the pets data. image

    🛠 Adding the Unknown Breed in the ListView: When a breed of a pet is not known, the ListView just shows a blank space there. To improve the User Experience (UX), "Unknown Breed" is now being displayed instead of just a blank space. Before the change: image

    After the change: image

    Source code(tar.gz)
    Source code(zip)
    Pets.v1.4.apk(2.39 MB)
  • v1.3(Aug 27, 2021)

    This release of the app does not contain any UI change. The changes are made to the internal working of the code such as adding a ContentProvider to the app. A custom ContentProvider named as PetProvider was added in this release to make the code more robust and secure. The PetProvider also looks after the data validation in the app (cases such as negative weight and no gender). This changes made in this version heavily rely on the use of URIs (Uniform Resource Identifier).

    Source code(tar.gz)
    Source code(zip)
    Pets.v1.3.apk(2.38 MB)
  • v1.2(Aug 27, 2021)

Owner
null
Benchmark App to compare different storage libraries (MMKV, AsyncStorage, WatermelonDB, RealmDB, SQLite)

Storage Benchmarks This is a benchmark app to compare popular storage solutions for React Native. It's running React Native 0.68, with Hermes enabled.

Marc Rousavy 25 Dec 15, 2022
Realm is a mobile database: a replacement for SQLite & ORMs

Realm is a mobile database that runs directly inside phones, tablets or wearables. This repository holds the source code for the Java version of Realm

Realm 11.4k Jan 5, 2023
Battlecode 2022 scaffold! Run your bots locally

Battlecode 2022 Scaffold This is the Battlecode 2022 scaffold, containing an examplefuncsplayer. Read https://play.battlecode.org/getting-started! Pro

Battlecode 7 Sep 24, 2022
DbLoadgen: A Scalable Solution for Generating Transactional Load Against a Database

DbLoadgen: A Scalable Solution for Generating Transactional Load Against a Database DbLoadgen is scalable solution for generating transactional loads

Qlik Partner Engineering 4 Feb 23, 2022
MapDB provides concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory. It is a fast and easy to use embedded Java database engine.

MapDB: database engine MapDB combines embedded database engine and Java collections. It is free under Apache 2 license. MapDB is flexible and can be u

Jan Kotek 4.6k Dec 30, 2022
MapDB provides concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory. It is a fast and easy to use embedded Java database engine.

MapDB: database engine MapDB combines embedded database engine and Java collections. It is free under Apache 2 license. MapDB is flexible and can be u

Jan Kotek 4.6k Jan 1, 2023
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time.

About CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time. CrateDB offers the

Crate.io 3.6k Jan 2, 2023
Cloudflare DynDNS Updater to automatically update DNS records

Cloudflare & DynDNS Good for everyone who wants to use Cloudflare with their local ip but has a changing ip address. Config # Your cloudflare api toke

Tobias G 6 Aug 27, 2022
Realtime SOS Android Application. Location (GPS + Cellular Network) tracing application by alerting guardians of the User.

WomenSaftey Women Safety Android Application: Realtime SOS Android Application. Designed a Location (GPS + Cellular Network) tracing application by al

jatin kasera 6 Nov 19, 2022
Clickhouse storage backend for Janusgraph

Clickhouse storage backend for Janusgraph Overview Clickhouse implementation of Janusgraph storage backend. Features New version 0.6.1 of JanusGraph c

null 3 Nov 30, 2022