Samsung :   iOS to Bada
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
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
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.
iOS : cycle de vie
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.
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];
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.
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()
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).
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)
Samsung :   les outils
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
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
bada : UI Builder

     UI Builder                                    Interface Builder




         Utilisation de la touche Ctrl pour faire du multipoint
bada : Event Injector
iOS : Instruments
bada : Performance Analysis
Merci

De iOS à bada présentation complète_octobre 2011

  • 1.
    Samsung : iOS to Bada
  • 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.
  • 5.
  • 6.
    bada : cyclede 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 : allocationde 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 : gestionnaired’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èmede 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)
  • 12.
    Samsung : les outils
  • 13.
    iOS : outilsde 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 : unSDK 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 : UIBuilder UI Builder Interface Builder Utilisation de la touche Ctrl pour faire du multipoint
  • 16.
    bada : EventInjector
  • 17.
  • 18.
  • 19.