Accéder au contenu principal

Articles

Affichage des articles du 2025

Frameworks

 Xcode 26.1.1 est vraiment lent... J'ai désactivé intelligence et il devient juste utilisable sur mon M1... J'ai donc décidé d'optimiser un peut la compilation (qui fonctionnait bien avant) en sortant mes frameworks de mes projets. En effets j'avais l'habitude - mauvaise habitude - de mettre les projets de mes frameworks plutôt que leur version compilé.  Évidemment c'est plus lent, mais cela permet de modifier le frameworks à l'intérieur du projet d'app, ce qui est pratique. Enfin.. On va faire autrement. Mais les frameworks sont compilés dans le répertoire DerivedData avec des noms à rallonge inutile, de plus ils sont chacun dans un répertoire différent (le répertoire DerivedData  du projet). Le plus simple est de créer un script à mettre dans la "Build Phase" du projet du Frameworks : # Copie le framework dans $HOME/Frameworks/ DEST_DIR= " ${HOME} /Frameworks" mkdir -p " ${DEST_DIR} " # -R : récursif # -p : conserve dates/...

UIScene et openURLContexts

De IOS 2 à IOS 9, lorsque vous envoyiez un fichier dans une application (par exemple à partir d'un fichier attaché en mail), cela lançait l'application et la fonction openURL du délégateur de l'application : -( BOOL ) application :( UIApplication *)application            openURL :( NSURL *)url { Si vous retourniez YES, le fichier était considéré comme lu.  Ensuite de IOS 4.2 à 9.0, Apple à ajouté la possibilité de connaître l'application source du fichier. -( BOOL ) application :( UIApplication *)application            openURL :( nonnull NSURL *)url sourceApplication :( nullable NSString *)sourceApplication annotation :( nonnull id )annotation { Ensuite, avec IOS 9, Apple a ajouté des options afin d'y mettre l'application source, les annotations, mais aussi tout ce qu'ils pourrait vouloir dans le futur. On met un dictionnaire à la place de paramètre, et on évitera ainsi de multiplier les fonctions. -( BOOL ) applic...

Bloquer l'orientation d'une UIViewController

La gestion de l'orientation de l'iPad ou de l'iPhone a changé entre les différente version d'IOS. Avant, on pouvait utiliser la fonction shouldRotate qui bloquait la rotation... Simple. Mais cela ne fonctionne plus. Maintenant on doit forcément utiliser supportedInterfaceOrientation qui renvoie un masque des orientations supportées. Mon problème est que je ne veux pas limiter l'application à une orientation, mais que je veux que la gestion de l'orientation ne se face pas avec une UIViewController particulière. Pour cela j'ai besoin, au lancement de mon contrôleur, de sauvegarder l'orientation en cours. Avant IOS13 on utilisait UIApplication.sharedApplication.statusBarOrientation , mais avec IOS13 il peut y avoir plusieurs écrans (UIWindow) rangés par scène (UIScene). Donc statusBarOrientation est deprecated. Comme je n'utilise qu'un écran dans mon application, je récupère la scène avec UIApplication.sharedApplication.connectedScenes.anyObject , ...