2. iOS : Concept
Modèle MVC
Le modèle : la logique de l’application
La vue : présentations des données
et intéractions avec l’utilisateur
Le controleur : gestion des
évènements, mise à jour du modèle
et/ou de la vue
3. bada : Concept
Programmation événementielle (Event-driven programming)
- Intéractions utilisateurs
sont toutes implémentés via leurs
- Communications entre les appareils
gestionnaires d’évènements et
bada et bada Server
d’écouteurs (listeners).
- Gestionnaires de données
4. bada : Concept
Programmation événementielle (Event-driven programming)
Chaque évènement a son propre type de listener.
En héritant la classe listener, les fonctions d’appels désignées
pour cet évènement en particulier seront déclenchés.
Pour des applications complexes, il est préférable de centraliser la gestion
d’évènements . Ce gestionnaire agit comme le root controller sur les applications
iOS.
6. bada : cycle de vie
Lancement
Splash
Screen
Initialisation
OnAppInitializing()
Disparition du Splash
Screen
Retour au premier
plan
OnForeground()
OnBackground() Fonctionnement
Utilisation
- Appui sur la touche END - Appui sur la touche HOME (*)
- Appui sur la touche HOME - Affichage d’un pop-up système
(*) - Autre application au premier plan
OnAppTerminating()
Manque de ressources
Libération des ressources
système
Arrêt
(*) Sous bada 2.0, les applications qui
ne sont pas déclarées ‘multitâche’ sont
automatiquement arrêtées quand elles
passent en arrière plan.
7. iOS : allocation de la mémoire
La création d’objet dans iOS suit 2 étapes : alloc et init (défini dans NSObject)
NSArray *array = [[NSArray alloc] init];
8. bada : construction à 2 phases
bada utilise une construction à 2 phases :
En C++, quand une allocation échoue pendant la construction d’un objet, l’objet est
partiellement construit et le destructeur n’est pas appelé => fuite de mémoire
bada n’utilise pas le méchanisme d’exception standard du C++. Cela permet de
pouvoir récupérer les exceptions dans les constructeurs des classes et des temps
d’éxécution plus rapide.
9. bada : construction à 2 phases
bada introduit la construction à 2 phases avec l’opérateur new et la méthode
Construct()
la 1ère phase suit la syntaxe traditionelle du C++ avec l’opérateur new
dans le constructeur par défaut, nous n’allouons aucune mémoire pour l’objet
nouvellement crée.
C’est dans la 2eme phase de construction que nous allouons la mémoire, avec la
méthode Construct()
10. bada : gestionnaire d’exception
La gestion d’exceptions et d’erreurs dans bada foncitonne differemment comparé au
standard C++.
Bada utilise des résultats d’erreur à la place des exceptions C++
Toutes les exceptions dans Bada sont attrapées dans la valeur de retour result (la
valeur E_SUCCESS indique que la méthode a correctement été éxécuté, toutes
autres valeurs indiquent une erreur).
11. bada : système de fichiers
/Home Répertoire racine de l’application (RW) Documents
/Home/Share Répertoire partagé avec d’autre apps (RW)
/Home/Share2 Répertoire partagé avec les apps de confiance (RW)
Application
/HomeExt Répertoire de l’application sur carte externe (RW)
/HomeExt/Share Répertoire partagé sur carte externe avec d’autre apps (RW)
/HomeExt/Share2 Répertoire partagé sur carte externe avec les apps de confiance (RW)
/Res Répertoire des ressources graphiques du package (RO)
/Media Répertoire des fichiers multimédia (RW) Media
/StorageCard/Media Répertoire des fichiers multimédia sur carte externe(RW)
/Share/<AppID> Répertoire partagé d’une autre application (RO)
Terminal
/Share2/<AppID> Répertoire partagé d’une application de confiance (RW)
/ShareExt/<AppID> Répertoire partagé sur carte externe d’une autre application (RO)
/Share2Ext/<AppID> Répertoire partagé sur carte externe d’une app de confiance (RW)
/Clipboard Contenu du presse papier pour les copier/coller de fichiers (RO)
13. iOS : outils de dévelopement
iOS bada
badaIDE (basé sur
IDE Xcode
Eclipse CDT)
Langage Objective-C C++
UIBuilder (inclus dans
UI Design Tool Interface Builder fichier
badaIDE)
XML
XIB
14. bada : un SDK basé sur Eclipse
UI Builder Emulateur Perf. Analyzer + Profiler
Un outil visuel pour créer votre Testez vos développements Un outil de monitoring pour
interface graphique directement sur votre ordinateur optimiser votre application
Création graphique des Sur émulateur ou terminal
Forms Support des trois familles
Emulation des boutons Consommation mémoire
Placements des contrôles
Choix des visuels Event injector : Système de fichiers
- Appels, messages, réseau
- Localisation (GPS) Utilisation base de données
Actions (Events) supportées
- Capteurs (Proximity, Tilt …) Différentes vues disponibles
Insertion du code des Events - Système (batterie, casque
…) Alertes : fuites de mémoire …
Génération du XML
- NFC
Plusieurs résolutions gérées Temps passé par méthode
15. bada : UI Builder
UI Builder Interface Builder
Utilisation de la touche Ctrl pour faire du multipoint