Camelotia is a sample cross-platform application built with reactive extensions, ReactiveUI, and modern .NET UI frameworks. Camelotia is a file manager for cloud storages, it currently supports Yandex Disk, Google Drive, VK Documents, GitHub, FTP, SFTP, and local file systems. The app runs on Windows, Linux, MacOS, XBox, Surface Hub and HoloLens.
Compiling Avalonia app
In order to compile .NET Standard libraries, run tests and run the Avalonia application on Windows, Linux or MacOS operating system make sure to have latest .NET Core SDK installed. Launch the Camelotia.Avalonia.sln
file to browse or to edit source files. Camelotia uses Nuke Build to build and test the solution. Execute the following commands to run the build scripts on Linux or MacOS:
# Linux or MacOS shell. Launches the Avalonia app after build.
git clone https://github.com/worldbeater/Camelotia
cd ./Camelotia && bash ./build.sh --interactive
On Windows, execute the following command line:
# Windows command line. Launches the Avalonia app after build.
# Use the '--full' option to compile Android, UWP and WPF apps as well.
# Use the '--configuration Release' option to generate app packages.
git clone https://github.com/worldbeater/Camelotia
cd ./Camelotia && powershell -ExecutionPolicy Unrestricted ./build.ps1 --interactive
Compiling Universal Windows Platform app
Universal Windows Platform Camelotia app is compatible with Windows 10-based devices, such as PCs, Xbox One and HoloLens. The app can be compiled only on latest Windows 10. Make sure to have latest Microsoft Visual Studio installed. Make sure the "Universal Application Development" section is checked in Visual Studio Installer. Launch the Camelotia.Uwp.sln
solution file.
Compiling Windows Presentation Foundation app
The app was ported to WPF to make the cloud file manager controls reusable across most popular .NET implementations, so one could easily embed parts of Camelotia into their own applications by simply copying and pasting the source files. The app is also compatible with Windows versions lower than 10, such as Windows 7 or 8. To compile the WPF app, ensure the "Desktop Development" section is checked in Visual Studio Installer. Then, open the Camelotia.Wpf.sln
file in Visual Studio 2019.
Compiling Xamarin Forms app
To compile the Xamarin.Forms Android application, install the appropriate Android SDK v8.1. This can be achieved by using Visual Studio Installer and selecting "Mobile Development" section there. Launch the Camelotia.Xamarin.sln
solution file.
Technologies and Tools Used
- ReactiveUI modern MVVM framework
- ReactiveUI.Validation reactive validation library
- ReactiveUI.Events turning regular events into observables
- DynamicData reactive collections
- AvaloniaUI cross-platform XAML-based GUI framework
- Citrus.Avalonia bright and modern AvaloniaUI theme
- Akavache persistent key-value store
- Nuke build automation system for C#/.NET
- XUnit unit testing tool for .NET
- Coverlet code coverage analyzer
- NSubstitute mocking library
- FluentAssertions assertions library
- Xamarin.Forms mobile GUI framework
- Universal Windows Platform SDKs
- Reactive Extensions for .NET
- Octokit GitHub client library
- FluentFTP FTP implementation
- SSH.NET SFTP implementation
- VkNet Vkontakte SDK for .NET
- Google Drive client SDK for .NET
- Material Design XAML controls and styles
- MahApps Metro XAML controls and styled windows
- Costura.Fody which embeds references as resources
- JetBrains Rider and Microsoft Visual Studio IDEs
- AvaloniaRider plugin for visual designer support