Skip to content

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LKBConvertor

Build Android Quality Gate Reliability Maintainability Security Bugs Vulnerabilities Code Smells Duplicated Lines

.NET MAUI C# Syncfusion UraniumUI Android License Last commit Repo size

Application Android de conversion de documents multi-format, développée en .NET 9 MAUI.


Fonctionnalités

Huit conversions bidirectionnelles disponibles, entièrement hors ligne :

Depuis Vers Moteur
Word (.docx, .doc) PDF Syncfusion DocIORenderer
PDF Word (.docx) Syncfusion PdfLoadedDocument + DocIO
PDF RTF Syncfusion PdfLoadedDocument + DocIO
PDF Image (.png) Android PdfRenderer
Image (.jpg, .png) PDF Syncfusion Pdf.Graphics
Image Word Syncfusion DocIO
Excel (.xlsx, .xls) PDF Syncfusion XlsIORenderer
PowerPoint (.pptx, .ppt) PDF Syncfusion PresentationRenderer

Visionneuse universelle intégrée : ouvre .pdf, .doc(x), .rtf, .odt, .txt, .xls(x), .ppt(x), .jpg, .png, .bmp via conversion transparente en PDF temporaire pour l'affichage dans SfPdfViewer.

Historique persistant avec partage (Gmail, Drive, tout app supportant ACTION_SEND) et suppression individuelle ou totale.


Stack technique

Application

  • .NET 9 MAUI
  • C#
  • XAML + MVVM
  • Microsoft.Extensions.DependencyInjection (DI complète, factories Func<T, Page>)
  • SQLite via sqlite-net-pcl (connexion unique, purge auto)

UI

  • UraniumUI Material 3
  • Syncfusion Maui Toolkit (Cards)
  • Syncfusion Maui PdfViewer
  • FontAwesome (icônes vectorielles)

Conversion documentaire

  • Syncfusion DocIO / DocIORenderer
  • Syncfusion Pdf / PdfViewer
  • Syncfusion XlsIO / XlsIORenderer
  • Syncfusion Presentation / PresentationRenderer
  • Android PdfRenderer natif (pour PDF vers Image sans package payant)

Android

  • FileProvider dédié (autorité ${applicationId}.share.fileprovider)
  • Partage inter-apps avec ClipData + FLAG_GRANT_READ_URI_PERMISSION (compat Gmail send-later)
  • Permissions minimales, pas de READ_MEDIA_* superflue
  • Scoped storage Android 10+
  • Cible SDK Android 35, min SDK 21

Architecture

Views/          # ContentPage XAML + code-behind minimal
ViewModels/     # INotifyPropertyChanged + Command MAUI
Services/       # ConversionService, NavigationService, ShareHelper
Models/         # DTOs + enum ConversionType
Data/           # LKBDatabase (SQLite)
Helpers/        # InverseBoolConverter (IValueConverter)

Navigation par DI :

services.AddTransient<Func<ConversionType, ConversionPage>>(sp =>
    type => ActivatorUtilities.CreateInstance<ConversionPage>(sp, type));

CI/CD

Pipeline Azure DevOps (LKBConvertor/azure-pipelines.yml) :

  1. Build : restore, MAUI Android workload, SonarCloud (scanner MSBuild), audit dotnet list --vulnerable, signature AAB via keystore stocké en Secure Files, publication d'artefact
  2. DeployInternal : Google Play piste interne (auto sur main)
  3. PromoteBeta : promotion internal vers beta (approbation manuelle)
  4. PromoteProd : promotion beta vers production, rollout progressif 10 % (approbation manuelle)

Aperçu

Accueil Sélection fichier Conversion réussie Historique
Accueil Sélection Succès Historique

Build local

dotnet workload install maui-android
dotnet restore LKBConvertor/LKBConvertor/LKBConvertor.csproj
dotnet build LKBConvertor/LKBConvertor/LKBConvertor.csproj -c Release -f net9.0-android

Pour un APK Release non signé :

dotnet publish LKBConvertor/LKBConvertor/LKBConvertor.csproj \
    -c Release -f net9.0-android \
    -p:AndroidPackageFormat=apk

Prérequis :

  • .NET 9 SDK
  • JDK 17
  • Android SDK API 35 (installé auto via dotnet build LKBConvertor/LKBConvertor/LKBConvertor.csproj -t:InstallAndroidDependencies -f net9.0-android -p:AcceptAndroidSDKLicenses=True)

About

Open source .NET MAUI mobile app for converting Word documents to PDF and extracting text from PDF to RTF format. Built using Syncfusion DocIO and PDF components.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages