Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SnowPowerCore/Xamarin-Forms-Advanced-Template-Discontinued
(Discontinued) Xamarin.Forms Advanced Template: now featuring AppHosting library!
https://github.com/SnowPowerCore/Xamarin-Forms-Advanced-Template-Discontinued
Last synced: 30 days ago
JSON representation
(Discontinued) Xamarin.Forms Advanced Template: now featuring AppHosting library!
- Host: GitHub
- URL: https://github.com/SnowPowerCore/Xamarin-Forms-Advanced-Template-Discontinued
- Owner: SnowPowerCore
- Created: 2020-04-07T05:50:28.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-06T21:35:41.000Z (7 months ago)
- Last Synced: 2024-10-16T06:03:15.412Z (about 2 months ago)
- Language: C#
- Homepage:
- Size: 1.55 MB
- Stars: 24
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-xamarin-forms - Xamarin.Forms Advanced Template (v3.0) ★22 - haves for every developer: `Host`, navigation providers, essential and utility services, async commands, pre-configured platform projects. (Project Templates)
README
[![made-by- net (1)](https://github.com/SnowPowerCore/.NET-Custom-Console-App-Template/assets/35460261/d97613a9-740d-4f08-a931-81b77cfffb36)](https://dot.net)
# (Discontinued) Xamarin.Forms Advanced Template v3.0
Xamarin.Forms template for Visual Studio. Packed with [AppHosting](https://github.com/SnowPowerCore/AppHosting) library + some must-haves for every developer.**Introducing third version: featuring AppHosting library!**
(if you wish to review previous version, navigate to the [releases/v2](https://github.com/SnowPowerCore/Xamarin-Forms-Advanced-Template/tree/releases/v2) branch).Feel free to contribute or create issues for this project.
### Description
Zip file is a template package. It contains:
* **[AppHosting](https://github.com/SnowPowerCore/AppHosting)** `(full-fledged dependency container with Xamarin.Forms integration)`
* **Async commands** `(via AsyncAwaitBestPractices.MVVM library)`
* **Helpers** `(event-to-command behaviour, image resource, translate)`
* **Resources** `(with small amount of pre-installed common labels)`
* **Utility & cross-platform services**
* **Better API management** `(via Refit library)`
* **Base page view**
* **Xamarin.Forms Shell & Legacy Tabbed Page** `(Tabbed page by default)`
* **Ripple effects** `(via XamEffects library)`
* **Task loader mechanism & view** `(via Sharpnado.TaskLoaderView library)`
* **Analytics & diagnostics** `(via AppCenter libraries)`
* **Image better handling** `(via glidex.forms library on Android & Xamarin.Forms.Nuke library on iOS)`
* **Android & iOS pre-configured projects**
* **Startup tracing & LLVM enabled for Android**### Installation
Place **.zip** file from this repo's latest release into the *`%userprofile%\Documents\Visual Studio [Version]\Templates\ProjectTemplates`* folder. Open **Visual Studio**, select **"Create new"** option and search for `Xamarin Forms Advanced Template.` Scroll down to see the template.
If you're not using VS for Windows, or prefer another IDE, please, consider cloning this repo instead.### In-depth overview
> **[AppHosting](https://github.com/SnowPowerCore/AppHosting)** `(full-fledged dependency container with Xamarin.Forms integration)`
Featuring brand new library that's going to help you structure your Xamarin.Forms mobile architecture in a better way.
***
> **Async commands** `(via AsyncAwaitBestPractices.MVVM library)`
Async commands let you avoid using `async void` in your code and provide some useful additional setup elements. Read more [here](https://github.com/brminnick/AsyncAwaitBestPractices).
***
> **Helpers** `(event-to-command behaviour, image resource, translate, viewmodel locator)`
Some useful helpers to let you build more fluent & productive app.
`EventToCommandBehaviour` helps you to bind a command from your viewmodel to a control, that doesn't support commanding interface directly.
`ImageResource` will find and consume the image from shared "Assets" folder (you should provide the right path, e.g. *`[ProjectName].Assets.[ImageName].[ImageExtension]`*).
`Translate` lets you get translated string by the key from your `AppResources.`
`ViewModelLocator` is intended for wiring your page with desired viewmodel. It's better to consume all of the helpers from the `XAML` code.
***
> **Resources** `(with small amount of pre-installed common labels)`
Pre-configured resources folder. `AppResources.resx` is language neutral. You should add `AppResources.[TwoLetterLanguageISOCode].resx` in order to provide translation (add new file into the same folder where you have `AppResources.resx` defined).
***
> **Utility & cross-platform services**
Common application services. They may make your life as a developer a little easier.
`AppQuit` is a service for handling application quit. It is **Android** only.
`Keyboard` is a service for hiding keyboard on demand.
`Localize` is a service for providing ability to change language of your application, again, on demand.
`Toast` is a service for displaying toast messages.
`Application`, `ApplicationInfrastructure` and `ApplicationTracking` are services for handling respective application parts. `Application` service is just a convenient aggregator.
`Analytics` is a service for tracking errors and events inside of your app with the help of **AppCenter**.
`Language` is a service for managing in-app languages & cultures.
`Message` is a service which displays different types of dialogs with different content.
`Settings` is a service for storing & managing in-app key-values.
***
> **Better API management** `(via Refit library)`
This library is great for declaring API. Read more [here](https://github.com/reactiveui/refit).
***
> **Base page view**
Base page view. You have to set viewmodel using `ViewModelType` property (pass a type).
***
> **Xamarin.Forms Shell & Legacy Tabbed Page** `(Tabbed page by default)`
Choose the preferred way of navigation and use it along with `AppHosting` integration.
***
> **Ripple effects** `(via XamEffects library)`
Read more [here](https://github.com/mrxten/XamEffects).
***
> **Task loader mechanism & view** `(via Sharpnado.TaskLoaderView library)`
Amazing way to keep your `ViewModel` clean and fresh. Read more [here](https://github.com/roubachof/Sharpnado.TaskLoaderView).
***
> **Analytics & diagnostics** `(via AppCenter libraries)`
AppCenter tracks analytics & diagnostics data. Read more [here](https://docs.microsoft.com/en-us/appcenter/dashboard/).
***
> **Image better handling** `(via glidex.forms library on Android & Xamarin.Forms.Nuke library on iOS)`
Read more [here](https://github.com/roubachof/Xamarin.Forms.Nuke).
***
> **Android & iOS pre-configured projects**
Android & iOS have already been pre-configured to use `AppHosting` library & provide native services. Also, Android has a slightly edited `.csproj` file for better performance.
***
> **Startup tracing & LLVM enabled for Android**
Startup tracing is a feature for decreasing application startup time with a small side effect on APK size. Read more [here](https://devblogs.microsoft.com/xamarin/faster-startup-times-with-startup-tracing-on-android/). You can also setup custom profile for further improvements by yourself. Read more [here](https://devblogs.microsoft.com/xamarin/faster-android-startup-times-with-startup-tracing/). LLVM is an optimizing compiler. Read about it [here](https://docs.microsoft.com/en-us/xamarin/android/deploy-test/release-prep/?tabs=windows#llvm-optimizing-compiler). Linker behaviour is set to "Sdk Assemblies Only".
### Stats
![Alt](https://repobeats.axiom.co/api/embed/15272b93f466751676275d4958152ba7669f0762.svg "Repobeats analytics image")