<commit_before>
# ReactiveUI.Routing

## Goals
- Cross platform logic.
- Strong support for page/fragment/modal navigation.
- Async all the way.
- Support suspend/resume.
- Minimize boilerplate code + Maximize readability.

With these core ideas in mind, here are the conclusions that I have drawn.

## Proposal

Note that this proposal is a work in progress, subject to change. The end goal is to create a solution that solves all of the potential issues that can then be implemented.

### Overview

In these improvements, we take inspiration from MvvmCross for presenter-based view composition while providing our own solution to navigation that does not conflate the two concepts.

### What is navigation?

From Google:

**Navigation** is defined as:

1.  The process or activity of accurately ascertaining one's position and planning and following a route.
2.  The passage of ships.

So, when we talk about navigation, we are talking about "going" to something. This is important, because it helps us understand the behavior of navigation. 

*In particular, we know that when we navigate to something, we want to be able to navigate back.*

### What is presentation?

From Google:

**Presentation** is defined as:

1. The proffering or giving of something to someone, especially as part of a formal ceremony.
	- The manner or style in which something is given, offered, or displayed.
	- A formal introduction of someone, especially at court.<commit_msg>Add Contributing Section to README<commit_after>
# ReactiveUI.Routing

## Goals
- Cross platform logic.
- Strong support for page/fragment/modal navigation.
- Async all the way.
- Support suspend/resume.
- Minimize boilerplate code + Maximize readability.

With these core ideas in mind, here are the conclusions that I have drawn.

## Proposal

Note that this proposal is a work in progress, subject to change. The end goal is to create a solution that solves all of the potential issues that can then be implemented.

### Contributing

If you have thoughts or suggestions, raise an issue that discusses what is on your mind. From there, we can then create a pull request that brings them into the proposal.

### Overview

In these improvements, we take inspiration from MvvmCross for presenter-based view composition while providing our own solution to navigation that does not conflate the two concepts.

### What is navigation?

From Google:

**Navigation** is defined as:

1.  The process or activity of accurately ascertaining one's position and planning and following a route.
2.  The passage of ships.

So, when we talk about navigation, we are talking about "going" to something. This is important, because it helps us understand the behavior of navigation. 

*In particular, we know that when we navigate to something, we want to be able to navigate back.*

### What is presentation?

From Google:

**Presentation** is defined as:

1. The proffering or giving of something to someone, especially as part of a formal ceremony.
	- The manner or style in which something is given, offered, or displayed.
	- A formal introduction of someone, especially at court.
{'fraction_non_alphanumeric': 0.05408, 'fraction_numerical': 0.00192, 'mean_word_length': 4.192691029900332, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2907224', 'n_tokens_mistral': 775, 'n_tokens_neox': 759, 'n_words': 463}