Application Android de conversion de documents multi-format, développée en .NET 9 MAUI.
Huit conversions bidirectionnelles disponibles, entièrement hors ligne :
| Depuis | Vers | Moteur |
|---|---|---|
Word (.docx, .doc) |
Syncfusion DocIORenderer | |
Word (.docx) |
Syncfusion PdfLoadedDocument + DocIO | |
| RTF | Syncfusion PdfLoadedDocument + DocIO | |
Image (.png) |
Android PdfRenderer |
|
Image (.jpg, .png) |
Syncfusion Pdf.Graphics | |
| Image | Word | Syncfusion DocIO |
Excel (.xlsx, .xls) |
Syncfusion XlsIORenderer | |
PowerPoint (.pptx, .ppt) |
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.
Application
- .NET 9 MAUI
- C#
- XAML + MVVM
Microsoft.Extensions.DependencyInjection(DI complète, factoriesFunc<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
PdfRenderernatif (pour PDF vers Image sans package payant)
Android
FileProviderdé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
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));Pipeline Azure DevOps (LKBConvertor/azure-pipelines.yml) :
- Build : restore, MAUI Android workload, SonarCloud (scanner MSBuild), audit
dotnet list --vulnerable, signature AAB via keystore stocké en Secure Files, publication d'artefact - DeployInternal : Google Play piste interne (auto sur
main) - PromoteBeta : promotion internal vers beta (approbation manuelle)
- PromoteProd : promotion beta vers production, rollout progressif 10 % (approbation manuelle)
| Accueil | Sélection fichier | Conversion réussie | Historique |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
dotnet workload install maui-android
dotnet restore LKBConvertor/LKBConvertor/LKBConvertor.csproj
dotnet build LKBConvertor/LKBConvertor/LKBConvertor.csproj -c Release -f net9.0-androidPour un APK Release non signé :
dotnet publish LKBConvertor/LKBConvertor/LKBConvertor.csproj \
-c Release -f net9.0-android \
-p:AndroidPackageFormat=apkPré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)



