HARMONY : framework de conception d'applications Mobiles

Utilisation de la plate-forme conventionnelle de conception du code (convention d’équipe)
Harmony impose de structurer votre projet de manière commune.
Quelques exemples sont disponibles dans « Structure d’application »
Composants du projet :
- Conception GUI par MVC pattern,
- Provider pattern,
- Database Repository pattern pour l’accès aux données (aucun moteur ORM! par défaut),
- Web Service Client Repository pattern pour les accès à distance (basé sur REST),
- Moteur de synchronisation (entre la base de données locale au mobile et le Web Service distant),
- Moteur de notification (push),
- Intent pattern pour la navigation (in/extra-app et notification)
- Méta-données par annotation ou fichier de configuration commun
Philosophie :
- Un fichier par tâche
- Dépendance minimale (minimiser l’empreinte par le code de nettoyage automatique (proguard))
- Arborescence de fichiers par namespace
Le Choix
La mobilité se distingue par 5 approches :
- Application Multi-Native (de nombreuses implémentations par domaine, ex: Game, Service …) : +/- dépend du framework
- Application Native : + un seul langage, meilleure performance, meilleure expérience utilisateur – langage unique par plateforme
- Web App (mode hybride) : – utilisation du web et du concept natif pour votre équipe, ressources limitées
- Site mobile : un site Web avec un CSS pour mobile (+ un seul code; – une expérience utilisateur limitée)
- Site Web : un site web (+ no portage; – aucune expérience utilisateur sur mobile)
Harmony permet de concevoir une application Multi-Native.
Pour d’autres approches utilisez : PhoneGAP (Web App) ou Symfony avec HTML5 (site Web et site mobile)
Les avantages d'HARMONY
Ils sont nombreux :
- AUCUNE LIMITATION ! (Limite d’OS uniquement)
- Meilleur rapport performance / autonomie de l’appareil
- Approche prise en charge (AQ, IC …)
- Orienté Java
- Socle applicatif commun et cohérent simplifiant grandement la maintenance de chaque application native (temps de déploiement : Android : 5 minutes, Apple : ~ 5 jours)
- Minimise le temps de développement à 20 minutes (pour n plateformes)
- Bundle pour ajouter des fonctionnalités (géolocalisation, annonces pub, vidéo, …)

Equipe Web App
Durée développement = 55
Composition de l’équipe :
- External Framework
- HTML5
- CSS
- Javascript
- iOS SDK (xcode)
- Android SDK (java 1.5)
- RIM blackberry SDK (javame)

Equipe Applications Natives (x3)
Durée développement = 56 (et non 168 pour les 3 plateformes!)
Composition de l’équipe :
- iOS SDK (xcode)
- Android SDK (java 1.5)
- RIM blackbery SDK (javame)

Equipe framework HARMONY
Durée développement = 32 !!!
Composition de l’équipe :
- Harmony Framework (~10 commands)
- iOS SDK (xcode)
- Android SDK (java 1.5)
- RIM blackberry SDK (javame)