MondialCanadaEuropeAsie-Pacifique
Se connecter

Retour au code source ouvert

District Core pour Swift

Le noyau Swift que partagent les applications District AI pour iPhone, iPad et Mac : les modèles, le réseau, les données, la logique de connexion et les machines à états des appels qu'elles ont en commun, en un seul paquet Swift de six modules. Il se compile et exécute ses tests sous Linux comme sur les plateformes Apple : presque toute la logique des applications est donc testée sans simulateur, sans réseau et sans compte.

Utilisé par

District AI pour iOSiPhone et iPad
District AI pour MacEn développement

Six modules, un seul paquet

DistrictModelChaque réponse que décodent les applications, et un seul type d'erreur
DistrictAuthCoreLa connexion : PKCE, le nonce d'Apple, le renouvellement des jetons, la déconnexion
DistrictNetworkChaque point d'accès, le client d'API et ses erreurs
DistrictDataLes dépôts de données et la pagination
DistrictCallLes machines à états des appels sortants et entrants
DistrictLiveLes mises à jour en direct du bureau, la présence et la sonnerie
Testé sous Linux et macOS, et compilé pour iOS.

Un seul noyau pour les applications Apple

Testé sans simulateur

Aucun module n'utilise de cadre d'interface d'Apple : le paquet entier se compile et exécute ses tests sous Linux comme sous macOS. Les tests doivent atteindre chaque ligne de chaque module, sinon l'intégration continue échoue.

Vérifié contre les réponses du service

Le dépôt contient des réponses enregistrées du service District AI, et ses tests décodent puis réencodent chacune d'elles, en échouant sur tout champ que les modèles ne contiennent pas. Les décodeurs eux-mêmes ignorent un nouveau champ : une application installée continue donc de fonctionner quand le service en ajoute un.

Un changement arrive dans une application par une version

Un changement arrive d'abord ici, dans une demande de fusion accompagnée de ses tests. Une publication est une étiquette de version, et chaque application y passe dans une demande de fusion distincte, fixée à cette version exacte.

Licence
Apache-2.0
Construit avec
Swift, Swift Package Manager
Utilisé par
District AI pour iOS et District AI pour Mac

District Core pour Swift sur GitHub

Ce qui est à code source ouvert, et ce qui ne l'est pas

Ce qui est à code source ouvert

Ce paquet, sous licence Apache 2.0 : vous pouvez le lire, le compiler, le modifier et l'utiliser. Les noms, les logos et les icônes d'application District AI et Distronode sont des marques de commerce : une application que vous distribuez avec ce paquet porte donc son propre nom, sa propre icône et son propre identifiant de paquet.

Le paquet ne signale aucun plantage : aucune bibliothèque de signalement des plantages ne figure parmi ses dépendances, dont le seul paquet extérieur est swift-crypto d'Apple.

Ce qui ne l'est pas

Le service District AI avec lequel le paquet communique. La connexion exige un compte District AI; sans compte, vous pouvez quand même compiler le paquet et exécuter tous les tests.

Sans compte chez nous

Aujourd'hui, les applications ont besoin d'un compte District AI pour se connecter. Nous voulons qu'elles fonctionnent aussi sans compte chez nous. Nous n'avons pas encore établi à quoi cela ressemblerait, ni si c'est faisable, et la réponse dépend de ce à quoi les gens voudraient les relier : nous posons donc la question avant de construire quoi que ce soit. La discussion est en anglais, mais vous pouvez y écrire en français.

Dites-nous à quoi vous les relieriez

Participer

Les tickets et les demandes de fusion sont les bienvenus sur GitHub. Signalez une vulnérabilité en privé, comme l'indique la politique de sécurité, et non dans un ticket public.

Guide de contribution
CONTRIBUTING.md
Politique de sécurité
SECURITY.md
Journal des modifications
CHANGELOG.md