Giter Club home page Giter Club logo

chydee / noted Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 2.0 7.22 MB

Noted is a simple note-taking app, that's inspired by - Google Keep. It leverages the latest improvement in the Android ecosystem and improved on the parent application with extended functionalities such as vault-like behaviour which allows the user's to add security to notes by using a user-generated password to a key.

License: GNU General Public License v3.0

Java 15.44% Kotlin 84.56%
kotlin-android kotlin-coroutines java navigation-architecture-component fragment junit4 test-driven-development room-persistence-library room-database material-design

noted's Introduction

CodeStyle Kotlin Version Gradle API License

Noted is a note taking app, that's inspired by - Google Keep. The Application leverages the latest improvement in the android ecosystem and improved on the parent application with extended functionalities such as vault-like behaviour which allows user's to add security to notes by using a user-generated password as key.

Minimum Api Level : 21 compileSdkVersion : 30

Build System : Gradle

Table of Contents

Installation

Follow these steps if you want to get a local copy of the project.

Prerequisites
Android Studio IDE 3.0+
Android SDK v28
Android Build Tools v28.0.3
Gradle 4.10.1
1. Clone or fork the repository (Master Branch) by running the command below
on your git terminal

git clone https://github.com/chydee/Noted.git
2. Import the project in AndroidStudio, and add API Key
In Android Studio, go to File -> New -> Import project
Follow the dialog for set up instructions

Design

No design rules was followed in particular but I ensured App support different screen sizes and the content has been adapted to fit for mobile devices. To do that, create a flexible layout using one or more of the following concepts:

Architecture

The architecture of the application is based, apply and strictly complies with each of the following 4 points:

Libraries

 -   [Jetpack](https://developer.android.com/jetpack):
 -   [Android KTX](https://developer.android.com/kotlin/ktx.html) - provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
 -   [AndroidX](https://developer.android.com/jetpack/androidx) - major improvement to the original Android [Support Library](https://developer.android.com/topic/libraries/support-library/index), which is no longer maintained.
 -   [Data Binding](https://developer.android.com/topic/libraries/data-binding/) - allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
 -   [ViewBinding](https://developer.android.com/topic/libraries/view-binding) - allows you to more easily write code that interacts with views.
 -   [Lifecycle](https://developer.android.com/topic/libraries/architecture/lifecycle) - perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
 -   [LiveData](https://developer.android.com/topic/libraries/architecture/livedata) - lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
 -   [Navigation](https://developer.android.com/guide/navigation/) - helps you implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer.
 -   [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) - designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.
  • Coroutines - managing background threads with simplified code and reducing needs for callbacks.

  • [and more...]

    Test Libraries

    • Espresso - to write concise, beautiful, and reliable Android UI tests
    • JUnit - a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.
    • AndroidX - the androidx test library provides an extensive framework for testing Android apps.

    Plugins

    • [Firebase-Crashlytics]

Demo

Find below screenshots of the application

Credits

  • The preview images were created using 'Previewed' at Previewed
  • The illustration images were provided by 'UnDraw' at UnDraw
  • The icons and application icons were created and downloaded at FlatIcons
Copyright 2021 Desmond Ngwuta

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.

noted's People

Contributors

chydee avatar web-flow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

noted's Issues

Create a Dialog

whenever user exits the AddNoteActivity maybe unconsciously or deliberately ask whether to keep the note or discard it

Create a ViewModel

I need to use a view model in order to insert the data retrieved into the database instead of using the intentExtra. Its obviously not a good practice to me. so I need to figure this out on my own.
Check out AddNoteActivity.java

Use Material Design

Use the Android Material Design Components to make the app have a better look and consistent design across all the interface

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.