-
Notifications
You must be signed in to change notification settings - Fork 730
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: create concepts/philosophy-of-uno
- Loading branch information
Showing
1 changed file
with
28 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Philosophy of Uno | ||
|
||
This document outlines the philosophy of Uno. It guides the development of past and future major architectural decisions. | ||
|
||
## Leverage existing tools | ||
|
||
We stand on the shoulders of giants, Microsoft's tooling is a treat to work with: | ||
|
||
- [Edit and Continue](https://docs.microsoft.com/en-us/visualstudio/debugger/edit-and-continue) | ||
- [Live Visual Tree](https://docs.microsoft.com/en-us/visualstudio/debugger/inspect-xaml-properties-while-debugging). | ||
|
||
The promise of Uno is to enable build your app with those tools and then deploy it to iOS, Android, and ultimately to the web via WebAssembly. | ||
|
||
## Create rich, responsive UIs | ||
|
||
Bland apps don't quite cut it these days. Strong support for animations, templating, and custom visual effects is a must. When phones come in all sizes and manufacturers are [gouging holes out of the screen area](https://www.cnet.com/pictures/phones-with-notches/), your app's layout had better be responsive. | ||
|
||
## Let views do views | ||
|
||
Separation of model, view and presentation keeps your code loosely coupled and easy to maintain. Features like databinding and attached properties let you write clean, elegant MVVM-style code. | ||
|
||
## Native intercompatibility (leave an escape hatch) | ||
|
||
100% code reuse is the ideal, but it should also be easy to access functionality specific to a single platform, or to incorporate native third-party libraries. | ||
|
||
## Performance is a feature | ||
|
||
The slow antelope gets eaten, and the slow app gets 1-star ratings. We've done a lot of optimisation on the basis of profiling in real-world use cases, and we'll continue to do so. |