Election-Tech-Initiative / Election-Tech-Initiative/electionguard-cpp

✨ Add Xamarin support (Android) to C# Wrapper

Open
#195 1 comment 0 reactions 0 assignees View on GitHub
enhancement good first issue hacktoberfest help wanted
Dominant language
C++
Stars
26
Forks
25
PR merge metrics
No merged PRs in 30d

Description

## Feature Request

**Description**
Xamarin support was temporarily removed but should still be supported under the .NET Standard implementations.
This may require some specialized building of the package for these particular runtimes and more complicated setup so that a developer can easily utilize the library.

The suggestion is to implement Conditions to implement some of the previous code originally in the previously made iOS and Android projects. This may require using [Build Extras](https://github.com/novotnyllc/MSBuildSdkExtras).

-[Android Specifics](https://github.com/microsoft/electionguard-cpp/blob/0bad662f3c6c32f4f7c257b2826d448930736594/bindings/netstandard/ElectionGuard/ElectionGuard.Android/ElectionGuard.Android.csproj#L52)

See

- [ ] Add Android binaries into runtimes and project
- [ ] Update documentation after Android and iOS support
- [ ] Build test project to demonstrate usage but do not commit within PR.

**Helpful Links**
https://docs.microsoft.com/en-us/nuget/create-packages/multiple-target-frameworks-project-file
https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package-msbuild
https://docs.microsoft.com/en-us/dotnet/standard/frameworks
https://github.com/edsnider/latestversionplugin/blob/master/src/Xam.Plugin.LatestVersion.csproj
https://docs.microsoft.com/en-us/nuget/create-packages/supporting-multiple-target-frameworks

Contributor guide

Open the contributing guide

Research direction

Start by comparing the referenced ElectionGuard.Android.csproj with the current bindings/netstandard project, then inspect how runtimes and Android binaries are packaged. Build a local Xamarin Android test project to verify usage. Done means Android binaries are included, the project builds for the target runtime, documentation is updated, and the demonstration project is not committed.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, cpp, csharp
Domain
build-system, mobile-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.