YaniPay pour iPadOS
Interface tablette optimisee pour iPadOS 18.5+. Profitez du Split View, du Stage Manager et du multifenetrage pour une experience financiere immersive sur grand ecran.
Overview
YaniPay sur iPadOS exploite pleinement les capacites de la tablette Apple pour offrir une experience financiere desktop-class. L'application s'adapte intelligemment a toutes les configurations d'ecran : mode portrait, paysage, Split View et Stage Manager.
Concue pour les utilisateurs qui souhaitent gerer leurs finances avec la puissance d'un outil professionnel, l'application iPad propose un navigateur de documents integre pour consulter releves, factures et rapports directement depuis l'interface YaniPay.
Configuration Requise
- iPadOS 18.5 ou superieur
- iPad Air (M1+), iPad Pro ou iPad mini (A17 Pro+)
- Stage Manager requiert un iPad avec puce M1 ou superieure
- Split View disponible sur tous les modeles compatibles
Fonctionnalites Cles
Split View
Affichez vos paiements et vos analyses cote a cote. Transferez des fonds tout en consultant votre historique de transactions en temps reel.
Stage Manager
Travaillez avec plusieurs fenetres YaniPay simultanement. Gardez le dashboard, les graphiques et les parametres accessibles en un coup d'oeil.
Layout Multi-Colonnes
Interface optimisee pour le mode paysage avec une disposition multi-colonnes qui exploite pleinement la surface d'ecran de l'iPad.
Document Browser
Accedez a vos releves bancaires, rapports financiers et justificatifs directement depuis le navigateur de documents iPadOS natif.
Layouts Tablette
L'interface s'adapte dynamiquement en fonction de la taille de la fenetre et du mode d'affichage. Le systeme detecte automatiquement le contexte (plein ecran, Split View, Slide Over) et ajuste la disposition des elements pour maximiser la lisibilite et l'ergonomie.
import SwiftUI
struct DashboardView: View {
@Environment(\.horizontalSizeClass) var horizontalSizeClass
@Environment(\.verticalSizeClass) var verticalSizeClass
var body: some View {
if horizontalSizeClass == .regular {
// iPad full-screen or large Split View
NavigationSplitView {
SidebarView()
} content: {
TransactionListView()
} detail: {
TransactionDetailView()
}
} else {
// Compact: Slide Over or small Split View
NavigationStack {
TransactionListView()
}
}
}
}
// Multi-column layout for landscape mode
struct AnalyticsDashboard: View {
@Environment(\.horizontalSizeClass) var sizeClass
var columns: [GridItem] {
if sizeClass == .regular {
return [
GridItem(.flexible()),
GridItem(.flexible()),
GridItem(.flexible())
]
}
return [GridItem(.flexible())]
}
var body: some View {
ScrollView {
LazyVGrid(columns: columns, spacing: 16) {
BalanceCard()
SpendingChart()
RecentTransactions()
SavingsGoal()
BudgetOverview()
InvestmentSummary()
}
.padding()
}
}
}Stage Manager
Avec le Stage Manager, les utilisateurs peuvent redimensionner la fenetre YaniPay librement. L'application utilise horizontalSizeClass et des breakpoints adaptatifs pour garantir une experience fluide quelle que soit la taille de la fenetre.
Clavier & Trackpad
YaniPay prend en charge l'ensemble des raccourcis clavier iPadOS et les gestes trackpad pour une productivite maximale. Les utilisateurs de Magic Keyboard beneficient d'une navigation fluide sans lever les mains du clavier.
| Raccourci | Action |
|---|---|
N | Nouveau virement |
F | Rechercher une transaction |
D | Ouvrir le dashboard |
, | Preferences |
ShiftS | Exporter le releve |
1-5 | Naviguer entre les onglets |
import SwiftUI
struct DashboardView: View {
@State private var showNewTransfer = false
@State private var searchQuery = ""
var body: some View {
NavigationSplitView {
SidebarView()
} detail: {
ContentView()
}
.keyboardShortcut("n", modifiers: .command) // New transfer
.searchable(text: $searchQuery)
.sheet(isPresented: $showNewTransfer) {
NewTransferView()
}
}
}
// Trackpad gesture support
struct TransactionCard: View {
@GestureState private var isHovering = false
var body: some View {
CardContent()
.onHover { hovering in
withAnimation(.easeInOut(duration: 0.2)) {
// Visual feedback on hover
}
}
.contextMenu {
Button("Copier la reference") { }
Button("Partager le recu") { }
Button("Signaler un probleme") { }
}
}
}Survol
Survolez les transactions pour un apercu rapide avec le retour visuel natif iPadOS.
Clic secondaire
Menu contextuel complet avec actions rapides : copier, partager, exporter.
Navigation clavier
Navigation complete au clavier avec Tab, fleches et raccourcis pour chaque ecran.
Ecran externe
Connectez votre iPad a un ecran externe pour profiter d'un affichage etendu. YaniPay s'adapte automatiquement a la resolution de l'ecran connecte pour afficher le dashboard complet sur le moniteur et les controles sur l'iPad.
Responsive Layouts
SwiftUI offre un systeme de layouts adaptatifs qui permettent a YaniPay de s'ajuster dynamiquement selon le contexte d'affichage. La propriete horizontalSizeClass distingue les environnements compacts (iPhone, Slide Over) des environnements reguliers (iPad plein ecran, large Split View) pour choisir la mise en page optimale.
struct AdaptiveDashboard: View {
@Environment(\.horizontalSizeClass) var sizeClass
var body: some View {
if sizeClass == .regular {
// iPad: Side-by-side layout
NavigationSplitView {
AccountSidebar()
} detail: {
TransactionDetail()
}
} else {
// iPhone: Stack navigation
NavigationStack { AccountList() }
}
}
}Size Classes en pratique
Testez toujours les deux size classes dans Xcode Simulator. Un iPad en Slide Over passe en .compact — votre layout doit rester utilisable dans cette configuration reduite.
Stage Manager
Stage Manager, disponible sur iPad avec puce M1 ou superieure depuis iPadOS 16, permet aux utilisateurs de gerer plusieurs fenetres flottantes redimensionnables. YaniPay tire parti du multi-window support de SwiftUI via WindowGroup pour proposer des fenetres independantes par domaine fonctionnel.
Multi-window
Ouvrez le dashboard et le module paiements dans deux fenetres separees et redimensionnables.
Fenetres redimensionnables
Chaque fenetre s'adapte librement via les size classes pour une mise en page toujours coherente.
Taches paralleles
Gerez un virement dans une fenetre pendant que vous consultez vos analyses dans une autre.
@main struct YaniPayApp: App {
var body: some Scene {
WindowGroup { ContentView() }
WindowGroup("Payments", id: "payments") { PaymentView() }
}
}Compatibilite Stage Manager
- iPadOS 16+ requis pour Stage Manager
- Puce M1 ou superieure obligatoire (iPad Air M1, iPad Pro M1+)
- Les fenetres multiples utilisent le meme processus — les donnees partagees via
@EnvironmentObjectrestent synchronisees
Split View & Slide Over
YaniPay supporte l'ensemble des modes multitaches iPadOS. Le Document Browser natif facilite l'acces aux pieces justificatives KYC, tandis que le glisser-deposer inter-applications accelere les flux de travail financiers.
Modes Split View supportes
Document Browser — KYC
Integration du Document Browser iPadOS pour selectionner et uploader les justificatifs d'identite directement depuis iCloud Drive, Fichiers ou une autre app.
Drag & Drop inter-apps
Glissez un RIB ou une facture depuis Mail ou Fichiers directement dans YaniPay pour associer un justificatif a une transaction.
Slide Over et size class
En mode Slide Over, horizontalSizeClass passe a .compact meme sur iPad. Assurez-vous que tous les ecrans critiques (virement, authentification) restent pleinement fonctionnels dans ce mode reduit.
Apple Pencil
YaniPay integre PencilKit pour capturer des signatures numeriques lors des confirmations de paiement a forts enjeux et pour annoter des documents financiers. L'Apple Pencil Pro (2e generation) apporte la reconnaissance de double-tapotement pour basculer rapidement entre les outils d'annotation.
import PencilKit
struct SignatureView: UIViewRepresentable {
@Binding var signature: PKDrawing
func makeUIView(context: Context) -> PKCanvasView {
let canvas = PKCanvasView()
canvas.drawing = signature
canvas.tool = PKInkingTool(.pen, color: .black, width: 3)
canvas.backgroundColor = .systemBackground
canvas.drawingPolicy = .anyInput
return canvas
}
func updateUIView(_ uiView: PKCanvasView, context: Context) {
uiView.drawing = signature
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
class Coordinator: NSObject, PKCanvasViewDelegate {
var parent: SignatureView
init(_ parent: SignatureView) { self.parent = parent }
func canvasViewDrawingDidChange(_ canvasView: PKCanvasView) {
parent.signature = canvasView.drawing
}
}
}
// Usage in payment confirmation
struct PaymentConfirmationView: View {
@State private var signature = PKDrawing()
@State private var showSignaturePad = false
var body: some View {
VStack(spacing: 20) {
PaymentSummaryCard(amount: 2500.00, recipient: "Jean Dupont")
Button("Signer et confirmer") {
showSignaturePad = true
}
.buttonStyle(.borderedProminent)
}
.sheet(isPresented: $showSignaturePad) {
SignaturePadSheet(signature: $signature) {
submitPaymentWithSignature(signature)
}
}
}
}Apple Pencil Pro — Double Tap
Implementez UIPencilInteractionpour repondre au double-tapotement : basculer entre l'outil de signature et la gomme, ou revenir a l'ecran precedent sans quitter le flux de confirmation.
Signature de confirmation
Capturez une signature manuscrite pour valider les virements superieurs a un seuil defini par l'utilisateur, exportee en PNG et associee au recu.
Annotations de documents
Annotez les releves bancaires et contrats directement dans l'application via PencilKit avant de les partager ou de les archiver.
External Display
Avec Stage Manager et le support de l'ecran externe, YaniPay peut fonctionner en mode point de vente (POS) : le dashboard complet s'affiche sur un moniteur HDMI ou USB-C, tandis que l'iPad devient un terminal de saisie et de validation pour le marchand.
Stage Manager — Ecran externe
- Requiert iPadOS 16+ et un iPad avec puce M1 ou superieure
- Connexion via USB-C (DisplayPort Alt Mode) ou adaptateur USB-C vers HDMI
- Resolution jusqu'a 6K sur Pro Display XDR avec iPad Pro M4
- YaniPay detecte automatiquement l'ecran externe et active la vue marchand via
UIScene
References
Documentation officielle Apple pour le developpement iPad et les guidelines d'interface utilisateur.