mirror of
https://github.com/ivuorinen/hiha-arvio.git
synced 2026-03-22 23:04:20 +00:00
MILESTONE 1 COMPLETE: Project Setup: - Create .NET 8 MAUI solution targeting iOS, macOS, and web - Configure nullable reference types and warnings as errors - Add required dependencies (MAUI 8.0.3, SQLite, CommunityToolkit.Mvvm) - Add testing dependencies (xUnit, NSubstitute, FluentAssertions, Coverlet) - Create comprehensive .editorconfig with C# coding standards - Update CLAUDE.md with development commands Core Models (TDD - 48 tests, all passing): - EstimateMode enum (Work, Generic, Humorous modes) - EstimateResult model with validation (intensity 0.0-1.0, non-null text) - ShakeData model with intensity validation - AppSettings model with defaults (Work mode, max history 10) Build Status: - All platforms build successfully (net8.0, iOS, macOS) - 0 warnings, 0 errors - Test coverage: 51.28% line, 87.5% branch (models have ~100% coverage) Per spec: Strict TDD followed (RED-GREEN-REFACTOR), models fully validated 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
71 lines
3.2 KiB
XML
71 lines
3.2 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<!-- Per spec: iOS (primary), Web (Blazor), macOS (tertiary) -->
|
|
<!-- net8.0 included for unit testing without platform dependencies -->
|
|
<TargetFrameworks>net8.0;net8.0-ios;net8.0-maccatalyst</TargetFrameworks>
|
|
|
|
<!-- Note for MacCatalyst:
|
|
The default runtime is maccatalyst-x64, except in Release config, in which case the default is maccatalyst-x64;maccatalyst-arm64.
|
|
When specifying both architectures, use the plural <RuntimeIdentifiers> instead of the singular <RuntimeIdentifier>.
|
|
The Mac App Store will NOT accept apps with ONLY maccatalyst-arm64 indicated;
|
|
either BOTH runtimes must be indicated or ONLY macatalyst-x64. -->
|
|
<!-- For example: <RuntimeIdentifiers>maccatalyst-x64;maccatalyst-arm64</RuntimeIdentifiers> -->
|
|
|
|
<OutputType Condition="'$(TargetFramework)' != 'net8.0'">Exe</OutputType>
|
|
<OutputType Condition="'$(TargetFramework)' == 'net8.0'">Library</OutputType>
|
|
<RootNamespace>HihaArvio</RootNamespace>
|
|
<UseMaui Condition="'$(TargetFramework)' != 'net8.0'">true</UseMaui>
|
|
<SingleProject>true</SingleProject>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<Nullable>enable</Nullable>
|
|
|
|
<!-- Per spec: treat warnings as errors, C# 12 -->
|
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
|
<LangVersion>12</LangVersion>
|
|
|
|
<!-- Display name -->
|
|
<ApplicationTitle>HihaArvio</ApplicationTitle>
|
|
|
|
<!-- App Identifier -->
|
|
<ApplicationId>com.companyname.hihaarvio</ApplicationId>
|
|
|
|
<!-- Versions -->
|
|
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
|
|
<ApplicationVersion>1</ApplicationVersion>
|
|
|
|
<!-- Per spec: iOS 15+, macOS 12+ (Monterey) -->
|
|
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">15.0</SupportedOSPlatformVersion>
|
|
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">15.0</SupportedOSPlatformVersion>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- App Icon -->
|
|
<MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" Color="#512BD4" />
|
|
|
|
<!-- Splash Screen -->
|
|
<MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="128,128" />
|
|
|
|
<!-- Images -->
|
|
<MauiImage Include="Resources\Images\*" />
|
|
<MauiImage Update="Resources\Images\dotnet_bot.png" Resize="True" BaseSize="300,185" />
|
|
|
|
<!-- Custom Fonts -->
|
|
<MauiFont Include="Resources\Fonts\*" />
|
|
|
|
<!-- Raw Assets (also remove the "Resources\Raw" prefix) -->
|
|
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Per spec: MAUI 8.x with explicit lower bound -->
|
|
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
|
|
<PackageReference Include="Microsoft.Maui.Controls" Version="8.0.3" />
|
|
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="8.0.3" />
|
|
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.1" />
|
|
<PackageReference Include="sqlite-net-pcl" Version="1.9.172" />
|
|
<PackageReference Include="SQLitePCLRaw.bundle_green" Version="2.1.11" />
|
|
</ItemGroup>
|
|
|
|
</Project>
|