{"id":21730177,"url":"https://github.com/nventive/unoapplicationtemplate","last_synced_at":"2025-04-07T07:01:31.047Z","repository":{"id":37076608,"uuid":"269418341","full_name":"nventive/UnoApplicationTemplate","owner":"nventive","description":"dotnet new application template for Uno platform apps.","archived":false,"fork":false,"pushed_at":"2025-03-03T18:33:27.000Z","size":10381,"stargazers_count":34,"open_issues_count":2,"forks_count":10,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-04T09:40:00.507Z","etag":null,"topics":["android","dotnet","ios","mobile","mvvm","uno-platform","uwp"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nventive.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-04T17:07:54.000Z","updated_at":"2025-03-03T18:33:30.000Z","dependencies_parsed_at":"2023-10-03T21:56:52.886Z","dependency_job_id":"984dbdea-82dd-4726-a4f9-c283e03e00c3","html_url":"https://github.com/nventive/UnoApplicationTemplate","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"nventive/Template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2FUnoApplicationTemplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2FUnoApplicationTemplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2FUnoApplicationTemplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2FUnoApplicationTemplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nventive","download_url":"https://codeload.github.com/nventive/UnoApplicationTemplate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247608150,"owners_count":20965952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","dotnet","ios","mobile","mvvm","uno-platform","uwp"],"created_at":"2024-11-26T04:13:14.687Z","updated_at":"2025-04-07T07:01:31.008Z","avatar_url":"https://github.com/nventive.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Uno Platform Application Template\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square)](LICENSE) ![Version](https://img.shields.io/nuget/v/NV.Templates.Mobile?style=flat-square) ![Downloads](https://img.shields.io/nuget/dt/NV.Templates.Mobile?style=flat-square)\n\nThis is a mobile app project template using [Uno Platform](https://github.com/unoplatform/uno) and the latest .NET practices.\n\n- It uses the MVVM pattern.\n- Code is organized by [application layer](doc/Architecture.md#Solution-Structure).\n- It comes with [dependency injection](doc/DependencyInjection.md).\n- There are built-in [logs](doc/Logging.md) and [diagnostic tools](doc/Diagnostics.md).\n- There is scaffolding code showing sample features.\n  When you run as-is, you get a _Dad Jokes_ application.\n\n## Preview\nFrom left to right: WinUI, iOS, and Android.\n![Platform-Comparison-Preview](https://user-images.githubusercontent.com/39710855/264705525-d070952c-04c7-4f4a-b6af-957f8415fb3e.png)\n\u003e Note that scaling was adjusted to better fit this preview and therefore this image isn't representative of the actual device sizes.\n\n### Diagnostic Tools\n![Diagnostics-Overlay-Preview](https://user-images.githubusercontent.com/39710855/264691340-dbc9d137-a199-4969-94d7-7dd430e08da7.gif)\n\n## Requirements\n\nVisual Studio 2022 with .NET 9 are required.\n\nThis template largely relies on Uno Platform, if you want to make sure you got everything installed correctly on your machine, we encourage you to use `uno-check`, the documentation is available [here](https://platform.uno/docs/articles/uno-check.html)\n\n\u003e 💡 It's also possible to use this template for a pure WinUI application, without any mobile aspect.\n\u003e All you would have to do is remove the `.Mobile` csproj from the generated solution.\n\n\n## Getting Started\n\nWe use `dotnet` project templates to easily create new projects. It simplifies the **project renaming** and supports **conditional inclusions**.\n\n### Generate a new project\n\n1. Install the template using this command.\n   \n   `dotnet new install NV.Templates.Mobile`\n\n1. To run the template and create a new project, run the following command in the folder that will contain the new project.\n    \n    `dotnet new nv-mobile -n MyProjectName`\n    \n    \u003e ⚠ The use of periods (`.`) in the project name is not supported and may result in compilation issues later on.\n\n   \u003e 💡 If all your projects are regrouped in a folder like `C:\\Repos`, you want to be in that folder.\n   \u003e The command would generate all the project files under `C:\\Repos\\MyProjectName`.\n\n   The following options are available when running the command.\n\n   - To get help: `dotnet new nv-mobile -h`\n\n### Next Steps\n\n1. Open the `README.md` and complete the documentation TODOs.\n1. Open the solution file from the generated folder using Visual Studio. \n\n   It's located at `MyProjectName/src/MyProjectName.sln`.\n\n1. In Visual Studio, go to the **VIEW** menu and open the **Task List** to get hints on next steps.\n   \n   This template comes with several pointers on what you're most likely to change next.\n   \n   ![](doc/images/VisualStudioTaskListForNextSteps.PNG)\n\n## Architecture and Recipes\nThis repository provides documentation on different topics under the [doc](doc/) folder.\n\n### Architecture\n\nThe software architecture of the application is documented in the [Architecture](doc/Architecture.md) document.\n\n### Summary of Recipes\n| Topic | Recipe/Implementation |\n|-|-|\nUI Framework | [WinUI](https://learn.microsoft.com/en-us/windows/apps/winui/)\u003cbr/\u003e[Uno Platform](https://platform.uno/)\n[MVVM](doc/Architecture.md#mvvm---viewmodels) | [Chinook.DynamicMvvm](https://github.com/nventive/Chinook.DynamicMvvm)\n[Dependency Injection](doc/DependencyInjection.md) | [Microsoft.Extensions.Hosting](https://www.nuget.org/packages/Microsoft.Extensions.Hosting)\u003cbr/\u003e[Microsoft.Extensions.DependencyInjection](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection)\n[Configuration](doc/Configuration.md) | [Microsoft.Extensions.Configuration](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.configuration)\n[Runtime Environments](doc/Environments.md) | [Microsoft.Extensions.Configuration](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.configuration)\nDesign System | [Uno.Material](https://platform.uno/docs/articles/external/uno.themes/doc/material-getting-started.html)\u003cbr/\u003e[Material Design](https://m3.material.io/)\n[HTTP](doc/HTTP.md) | [Refit](https://github.com/reactiveui/refit)\u003cbr/\u003e[Microsoft.Extensions.Http](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.http)\n[Async Data Loading](doc/DataLoading.md) | [Chinook.DataLoader](https://github.com/nventive/Chinook.DataLoader)\n[Logging](doc/Logging.md) | [Serilog](https://serilog.net/)\u003cbr/\u003e[Microsoft.Extensions.Logging](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging)\n[Testing](doc/Testing.md) | [xUnit](https://github.com/xunit/xunit)\n[Serialization](doc/Serialization.md) | [System.Text.Json](https://docs.microsoft.com/en-us/dotnet/api/system.text.json)\n[Localization](doc/Localization.md) | [Microsoft.Extensions.Localization](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.localization)\n[Navigation](doc/Architecture.md#navigation) | [Chinook.Navigation](https://github.com/nventive/Chinook.Navigation)\u003cbr/\u003e[Chinook.BackButtonManager](https://github.com/nventive/Chinook.BackButtonManager)\n[Validation](doc/Validation.md) | [FluentValidation](https://fluentvalidation.net/)\n[App Reviews](doc/Reviews.md) | [ReviewService](https://github.com/nventive/ReviewService)\n\n## Debugging or Testing the Template\nHere's how to install the template directly from the code, in the case that you want to modify it and would like to test your changes.\n\n### Installing the template\n\n1. Uninstall the template from nuget.org (if applicable).\n   - `dotnet new uninstall NV.Templates.Mobile`\n\n1. Clone this repository on your machine.\n1. Open a command prompt at the root of the cloned repository.\n1. Run the following command.\n\n    - `dotnet new install ./`\n\n[Read this for more information on custom templates](https://docs.microsoft.com/en-us/dotnet/core/tools/custom-templates).\n\n### Uninstalling the template\n1. Open a command prompt at the root of the cloned repository. \n1. Run the following command.\n\n    - `dotnet new uninstall ./`\n\n## Changelog\n\nPlease consult the [CHANGELOG](CHANGELOG.md) for more information about the version history.\n\n## License\n\nThis project is licensed under the Apache 2.0 license. See the [LICENSE](LICENSE) for details.\n\n## Contributing\n\nPlease read [CONTRIBUTING](CONTRIBUTING.md) for details on the process for contributing to this project.\n\nBe mindful of our [Code of Conduct](CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnventive%2Funoapplicationtemplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnventive%2Funoapplicationtemplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnventive%2Funoapplicationtemplate/lists"}