A cross-platform Premier League app implemented with .NET MAUI for learning purposes
This Premier League app is a learning-focused project implemented using .NET MAUI (Multi-platform App UI). It serves as an excellent example for developers, especially those transitioning from WPF to cross-platform development, to understand the similarities and differences between MAUI and WPF.
![](https://private-user-images.githubusercontent.com/52397976/354805243-015ed49e-77b7-463f-976e-04f84c949a58.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNDQ1OTAsIm5iZiI6MTczOTA0NDI5MCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ4MDUyNDMtMDE1ZWQ0OWUtNzdiNy00NjNmLTk3NmUtMDRmODRjOTQ5YTU4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDE5NTEzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJlZmRlZGQ5ODA2ODMyNTNkMjg3NTBiZmViOTdkZmI2MWU2Mzc3YzZmODc0N2ViMzMzZjQ5YjRhOWJiZmRlODEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.9vFZasZa5wysL6NtSKWodWOvdE9WB8uUW2XG4PbyEXY)
![](https://private-user-images.githubusercontent.com/52397976/354805243-015ed49e-77b7-463f-976e-04f84c949a58.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNDQ1OTAsIm5iZiI6MTczOTA0NDI5MCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ4MDUyNDMtMDE1ZWQ0OWUtNzdiNy00NjNmLTk3NmUtMDRmODRjOTQ5YTU4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDE5NTEzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJlZmRlZGQ5ODA2ODMyNTNkMjg3NTBiZmViOTdkZmI2MWU2Mzc3YzZmODc0N2ViMzMzZjQ5YjRhOWJiZmRlODEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.9vFZasZa5wysL6NtSKWodWOvdE9WB8uUW2XG4PbyEXY)
- Pure MVVM implementation without third-party frameworks
- Proper use of data binding and commands
- TabBar implementation for navigation
- Use of CollectionView for efficient list rendering
- Custom DataTemplates for flexible UI design
- Implementation of built-in themes
- Responsive layouts for various screen sizes
- Platform-specific adaptations where necessary
- Utilization of .svg resources for scalable graphics
- Implementation of Geometry for custom shapes
- Exploration of MAUI-specific controls and APIs
- Demonstration of platform invoke (P/Invoke) for native functionality
- .NET 8.0
- .NET MAUI
- C# 10.0
- MVVM (Model-View-ViewModel) pattern
- Visual Studio 2022 or later (for Windows)
- JetBrains Rider (for Windows or macOS)
- .NET 8.0 SDK
- MAUI workload installed
git clone https://github.com/jamesnet214/maui-premierleague.git
- Visual Studio (Windows only)
- JetBrains Rider (Windows and macOS)
![](https://private-user-images.githubusercontent.com/52397976/354799051-af70f422-7057-4e77-a54d-042ee8358d2a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNDQ1OTAsIm5iZiI6MTczOTA0NDI5MCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTkwNTEtYWY3MGY0MjItNzA1Ny00ZTc3LWE1NGQtMDQyZWU4MzU4ZDJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDE5NTEzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYyZWQ1ZTE5ZDQzMDU0ODc0ZTA4MGY1NmU4NzM1Y2I5MTAyMTI5ZWY0MTBhOTQyNWQzMWI0ZWNlYTFjYzM1MGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.VuE7d4YL-Ij0--WdoNfs05SAeQDKj3xUX4hc2OTQaqY)
![](https://private-user-images.githubusercontent.com/52397976/354799195-e4feaa10-a107-4b58-8d13-1d8be620ec62.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNDQ1OTAsIm5iZiI6MTczOTA0NDI5MCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTkxOTUtZTRmZWFhMTAtYTEwNy00YjU4LThkMTMtMWQ4YmU2MjBlYzYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDE5NTEzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQwYjYyNmU3YzFkYWE4ZDhmYzUxZTJkYmRhMjBjMTQ3ZGNhZTM5NzhmZDNjNWRiMWMxYWQxOTU5NDRkZDllNzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.8PQJL-EsrKsUc7FgHp_ZZVxPJRMgJtaiOrdrUc-05Nk)
![](https://private-user-images.githubusercontent.com/52397976/354799464-5ff487f6-55e4-43e1-9abf-f8d419ee6943.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNDQ1OTAsIm5iZiI6MTczOTA0NDI5MCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTk0NjQtNWZmNDg3ZjYtNTVlNC00M2UxLTlhYmYtZjhkNDE5ZWU2OTQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDE5NTEzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThiZDY4MGJjZTQxNjFlYzRjZWE1ZDE0MGNiMGViMmMzMjA5YjRhZDBiY2RjZmIyNTE0ZjEyZGMzODJmNDg2OWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.SVd08NHeeDDxp64HMjmq5dEEioht3cf_QgKMj7Csk_M)
![](https://private-user-images.githubusercontent.com/52397976/354805366-153143f8-2e76-4dca-b056-2a405aaf6a78.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNDQ1OTAsIm5iZiI6MTczOTA0NDI5MCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ4MDUzNjYtMTUzMTQzZjgtMmU3Ni00ZGNhLWIwNTYtMmE0MDVhYWY2YTc4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA4VDE5NTEzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdlZmUzZmE1ZTJhYzQwM2JmNjljOGJiN2UzNmE1NWNiOTg2NmY1NjAyOWE1ZWI5MzRhMWI4ZTE2ZjU5YjVkYTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.0PZ-bDYgopb2FyK58FiydzuHnp5-pwqqaL3r4bT27vk)
- Windows 11
- macOS
- iOS (via simulator or physical device)
- Android (via emulator or physical device)
- Familiar XAML: MAUI uses XAML, making it easier for WPF developers to transition.
- Cross-Platform Considerations: Learn how to design UIs that work across different platforms.
- Mobile-First Approach: Understand the shift from desktop-centric to mobile-first design.
- Performance Optimization: Explore techniques for optimizing app performance on mobile devices.
- Platform-Specific Features: Learn how to implement platform-specific features while maintaining a shared codebase.
- Views: Contains XAML pages and user controls
- ViewModels: Implements the presentation logic
- Models: Defines data models and business logic
- Services: Includes data access and other services
- Resources: Stores shared resources like styles and images
If you'd like to contribute to improving the project, please send a Pull Request. All forms of contribution are welcome!
This project is distributed under the MIT license. For more details, please refer to the LICENSE file.
- Website: https://jamesnet.dev
- Email: [email protected], [email protected]
Explore the world of cross-platform development with MAUI through this Premier League app!