Un backend Cloud pour votre appli Android*



Documents pareils
Google Cloud Platform : Tour d horizon

Cloud. Définition? 08/11/2012. James Urquhart The Wisdom of Clouds

Hébergement MMI SEMESTRE 4

Point sur les solutions de développement d apps pour les périphériques mobiles

Android et le Cloud Computing

TD/TP 1 Introduction au SDK d Android

Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Le tout à l usage dans un IaaS public «Comment une plateforme industrielle permet de déployer des usages applicatifs en accord avec cette promesse»

Windows Azure. Principales fonctions

CAS, un SSO web open source. 14h35-15h25 - La Seine A

Environnements de développement (intégrés)

Construire une application marketing Facebook sur la plateforme Windows Azure

Jean-Philippe Paquette

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Livre Blanc XAMARIN. Le développement mobile multiplateforme

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

Programmation Mobile Android Master CCI

Création d un service web avec NetBeans 5.5 et SJAS 9

SPT Description du cours NORAMSOFT SPT2013. SharePoint 2013 pour développeurs

Cloud. Définition? 04/01/2015. James Urquhart The Wisdom of Clouds

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

SharePoint 2013 Développez en.net pour personnaliser SharePoint (Apps, REST, CSOM et Azure)

QlikView et Google Big Query : Une réponse simple, rapide et peu coûteuse aux analyses Big Data

OpenPaaS Le réseau social d'entreprise

<Insert Picture Here> Maintenir le cap avec Oracle WebLogic Server

Web Tier : déploiement de servlets

Fonctions. Solution professionnelle pour le stockage de données, la synchronisation multi- plateformes et la collaboration

DOCKER MEETUP. Christophe Labouisse

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

MailStore Server 7 Caractéristiques techniques

Alfstore workflow framework Spécification technique

ArcGIS 10 Christophe Tourret Gaëtan Lavenu

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Evolution des SI à l heure du Cloud

Bases Java - Eclipse / Netbeans

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Vers l urbanisation agile d un client mobile ios/android natif, économique, flexible et pérenne

Les journées SQL Server 2013

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Cloud et SOA La présence du Cloud révolutionne-t-elle l approche SOA?

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

Offres de stages 2011/2012

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

IBM Endpoint Manager for Mobile Devices

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Cloud Privé / Public / Hybrid. Romain QUINAT vente-privee.com

DEMARRER UN PROJET BIGDATA EN QUELQUES MINUTES GRACE AU CLOUD

Les fondamentaux du développement d applications Java

Projet Android (LI260) Cours 2

TP au menu «UI ANDROID»

APPLICATIONS MOBILES Catalogue de services Econocom-Osiatis

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Chapitre 1 Retour en arrière

Warren PAULUS. Android SDK et Android x86

Cloud Computing Maîtrisez la plate-forme AWS - Amazon Web Services

INGÉNIEUR - DÉVELOPPEUR SENIOR PHP. 28 ans - 8 ans d'expérience

Stéphane DERACO, DSI CNRS l Argos Devops : de l hyperviseur aux conteneurs l 11/12/2014 DOCKER

+ = OpenStack Presentation. Raphaël Ferreira - enovance. Credits : Thanks to the OpenStack Guys 1

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

La base de données XML exist. A. Belaïd

Cahier des charges. Liny EIP 2013 EPITECH. seban_j, jaspar_y, ringue_t, rousse_g, thierr_o

Auto-évaluation Programmation en Java

Android 4 Les fondamentaux du développement d'applications Java

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Des solutions sur mesure à partir de modules fonctionnels & CRM associés à un studio de customisation.

3 Octobre Les Communautés MS

Plateforme Applicative Zend PHP Cloud

Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris. ArcGIS et le Cloud. Gaëtan LAVENU

La sécurité des données hébergées dans le Cloud

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Tutoriel d installation de Hibernate avec Eclipse

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

Votre premier projet Android

Cloud Computing Cloud Services Workshop

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

de logiciels Web 2.0, SaaS Logiciels collaboratifs Portails pour entreprises Développement iphone, Android WebApp HTML5 Mobile marketing

2011 Hakim Benameurlaine 1

Stratégie IBM de Mobilité d'entreprise

AGILE IPHONE DEVELOPMENT

Getting Started. 10 étapes pour bien démarrer. Avant de démarrer. Première connexion PCC

as Architecture des Systèmes d Information

SQL Server Installation Center et SQL Server Management Studio

Programme ASI Développeur

1. Installation d'un serveur d'application JBoss:

20 ans du Master SIAD de Toulouse - BigData par l exemple - Julien DULOUT - 22 mars ans du SIAD -"Big Data par l'exemple" -Julien DULOUT

Technologies Web avancées. ING1 SIGL Technologies Web avancées

APPS PANEL. Lyon Paris

Master1 ère année. Réseaux avancés I. TP nº5 filière ISICG

Séminaire Partenaires Esri France 7-8 juin Paris Les API ArcGIS pour les smartphones

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :

Présentation SafeNet Authentication Service (SAS) Octobre 2013

Programmer en JAVA. par Tama

Transcription:

Un backend Cloud pour votre appli Android* Mobile Backend Starter avec Alexis Moussine-Pouchkine *: et pour ios aussi

http://goo.gl/tf0o6j

Done!

Oui, mais parler au serveur c est {compliqué pas drole}! newpost = CloudEntity ("GuestBook"); // onclick method newpost.put ( "message", etmessage.gettext().tostring() ); getcloudbackend().insert(newpost); Plutôt simple, non?

Envoi de messages Stockage de données (entre utilisateurs mobiles) (préférences, état partagé) pourquoi construire une infra quand on peut utiliser un service? Authentification Notification d événements (changement d état, coté serveur ou client) (OAuth 2) Auto-scale

Google App Engine

Google Cloud Endpoints

Cloud Endpoints

@Api(name = "helloworld", version = "v1") public class Greetings { public static ArrayList<HelloGreeting> greetings = public HelloGreeting getgreeting(@named("id") Integer id) { return greetings.get(id); } } mvn appengine:devserver http://localhost:8080/_ah/api/explorer @ApiMethod(name = "greetings.multiply", httpmethod = "post") public HelloGreeting insertgreeting(@named("times") Integer times, HelloGreeting greeting) { HelloGreeting response = new HelloGreeting(); StringBuilder responsebuilder = response.setmessage(responsebuilder.tostring()); return response; }

@ApiMethod(name = "greetings.authed", path = "greeting/authed") public HelloGreeting authedgreeting(user user) { HelloGreeting response = new HelloGreeting("hello " + user.getemail()); return response; } @Api( name = "helloworld", version = "v1", scopes = {"https://www.googleapis.com/auth/userinfo.email"}, clientids = {Constants.WEB_CLIENT_ID, Constants.ANDROID_CLIENT_ID, Constants.IOS_CLIENT_ID, Constants.API_EXPLORER_CLIENT_ID}, audiences = {Constants.ANDROID_AUDIENCE} )

APIs REST AppEngine : Python ou Java OAuth 2.0 Outils: Maven, Eclipse, Android Studio, API Explorer... Même infra que les APIs Google Librairies Android, ios, JavaScript, Python, Dart, PHP,...

Mobile Backend Starter Avec ou sans coding coté serveur...

Mon Livre d Or

http://goo.gl/tf0o6j

Déployer son instance MBS http://cloud.google.com/console

Mobile Backend Starter en 3 étapes 1. Livre d or partagé Stockage des messages Scalabilité backend (serveur et datastore) Zéro code serveur 2. Notifications Maj. sans polling Push messaging avec GCM 3. Authentification Propagation de l utilisateur Android Oauth2 transparent pour l utilisateur

la clé du zéro code

1. Stockage de données Cloud Datastore : le NoSQL de Google Schemaless, scalabilité quasi-infinie Disponible sous forme de service Abstraction dans les classes du framework MBS pour Android

Coté client Android : GuestbookActivity private List<CloudEntity> mposts... newpost = CloudEntity ("GuestBook"); // onclick method newpost.put ( "message", etmessage.gettext().tostring() ); CloudCallbackHandler<CloudEntity> handler = new CloudCallbackHandler<>() { public void oncomplete(final CloudEntity result) {... } public void onerror(final IOException exception) {... } } getcloudbackend().insert(newpost, handler);

2. Notifications

public interface Consts { // Device Registration. Listen to whom? public static final String PROJECT_NUMBER = "31937802652"; } public class GCMBroadcastReceiver extends WakefulBroadcastReceiver { } public class GCMIntentService extends IntentService { protected void onhandleintent(intent intent) { GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this); String messagetype = gcm.getmessagetype(intent); WakefulBroadcastReceiver.completeWakefulIntent(intent); } }

3. Authentification I. Associer un utilisateur aux messages stoqués dans le DataStore II. Partager les données d un utilisateur sur différents devices III. Partager des messages avec des utilisateurs spécifiques

Hasbeen Cool

Consent Screen (?) OAuth 2 Standard et puissant Utile pour les applications tierces mais pas indispensable pour notre appli Android

Même développeur!

Deux ClientID ClientID Web pour établir que le développeur est le même pour l application Android et pour le serveur, évitant ainsi la présentation de l écran de consentement OAuth2. => utilisé dans la configuration du backend et dans l application Android ClientID pour l application Android, basé sur le nom de package et le SHA1 issu du keystore Android de debug ou de release mode. => utilisé dans la configuration du backend

Coté Backend Code Open Source sur GitHub: http://goo.gl/fgkrl Utile pour : Rajout de endpoints spécialisés (stats, activités,...) Gestion du stockage (Cloud Storage, SQL) Accès machines virtuelles (Compute Engine) Analyse de données (Big Query) etc...

Pour ios aussi Bibliothèque ObjectiveC Intégration des Apple Push Notifications

Mobile Backend Server Pas de développement coté serveur (option) Cloud Datastore Authentification avec des comptes Google Notification en mode Push Scalabilité intégrée developers.google.com/cloud/samples/mbs/

Questions?

Mobile Backend Starter avec Alexis Moussine-Pouchkine google.com/+alexismp alexismp@google.com