Magazine High tech

Logique du déroulement de l’exécution d’une application développée sur la iPhone SDK.

Publié le 02 août 2010 par Chadiak

Dans l’article précédent, nous avons traité du rôle primordial des delegate et des protocoles. Nous allons voir dans cet article ce qui se passe lorsqu’une application est lancée.
Comme en C, le point d’entrée du programme est la fonction main (principale). Cette dernière, exécute une fonction – UIApplicationMain() – qui va instancier un objet de la classe UIApplication. Voici, le code en question :

Cet objet sera le point de départ de la chaîne d’appels entre les différents objets composant l’application ; aussi bien les objets de la librairie de la SDK, que les objets dont les classes ont été définies par le développeur.

UIApplication va désarchiver et instancier les objets contenus dans le MainWindow.xib.

Le MainWindow.xib est un fichier contenant des objets archivés, notamment des objets visuels (les vues, les boutons, les barres, les images, …) de l’application.
Les .xib, s’ouvrent avec Interface Builder qui permet de les éditer. Ce système permet de créer l’interface et de la relier facilement au code.

MainWindow.xib contient un objet nommé Window (de la classe UIWindow,  fille de la classe UIView). Window est à la source de la hiérarchie des vues. Dans interface Builder vous pouvez visualiser cette hiérarchie des vues telle qu’elle est à l’issue de l’exploitation de MainWindow.xib

Nous pouvons constater que la Window est effectivement en haut de la hiérarchie des vues et contient donc toutes les autres.

File’s Owner et First Responder sont des proxys d’objets (un moyen de représenter un objet créé généralement en code). File’s Owner représente un objet qui détient un pointeur vers les objets sortis de l’archive MainWindow.xib, en l’occurrence cet objet est l’objet de type UIApplication mentionné plus haut.
On peut voir que l’appDelegate est relié à l’Outlet Delegate de File’s Owner, ce dernier fait donc bien référence à notre objet de départ de type UIApplication.
First Responder
quant à lui, est un lien vers l’objet qui sera le premier à répondre aux évènements (touch, shake, …), évidemment cet objet n’est pas le même tout au long de l’exécution du programme.

Une fois que tous les objets de la MainWindow.xib ont été chargés et que les liens ont été créés, la méthode didFinishLaunching de la AppDelegate est appelée.

C’est ici que vous pouvez mettre les premières instructions de votre programme comme par exemple afficher la Window :

Lorsqu’il sort de cette méthode, le programme rentre dans ce que l’on appel une runloop, une boucle qui permet de maintenir le MainThread (article à venir) du programme en vie en attendant une action de la part de l’utilisateur.

En résumé :

L’utilisateur exécute une action, et un nouveau cycle s’enclenche : succession d’instanciations d’objets et d’appels de leur méthodes qui instancient d’autres objets etc. jusqu’à ce que le programme revienne encore à une runloop (ou qu’il se ferme).


Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

A propos de l’auteur


Chadiak Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog

Magazines