Skip to content

Repository files navigation

MAUI Showcase

A cross-platform mobile application built with .NET MAUI (.NET Multi-platform App UI) that demonstrates modern mobile development capabilities across Android, iOS, macOS, and Windows platforms.

📱 Project Overview

  • Framework: .NET 9.0 MAUI
  • Target Platforms: Android, iOS, macOS (Mac Catalyst), Windows
  • Application ID: com.pixelplatforms.mauishowcase
  • Version: 1.0 (Build 1)
  • Apple Developer Team: Q8SA682BCL

🛠️ Prerequisites

Required Software

  1. Visual Studio 2022 (17.8 or later) or Visual Studio Code with C# Dev Kit
  2. .NET 9.0 SDK - Download here
  3. MAUI Workloads installed

Platform-Specific Requirements

Android Development

  • Android SDK (API level 21 or higher)
  • Java Development Kit (JDK) 11 or later
  • Android Emulator or physical Android device

iOS Development (macOS only)

  • Xcode 14.0 or later
  • iOS SDK 15.0 or later
  • iOS Simulator or physical iOS device
  • Apple Developer Account (for device deployment and App Store distribution)

Installing MAUI Workloads

# Install all MAUI workloads
dotnet workload install maui

# Or install specific platform workloads
dotnet workload install maui-android
dotnet workload install maui-ios
dotnet workload install maui-maccatalyst
dotnet workload install maui-windows

🚀 Getting Started

1. Clone and Setup

git clone <your-repository-url>
cd mauishowcase
dotnet restore

2. Verify Installation

# Check installed workloads
dotnet workload list

# Check MAUI installation
dotnet new maui --help

🏃‍♂️ Running the Application

Using .NET CLI

Android

# Run on Android emulator
dotnet build -f net9.0-android
dotnet run -f net9.0-android

# Run on specific Android device
dotnet run -f net9.0-android --device <device-id>

iOS (macOS only)

# Run on iOS simulator
dotnet build -f net9.0-ios
dotnet run -f net9.0-ios

# Run on specific iOS simulator
dotnet run -f net9.0-ios --device "iPhone 15 Pro"

Using Visual Studio

  1. Open mauishowcase.sln or mauishowcase.csproj
  2. Select target platform from the dropdown (Android/iOS/Windows/macOS)
  3. Choose target device (emulator/simulator or physical device)
  4. Click Run (F5) or Debug > Start Debugging

Using Visual Studio Code

  1. Open the project folder
  2. Install the C# Dev Kit extension
  3. Use Command Palette (Cmd+Shift+P) → .NET: Generate Assets for Build and Debug
  4. Press F5 to run

🔨 Building the Application

Debug Builds

# Build for Android
dotnet build -c Debug -f net9.0-android

# Build for iOS
dotnet build -c Debug -f net9.0-ios

# Build all platforms
dotnet build -c Debug

Release Builds

# Build for Android (Release)
dotnet build -c Release -f net9.0-android

# Build for iOS (Release)
dotnet build -c Release -f net9.0-ios

# Build all platforms (Release)
dotnet build -c Release

📦 Deployment

Android Deployment

1. APK Generation

# Generate unsigned APK
dotnet publish -c Release -f net9.0-android

# The APK will be located at:
# bin/Release/net9.0-android/publish/

2. Signed APK for Release

# Create a keystore (first time only)
keytool -genkey -v -keystore mauishowcase.keystore -alias mauishowcase -keyalg RSA -keysize 2048 -validity 10000

# Build signed APK
dotnet publish -c Release -f net9.0-android \
  -p:AndroidKeyStore=true \
  -p:AndroidSigningKeyStore=mauishowcase.keystore \
  -p:AndroidSigningKeyAlias=mauishowcase \
  -p:AndroidSigningKeyPass=<your-key-password> \
  -p:AndroidSigningStorePass=<your-store-password>

3. Google Play Store Deployment

  1. Generate signed AAB (Android App Bundle):
dotnet publish -c Release -f net9.0-android -p:AndroidPackageFormat=aab
  1. Upload the AAB file to Google Play Console
  2. Follow Google Play Store submission process

iOS Deployment

1. Development/Testing

# Build for iOS device
dotnet build -c Release -f net9.0-ios -p:RuntimeIdentifier=ios-arm64

2. App Store Deployment

Prerequisites:

  • Apple Developer Account ($99/year)
  • App record created in App Store Connect
  • Apple Distribution Certificate (not Development)
  • App Store Provisioning Profile
  • Bundle ID: com.pixelplatforms.mauishowcase

Steps:

  1. Create App in App Store Connect:

    • Go to App Store Connect
    • Create new app with bundle ID: com.pixelplatforms.mauishowcase
  2. Build for TestFlight:

# Clean and build for TestFlight
dotnet clean -f net9.0-ios -c Release
dotnet build -f net9.0-ios -c Release
  1. Upload Options:

    Option A: Xcode Organizer (Recommended)

    • Open Xcode → Window → Organizer
    • Archives tab → Upload
    • Select the IPA file from: bin/Release/net9.0-ios/ios-arm64/mauishowcase.ipa

    Option B: Transporter App

    • Download Transporter from Mac App Store
    • Sign in with Apple ID
    • Drag the IPA file to upload

    Option C: Command Line

    xcrun altool --upload-app -f bin/Release/net9.0-ios/ios-arm64/mauishowcase.ipa \
      -t ios -u your-apple-id@example.com
  2. TestFlight Distribution:

    • Go to App Store Connect → Your App → TestFlight
    • Add internal/external testers
    • Distribute build once processed

🐛 Troubleshooting

Common Issues

Android

Issue: "Android SDK not found"

# Set Android SDK path
export ANDROID_HOME=/path/to/android-sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

Issue: "Java not found"

# Set Java path
export JAVA_HOME=/path/to/java

iOS

Issue: "Xcode not found"

# Set Xcode developer directory
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

Issue: "iOS simulator not starting"

# Reset iOS simulator
xcrun simctl erase all

Cleaning and Rebuilding

# Clean the project
dotnet clean

# Remove bin and obj folders
rm -rf bin obj

# Restore and rebuild
dotnet restore
dotnet build

📋 Useful Commands

# List available devices
dotnet run --help

# List Android devices
adb devices

# List iOS simulators
xcrun simctl list devices

# Check MAUI installation
dotnet workload list

# Update MAUI workloads
dotnet workload update

# Repair MAUI installation
dotnet workload repair

✅ Implementation Status & TODO

🎯 Completed Features

UI Components ✅

  • Basic Controls: Buttons, Labels, Entry fields, Sliders, Switches, Pickers
  • Interactive Elements: Steppers, Progress bars, Activity indicators
  • Layout Containers: StackLayout, Grid, FlexLayout demonstrations
  • Advanced Animations:
    • Rotation, scaling, fade animations
    • Path following animations
    • Interactive gesture-based animations (pan, pinch)
    • Bouncing ball physics simulation
  • Data Visualization:
    • Task management with CRUD operations
    • Real-time search and filtering
    • Statistics and progress tracking
    • Custom graphics rendering and charts
  • Custom Drawing: GraphicsView with shape rendering and manipulation

OS Integration ✅

  • Device Information: Platform detection, device details, version info
  • Basic Connectivity: Network status monitoring
  • File System: Basic file operations demonstration
  • Cross-Platform Deployment: iOS, Android build configurations working

🚧 TODO: Advanced UI Components

High Priority UI Enhancements

  • CollectionView Advanced Features

    • Pull-to-refresh functionality
    • Infinite scrolling
    • Custom item templates with data binding
    • Grouping and headers
    • Reorder and swipe actions
  • Navigation Patterns

    • Master-Detail navigation
    • Tab customization with badges
    • Modal presentations
    • Custom transitions and animations
  • Advanced Input Controls

    • DatePicker and TimePicker integration
    • Custom numeric input controls
    • Rich text editor (if available)
    • Image picker and camera integration

Medium Priority UI Features

  • Theming & Styling

    • Dark/Light mode toggle
    • Custom theme switcher
    • Dynamic color schemes
    • Accessibility improvements (high contrast, font scaling)
  • Charts & Data Visualization

    • Line charts with real-time data
    • Pie charts and donut charts
    • Bar charts with animations
    • Custom gauge controls

🔧 TODO: OS Function Access

High Priority OS Integration

  • Camera & Media

    • Camera capture (photo/video)
    • Photo gallery access
    • Media playbook controls
    • QR code scanning
  • Location Services

    • GPS location access
    • Map integration (if available)
    • Geofencing demonstrations
    • Location tracking with permissions
  • Device Hardware

    • Accelerometer and gyroscope access
    • Compass functionality
    • Vibration/haptic feedback
    • Flashlight control
    • Battery status monitoring

Medium Priority OS Features

  • Storage & Files

    • Document picker integration
    • Cloud storage access (iCloud, Google Drive)
    • File sharing capabilities
    • Local database (SQLite) integration
  • Communication

    • SMS/Email composition
    • Phone dialer integration
    • Contacts access
    • Push notifications setup
  • Security & Authentication

    • Biometric authentication (TouchID, FaceID, Fingerprint)
    • Secure storage demonstrations
    • Keychain/Keystore access

Lower Priority Advanced Features

  • Connectivity

    • Bluetooth device scanning
    • WiFi network information
    • NFC reading (Android)
    • Network speed testing
  • Platform-Specific Features

    • iOS: Shortcuts integration
    • iOS: Widgets (if supported)
    • Android: App shortcuts
    • Android: Adaptive icons

📋 Implementation Phases

Phase 1: Core UI Enhancement (Week 1-2)

  1. CollectionView advanced features
  2. Camera and photo picker integration
  3. Location services basic implementation
  4. Dark/Light theme toggle

Phase 2: Hardware Integration (Week 3-4)

  1. Sensor access (accelerometer, gyroscope)
  2. Biometric authentication
  3. Device hardware controls (flashlight, vibration)
  4. Advanced charts and data visualization

Phase 3: Advanced OS Integration (Week 5-6)

  1. File system and cloud storage
  2. Communication features (SMS, email, contacts)
  3. Push notifications
  4. Platform-specific optimizations

Phase 4: Polish & Performance (Week 7-8)

  1. Accessibility improvements
  2. Performance optimizations
  3. Advanced animations and transitions
  4. Documentation and testing

🎯 Success Metrics

  • All major UI component categories demonstrated
  • Core device capabilities accessible and working
  • Cross-platform functionality verified on iOS and Android
  • App Store/Play Store deployment ready
  • Comprehensive documentation with code examples

📚 Resources

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

📄 License

This project is licensed under the MIT License.


Happy coding! 🚀

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages