introduction à samsung bada

38
Introduction à l’environnement bada 10/10/2011

Upload: bemyapp

Post on 28-Nov-2014

2.014 views

Category:

Technology


0 download

DESCRIPTION

Présentation du de la 1ère formation à bada dans le cadre du WeekEnd BeMyApp bada.

TRANSCRIPT

Page 1: Introduction à Samsung bada

Introduction à l’environnement bada

10/10/2011

Page 2: Introduction à Samsung bada

Ecosystème

Page 3: Introduction à Samsung bada

Les produits bada

Des smartphones premium pour utilisateurs intensifs

Famille WVGA

Ecran WVGA

UI 32 bits & transparences

OpenGL ES 1.1 + 2.0

Multiples capteurs

Connectivité complète

Multitouch 6 points

HTTP Live Streaming

Des smarpthones accessibles pour démocratiser les usages

Famille HVGA

Ecran HVGA

UI 32 bits & transparences

OpenGL ES 1.1 + 2.0

Pas de boussole ni tilt

Connectivité complète

Multitouch 5 points

HTTP Live Streaming

Des smartphones entrée de gamme pour tous

Famille WQVGA

Ecran WQVGA

UI 16 bits sans transparence

Pas d’OpenGL

Capteurs optionnels

Connectivité complète

Multitouch 2 points

Pas de Live Streaming

Page 4: Introduction à Samsung bada

Les sites Web

Le site de référence pour le développeur d’application

developer.bada.com

Téléchargement du SDK

Génération des manifestes

Tutoriels et exemples

Forum de support

Premium Support Service

Documentation en ligne

Spécifications des mobiles

L’interface de gestion des applications commercialisées

seller.samsungapps.com

Guidelines éditeur

Soumission des applications

Marketing des applications

Rapports financiers

Questions utilisateurs

Rapport de test

Support éditeur

Le flux d’information live concernant l’univers bada

@samsungbada sur Twitter

News développeurs

Alertes sur les nouveaux articles ou outils disponibles sur developer.bada.com

Au choix : - Utilisation du même compte - Utilisation de comptes développeur / éditeur différents

Page 5: Introduction à Samsung bada

Outils de développement

Page 6: Introduction à Samsung bada

Le SDK bada

Un outil visuel pour créer votre interface graphique

UI Builder

Création graphique des Forms

Placements des contrôles

Actions (Events) supportées

Insertion du code des Events

Génération du XML

Choix des visuels

Plusieurs résolutions gérées

Testez vos développements directement sur votre ordinateur

Emulateur

Support des trois familles

Emulation des boutons

Event injector : - Appels, messages, réseau - Localisation (GPS) - Capteurs (Proximity, Tilt …) - Système (batterie, casque …) - NFC

Un outil de monitoring pour optimiser votre application

Perf. Analyzer + Profiler

Sur émulateur ou terminal

Consommation mémoire

Utilisation base de données

Différentes vues disponibles

Alertes : fuites de mémoire …

Système de fichiers

Temps passé par méthode

Basé sur Eclipse, l’IDE permet de réaliser toutes les tâches liées au développement : codage, UI, compilation, test sur émulateur ou sur un terminal, debugging et optimisation …

Page 7: Introduction à Samsung bada

Trois bases possibles pour votre application

Utilisez très simplement toutes les APIs natives de bada

Développement C++

Accès à toutes les APIs

UI builder WYSIWYG & C++

Grand choix de composants UI

Capitalisez sur votre expérience des applications Web

Développement Web

HTML5, CSS, composants UI

JavaScript + approche Objets

Services du terminal accessibles via APIs WAC

Intégrez vos créations Flash dans une application bada

Développement Flash

Contenu Flash + ActionScript

Interaction avec le système via APIs dédiées

Trois types de développements différents pour que chaque développeur puisse tirer parti de son expérience passée. Des APIs toujours disponibles pour pouvoir utiliser les fonctions et les capteurs du mobile.

Page 8: Introduction à Samsung bada

Process de développement

Page 9: Introduction à Samsung bada

Aperçu du process de développement

Création du manifeste

Déclaration des privilèges

Pré-requis HW

Terminaux cibles

Développement

Option 1 : C++

Option 2 : Flash

Option 3 : Web

Test

Sur l’émulateur ou via le RTL

Sur des terminaux

Profiling / Resource monitor

Soumission de l’application

Saisie des infos de publication

Choix des pays de diffusion

Choix du prix

Certification par Samsung

Sur tous les terminaux cibles

Dans tous les pays cibles

Rapport de test détaillé

Application commerciale

Suivi des statistiques

Promotions, bannières

Questions des utilisateurs

Mis

e à

jou

r

dev

elo

per

.bad

a.co

m

dev

elo

per

.bad

a.co

m

dev

elo

per

.bad

a.co

m

selle

r.sa

msu

nga

pp

s.co

m

selle

r.sa

msu

nga

pp

s.co

m

selle

r.sa

msu

nga

pp

s.co

m

Page 10: Introduction à Samsung bada

Création du manifeste

Création du manifeste

Déclaration des privilèges

Pré-requis HW

Terminaux cibles dev

elo

per

.bad

a.co

m Choix du numéro de version

Choix de la version d’API cible

Sélection des groupes de privilèges Sélection des terminaux cibles

Les différentes versions d’OS sont rétro-compatibles !

Certaines APIs requièrent des privilèges Certains privilèges sont réservés aux développeurs de statut Partner. On peut ajouter ou enlever des privilèges à tout moment, il suffit de régénérer un manifeste.

Nécessaire pour bada 1.x, géré automatiquement pour bada 2.0

Téléchargement du fichier XML

A intégrer au projet dans l’IDE Interdiction formelle de modifier le fichier manuellement, tout changement doit être effectué sur developer.bada.com

Choix du type de développement

Page 11: Introduction à Samsung bada

Développement

Option 1 : C++

Option 2 : Flash

Option 3 : Web

Développement d

evel

op

er.b

ada.

com

Création du projet dans l’IDE

Intégration du manifeste

Développement

Support

C++, Web ou Flash au choix Possibilité de remplacer le manifeste, pour intégrer des privilèges différents par exemple

Documentation complète dans le SDK Multiples applications de démonstration Ressources en ligne sur developer.bada.com :

Exemples de code Tutoriels vidéo

Premium Support Service

Page 12: Introduction à Samsung bada

Test

Sur l’émulateur ou via le RTL

Sur des terminaux

Profiling / Resource monitor

Test d

evel

op

er.b

ada.

com

Compilation

Préparation du terminal

Run as > Target

Installation à distance

L’application est installée et exécutée Les traces sont affichées dans la console Les outils de profiling sont utilisables

Installation du Test Kit depuis Samsung Apps Configuration du Test Kit sur developer.bada.com Packaging et upload du binaire de test Déploiement OTA sur les terminaux autorisés

Recette facilitée

Version logicielle adaptée Installation du certificat de test Configuration du port USB et connexion

Run as > Emulator

Test immédiat sur émulateur Event Injector pour simuler tous les événements systèmes : appels, position gps, accéléromètre …

Page 13: Introduction à Samsung bada

Soumission de l’application

Saisie des infos de publication

Choix des pays de diffusion

Choix du prix

Soumission de l’application

Packaging

Connexion au Seller Office

Edit Application

Add New Application Possibilité de modifier la fiche existante Upload d’un nouveau package

Mise à jour du manifeste Même AppID Numéro de version supérieur

Création de la fiche Samsung Apps incluant : Titre de l’application Catégorie Restriction d’âge éventuelle Prix Description + Tags Icône (identique à celle du menu) Captures d’écran Vidéo de présentation (optionnel) Période de vente Pays cibles Terminaux cibles

Avec le compte développeur ou éditeur selle

r.sa

msu

nga

pp

s.co

m

Depuis l’IDE, en configuration Target-Release

Résultat de la certification

De 7 à 10 jours ouvrés Application mise en ligne si certification OK Mise à jour nécessaire si certification refusée Guidelines disponibles via le Seller Office

Page 14: Introduction à Samsung bada

Vérification du contenu sans test technique Guidelines disponibles via le Seller Office

Pas de jeux d’argent Catégorie d’âge correcte Disclaimers (Push, Localisation…) Copyright de marques Facturation via Samsung Apps uniquement Etc

Certification par Samsung

Sur tous les terminaux cibles

Dans tous les pays cibles

Rapport de test détaillé

Certification par Samsung

Soumission de l’application

Certification du contenu

Rapport de test

Vérification du fonctionnement

De 7 à 10 jours ouvrés Dans tous les cas un rapport est édité Deux types de retours :

Defects : à corriger impérativement Recommandations : avertissements

Dans tous les pays cibles Sur tous les terminaux cibles Disponibilité des contenus en ligne (compte ?) Gestion des interruptions Respect du cycle de vie

selle

r.sam

sun

gap

ps.

com

Page 15: Introduction à Samsung bada

Application commerciale

Suivi des statistiques

Promotions, bannières

Questions des utilisateurs

selle

r.sam

sun

gap

ps.

com

Elles pourront être utilisées par Samsung pour promouvoir l’application :

Dans Samsung Apps sur les mobiles Dans Samsung Apps sur le web Dans Samsung Apps sur Kies

Application commerciale

Application mise en ligne

Upload de bannières

Mises en avant exceptionnelles

Promotions

Intégration de l’application dans les listes des apps recommandées (première page de Samsung Apps) A négocier au cas par cas avec Samsung France

Possibilité de changer temporairement le prix d’une application L’ancien prix apparait barré pour montrer le caractère exceptionnel de la promotion

Nombre de téléchargements Bilan financier

Consultation des statistiques

Page 16: Introduction à Samsung bada

Cycle de vie d’une application dans le mobile

Page 17: Introduction à Samsung bada

Les étapes du cycle de vie d’une application

Lancement

OnAppInitializing()

OnForeground()

Utilisation

OnAppTerminating()

Arrêt

OnBackground()

Splash Screen

Disparition du Splash Screen

- Appui sur la touche END

Retour au premier plan

- Appui sur la touche HOME (*) - Affichage d’un pop-up système - Autre application au premier plan

Manque de ressources système

Fonctionnement

Initialisation

Libération des ressources

(*) Sous bada 2.0, les applications qui ne sont pas déclarées ‘multitâche’ sont automatiquement arrêtées quand une autre application bada est lancée.

Page 18: Introduction à Samsung bada

La méthode qui prépare une application à passer en arrière plan

OnBackground()

Destruction de la UI

Arrêt des connectivités

Arrêt des traitements

Gestion des ressources

La méthode principale pour mettre en route votre application

OnAppInitializing()

Allocation de la mémoire

Création du Frame de base

Chargement du registre

La méthode qui remet en route une application mise en arrière plan

OnForeground()

Restauration de la UI

Relance des connectivités

Relance des traitements

Charge au développeur de déterminer quels traitements doivent être arrêtés ou maintenus quand l’application passe en arrière plan.

La méthode en charge de l’arrêt de l’application

OnAppTerminating()

Destruction de la UI

Libération des ressources

Sauvegarde dans le registre

Les éléments graphiques (Frame, Form et tous les objets associés) sont détruits avant l’appel de cette méthode, le développeur n’a pas à s’en soucier.

Allocation

Libération

Page 19: Introduction à Samsung bada

Système de fichiers

Page 20: Introduction à Samsung bada

Système de fichiers

/Home

/Home/Share

/Home/Share2

/Media

/Share2/<AppID>

/Res

/HomeExt

/HomeExt/Share

/HomeExt/Share2

/ShareExt/<AppID>

/Share2Ext/<AppID>

Ap

plic

atio

n

Répertoire racine de l’application (RW)

Répertoire partagé avec d’autre apps (RW)

Répertoire partagé avec les apps de confiance (RW)

Répertoire de l’application sur carte externe (RW)

Répertoire partagé sur carte externe avec d’autre apps (RW)

Répertoire partagé sur carte externe avec les apps de confiance (RW)

Répertoire des ressources graphiques du package (RO)

Term

inal

/Share/<AppID>

Répertoire des fichiers multimédia (RW)

Répertoire partagé d’une autre application (RO)

Répertoire partagé d’une application de confiance (RW)

Répertoire partagé sur carte externe d’une autre application (RO)

Répertoire partagé sur carte externe d’une app de confiance (RW)

/StorageCard/Media Répertoire des fichiers multimédia sur carte externe(RW)

/Clipboard Contenu du presse papier pour les copier/coller de fichiers (RO)

Page 21: Introduction à Samsung bada

Les APIs et leur documentation

Page 22: Introduction à Samsung bada

La documentation

Namespace

Des Namespaces par thème pour plus de clarté

Introduit dans la version d’API

Pour utiliser des APIs adaptées aux terminaux cibles

Niveau et groupe de privilèges

Permet de savoir : Si une déclaration dans le manifeste est requise Quel groupe de privilèges doit être coché

Description de l’API

Tout ce qu’il faut savoir pour l’implémenter

Page 23: Introduction à Samsung bada

Les privilèges

Des fonctions réservées aux développeurs partenaires

System

Quelques APIs puissantes

Autorisation de Samsung requise avant déclaration dans le manifeste

Des APIs puissantes nécessitant des privilèges particuliers

Normal

Connectivité, Capteurs, FS …

Ouvert à tous, sous réserve de déclaration dans le manifeste

Des APIs courantes utilisables sans condition

Non-privileged

La majorité des API

Pas de déclaration dans le manifeste requise

La documentation précise le niveau de privilège et, le cas échéant, le groupe de privilèges requis pour chaque API.

Le SDK propose un outil pour vérifier que le manifeste inclus les privilèges requis pour autoriser les APIs utilisées dans le code. Il faut éviter d’inclure des privilèges inutiles dans le manifeste pour simplifier la certification ultérieure de l’application.

Page 24: Introduction à Samsung bada

Trois concepts importants

Le mécanisme des Exceptions n’est pas supporté par bada

Pas d’Exceptions

Aucun support des Exceptions

A la place : Renvoi d’un Result Utilisation de SetLastResult() et GetLastResult()

Les objets doivent se construire en deux phases pour éviter les fuites

Construction en deux phases

Le constructeur n’alloue rien

Allocation déportée dans la méthode Construct()

Son Result indique la résultat de la construction

Tout objet n’a qu’un propriétaire qui doit libérer les ressouces

Appartenance des objets

Un propriétaire par objet

Transmission de propriété

Méthodes en xN : L’appelant est propriétaire du résultat et doit donc le détruire en temps voulu

Page 25: Introduction à Samsung bada

Quelques Namespaces remarquables

Page 26: Introduction à Samsung bada

Ads

Regroupe les APIs permettant d’utiliser le service de publicité intégré au SDK bada

Osp::Ads d

evel

op

er.b

ada.

com

Intégration du service dans le code

Configuration du service

Utilisation des APIs pour récupérer des publicités Possibilité de déclencher l’ouverture d’une page web, l’appel d’un numéro ou l’ouverture de Samsung Apps en cliquant sur la bannière

Paramétrage des publicités sur developer.bada.com > Home

> My Applications > Application Manager Setup Component

Gestion du compte (reports, etc)

Page 27: Introduction à Samsung bada

Osp::App

Tout pour contrôler son application et la faire interagir avec le terminal et les autres applications

Osp::App d

evel

op

er.b

ada.

com

AppResource

System Events

Récupérer automatiquement les chaines de caractères en fonction de la langue du mobile Récupérer automatiquement les bonnes ressources graphiques en fonction de la résolution de l’écran

Récupération des événements systèmes et matériel (batterie, réseau …) afin de pouvoir y répondre

AppRegistry

Un registre permettant de sauvegarder l’état de l’application et de le restaurer à l’exécution suivante

AppManager

Programmer l’exécution de l’application en fonction de l’heure ou d’événements système

AppControl

Pour exporter les services de l’application afin que les autres applications puissent en tirer parti Comparable aux Intents Android

Page 28: Introduction à Samsung bada

Osp::Commerce

Samsung Apps gère la vente d’articles ou de services depuis votre application

Osp::Commerce d

evel

op

er.b

ada.

com

Intégration du service dans le code

Configuration du service

Récupération de la liste des articles en vente Gestion de la transaction Samsung Apps prend en charge la facturation

Définition des articles et de leur prix via le Seller Office Organisation des articles en groupe pour gérer aisément plusieurs applications Mode Test pour faciliter le développement

Page 29: Introduction à Samsung bada

Osp::Location

Des outils de géolocalisation et de cartographie pour tous les usages

Osp::Locations d

evel

op

er.b

ada.

com

Location Provider

Location Service Provider

Outil de récupération d’une position GeoFencing Entièrement paramétrable : fréquence, moyen…

Récupération de cartes (Navteq) Geocoding Calcul d’itinéraires Service d’annuaire

Les services Navteq n’ont aucun caractère obligatoire On peut donc utiliser d’autres fournisseurs Les services Navteq sont régis par des

conditions d’utilisation définies sur le Seller Office

Map Control

Divers outils pour afficher des cartes, gérer différentes couches et placer des points d’intérêt

Page 30: Introduction à Samsung bada

Osp::Media

De multiples outils pour le multimedia : Streaming, manipulation d’images, conversion audio, caméra …

Osp::Media d

evel

op

er.b

ada.

com

AudioIn & AudioOut

Lecture et enregistrement audio

AudioEncoder & AudioDecoder

Outils de conversion Raw <> Format compressé

VideoEncoder & VideoDecoder

Outils de conversion Raw <> Format compressé

Camera

Utilisation de l’appareil photo du terminal

AudioRecorder & VideoRecorder

Utilisation de la caméra et du micro du terminal

Player

Lecteur multimédia complet incluant le Streaming

Page 31: Introduction à Samsung bada

Osp::Messaging

Pour utiliser les différentes messageries du téléphone, mais aussi le service de notifications Push

Osp::Messaging d

evel

op

er.b

ada.

com

SMS

Envoi / Réception de SMS depuis l’application

MMS

Envoi de MMS depuis l’application

Email

Envoi de mails depuis l’application

PushManager

Réception de notifications Push sur le terminal Réception possible :

De messages De badges (incrément ou valeur absolue)

Page 32: Introduction à Samsung bada

Osp::Base

Les outils clé pour gérer les types de données, les threads et autres outils de base du développeur

Et les incontournables … d

evel

op

er.b

ada.

com

Osp::Content

Tout pour gérer les contenus multimédia et leurs métadonnées dans la gallerie du mobile

Osp::Graphics

Les outils de base pour toutes les représentations graphiques y compris OpenGL d

evel

op

er.b

ada.

com

dev

elo

per

.bad

a.co

m

Osp::Io

Les outils classiques pour gérer les entrées / sorties vers des fichiers, le registre ou encore une base de données d

evel

op

er.b

ada.

com

Osp::Locales

Rendez votre application internationale en adaptant la langue ou les préférences locales (format de date, etc) d

evel

op

er.b

ada.

com

Osp::Net

Tirez parti des capacités de communication du mobile : HTTP, Sockets, Bluetooth, WiFi, WiFi Direct, NFC d

evel

op

er.b

ada.

com

Osp::Security

Divers outils de chiffrement et de protection basés sur l’utilisation de clés ou de nombres pseudo-aléatoires d

evel

op

er.b

ada.

com

Osp::Social

Des APIs permettant de se connecter simplement aux principaux réseaux sociaux

dev

elo

per

.bad

a.co

m

Page 33: Introduction à Samsung bada

Osp::System

Toutes les ressources pour connaitre l’état du mobile, gérer au mieux la batterie et interagir avec ses accessoires

Et les incontournables … d

evel

op

er.b

ada.

com

Osp::Telephony

Des outils pour gérer les appels ou être notifié des changements liés au réseau

Osp::Text

Tout pour décoder ou convertir du texte encodé selon différentes tables de caractères

dev

elo

per

.bad

a.co

m

dev

elo

per

.bad

a.co

m

Osp::Ui

Comprend tous les outils pour utiliser les contrôles UI standards de la plateforme

dev

elo

per

.bad

a.co

m

Osp::Uix

Des interactions avancées : reconnaissance de visages, TTS/STT, accès direct capteurs, haptic feedback, météo d

evel

op

er.b

ada.

com

Osp::Web

Pour afficher des pages web dans l’application ou traiter les données JSON

dev

elo

per

.bad

a.co

m

Osp::Xml

Pour manipuler ou parcourir les fichiers XML ou HTML

dev

elo

per

.bad

a.co

m

Page 34: Introduction à Samsung bada

Architecture de l’interface utilisateur

Page 35: Introduction à Samsung bada

Architecture de l’interface utilisateur

Un Frame unique par application

Plusieurs Forms

Tous liés au Frame de base A tout instant un seul Form est visible

Plusieurs Controls par Form

Chaque Control est lié à un Form ou un Container Le positionnement doit se faire de façon relative pour s’adapter aux différentes résolutions

Des Listeners pour les événements

Différents Listeners permettent d’être alerté quand l’utilisateur manipule la UI

Page 36: Introduction à Samsung bada

Les Listeners

Page 37: Introduction à Samsung bada

Les Listeners

Des alertes asynchrones

Sous la forme d’Interfaces à implémenter Disponibles pour tous les objets renvoyant des résultats asynchrones : UI, capteurs, événements système, etc

Attention à ne pas exécuter de code lourd dans les Listeners afin de garder une interface réactive !

Création d’un Listener

Création d’un objet

Control UI, SensorManager, etc

Ajout du Listener à l’objet

Appel d’une méthode du Listener

Event

Un Listener comporte plusieurs méthodes Une méthode différente est appelée selon l’Event

Charge au développeur d’implémenter le comportement voulu pour chaque méthode

Page 38: Introduction à Samsung bada