Skip to content
Navigation Architecture Component from Jetpack sample app
Kotlin
Branch: master
Clone or download

Latest commit

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Use navArgs to read args Apr 5, 2020
docs Reduce image dimensions Sep 8, 2018
gradle/wrapper Update dependencies Oct 8, 2019
.gitignore Initial commit Sep 5, 2018
LICENSE Create LICENSE Sep 8, 2018
README.md Replace navigateUp with popBackStack Sep 9, 2018
build.gradle Use navArgs to read args Apr 5, 2020
gradle.properties Migrate from support lib to androidx Sep 8, 2018
gradlew Initial commit Sep 5, 2018
gradlew.bat Initial commit Sep 5, 2018
settings.gradle Initial commit Sep 5, 2018

README.md

Android Navigation Architecture Component Demo

My article covering this repo: Navigation Architecture Component for the Rest of Us

This project contains a comprehensive sample of using the Navigation Architecture Component by way of a simple Notes app--no domain knowledge needed to understand the purpose of this app.

Functionality included

  1. List notes
  2. View single note
  3. Edit a note
  4. Delete a note
  5. Deep link to a note
  6. Animate a transition between screens
  7. Connecting Nav Drawer with your navigation graph.
  8. Configuring type-safe arguments between navigation components (in this case, Fragments)

Design Pattern

MVVM (Model-View-ViewModel) is used to make the architecture cleaner, more readable and maintainable. Notes are stored and managed in memory within the domain layer (this sample is about Navigation and not full-blown Clean Architecture after all).

Bonus

This PR contains steps needed to migrate from support library to AndroidX namespace. For more details, see AndroidX Refactoring docs

Screenshots

List of notes

Note detail

License

Copyright 2018 James Shvarts

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 can’t perform that action at this time.