Mot-clé - Android

Fil des billets - Fil des commentaires

Devfest 2014 devfest-2014-vue.jpg

Cette année, le GDG Nantais a vu les choses en grand en regroupant plus de 500 développeurs passionnés au sein d'un seul endroit, le DevFest. Avec 25 conférences sur des thématiques autour du Web, du mobile et du Cloud, le DevFest 2014 fut très riche en contenu.

J'ai profité de cette journée pour découvrir les sujets que je souhaitai découvrir. La richesse des sujets m'a obligé de faire des choix pour sur certaines conférences.

Au programme de ma journée :

  • Introduction sur Docker
  • Modulariser son application AngularJS avec Browserify
  • Développer pour Android TV
  • Introduction à Google Wear
  • Présentation de Data Flow et de Flume Java
  • Présentation de JHipster, une solution pour générer des portails de Hipster avec un backend Java

Un grand merci aux organisateurs du DevFest pour l'invitation à l'événement. Le DevFest m'a aussi permis de recroiser deux blogueurs influents de la toile : Ulrich de Frandroid et Yohann de Blog Nouvelles technologies.

Introduction sur Docker

devfest-2014-docker.jpg

David Gageot a réalisé une présentation d'introduction sur Docker. La présentation a permis d'appréhender cet outil de virtualisation basé sur le kernel Linux et permettant aux développeurs de déployer rapidement leurs applications sur des environnements Linux spécifiques.

En terme de performance, Docker est très performant, il se repose directement sur le kernel Linux. Les nombreuses images de Docker disponibles font de Docker un outil intéressant sur les phases de développement / déploiement. Au lieu de déployer un applicatif, l'idée de docker est de déployer une image Docker en production. Permettant ainsi d'avoir dès la phase de développement une cible de production et de simplifier les phases de mise en production de l'applicatif.

Si vous ne connaissez par encore Docker, je vous conseille vivement de découvrir cet outil au travers de la vidéo ci-dessous de David Gageot.

Modulariser son application AngularJS avec Browserify

devfest-2014-angular.jpg

Antoine Richard a fait une belle présentation sur l'adaptation d'AngularJS aux méthodes de développement NodeJS (modules, npm ...). Il préconise pour modulariser au maximum les applications AngularJS, d'utiliser les mêmes règles de développement NodeJS et d'utiliser l'outil Browserify pour rendre les scripts JS développés compatibles sur navigateur Web.

Au final, cela permet de simplifier le code développé. Mais cela permet surtout de tester l'ensemble du code développé via NodeJS sans passer par une solution comme Karma par exemple.

Développer pour Android TV

Xavier Hallade nous a présenté comment adapter une application mobile Android pour l'Android TV. Xavier a profité de la conférence pour faire une belle présentation d'Android TV Nexus commercialisée uniquement au Canada et aux États-Unis pour le moment.

Le store de l'Android TV est ouvert depuis 5 jours, contrairement au Google Play, les applications publiées sur l'Android TV passent par une revue interne de Google. Seules les applications de qualité sont validées et publiées sur le store de l'Android TV. Sinon, en terme d'adaptations du code, il est très simple d'adapter une application existante à l'Android TV. 90% des adaptations se font directement dans le fichier Manifest de l'application.

devfes-2014-androidtv.jpg

devfest-androidtv2.jpg

Introduction à Google Wear

Cyril Mottier, expert Android et développeur mobile au sein de Capitaine Train a partagé son retour d'expérience sur le développement d'applications mobiles sur les montres Android.

capitaine-train-android-wear.png

Les 3 choses à retenir des Android Wear :

  • La conception ergonomique d'une application Android Wear est très importante, elle doit indiquer la bonne information au bon moment dans un minimum d'espace.
  • Le développement sur Android Wear est identique au développement d'une application classique Android à l'exception de certains packages qui ne sont pas disponibles.
  • Les applications Android Wear doivent être packagées via Gradle au sein d'une application Android classique pour pouvoir être déployée via le Google Play.

En cible le SDK Android Wear et Google Glass devraient être similaires.

Présentation de Data Flow et de Flume Java

devfest-2014-dataflow.jpg

Martin Görner a partagé la vision de Google sur l’évolution du Map & Reduce proposée autour de la solution Dataflow.

Suite à la diffusion du papier blanc de Google sur le Map & Reduce en 2004, la majorité des solutions Big Data du marché actuel se reposent sur ce paradigme implémenté par la solution Apache Hadoop. Martin Görner a présenté la manière dont on peut améliorer les traitements Map & Reduce via la solution Dataflow. Cette solution permet au travers d'un pipeline virtuel de transformer et de traiter de la donnée en grande échelle. Dataflow ressemble dans la philosophie à l'outil Pig, il permet cependant de réaliser des traitements en temps réel.

Une implémentation alpha de Flume Java devrait voir le jour d'ici quelques semaines / mois. Il est probable que Google propose une offre Dataflow sur son GCloud.

Cette solution, une fois stable, pourrait remplacer l'implémentation Map & Reduce Hadoop actuelle connue de tous et utilisée sur une majorité de solutions Big Data.

Présentation de JHipster

devfest-2014-jhipster.jpg

Julien Dubois a présenté son outil de génération de portail Java / AngularJS : JHipster. Traduisez : Java for Hipster ou comment permettre à un Hipster qui développe des portails avec des technologies "Hype" d'utiliser un backend Java généré pour ses besoins.

JHipster possède aujourd'hui plus de 1000 étoiles sur Github et plus de 230 fork. Grâce à Yeoman, JHipster permet de générer des portails Web AngularJS basés sur un backend REST généré automatiquement par l'outil. En moins d'une demi-heure vous pouvez concevoir des applications Web avec un backend Java scalable et performant pouvant utiliser une base NoSQL ou SQL pour stocker ses données.

Cet outil est un merveilleux accélérateur de développement pour ceux et celles qui souhaitent déployer rapidement des portails Web. Cependant, une fois le portail généré, toutes les adaptations doivent ensuite être réalisées manuellement. L'outil ne fournit pas de fonction de merge entre le code produit et les modifications réalisées au sein du code.

Si vous ne connaissez par encore JHipster, allez faire un tour sur la présentation en ligne de l'outil. Vous allez voir, c'est magique, c'est hype !

ring

Vous l'avez peut-être découvert dans mon précédent article, la nouvelle sonnette connectée Ring devrait bientôt voir le jour aux US.

Cette nouvelle sonnette s'annonce comme une amélioration majeure de la sonnette vidéo Doorbot que je vous avais présentée il y a quelques mois.

Le Ring est toujours en mode "Pre-order" à 199$ au lieu de 249$, prévoyez tout de même 20% de TVA lors du passage en douane. Suite à retard sur la réception d'un composant, les premières sonnettes qui devaient partir cette semaine seront finalement envoyées début décembre. Seule, une centaine de "beta-users" recevra le Ring en avant-première.

Pour les possesseurs de Doorbot, la bonne nouvelle est qu'une mise à jour majeure du firmware est prévue d'ici la fin du mois pour l'ensemble des utilisateurs. Il faut certainement s'attendre à des améliorations sur la qualité des vidéos et à une compatibilité du Doorbot avec l'application mobile Ring qui permet d'avoir une meilleure gestion de la sonnette.

Le déballage de la boite

Comme vous pourrez le découvrir dans la vidéo ci-dessous, la société Ring a fait un très gros effort sur le packaging en offrant une mallette d'outils directement incluse dans la boîte.

La présentation de l'application mobile

Les fonctionnalités de l'application mobile ressemblent à celles actuellement proposées dans l'application Doorbot sur iOS / Android. On aperçoit quelques nouveaux écrans affichant la version du firmware installé, la configuration des champs de détection de mouvement...

Une démo de la sonnette

La caméra utilisée est une caméra grand-angle qui offre une bonne qualité de vue. On remarquera cependant toujours la perte de quelques frames sur le streaming vidéo.

Stay tuned ! Tests réels et déballage du Ring prévus début décembre sur ce blog.

geek-ludovic.jpg

Vous êtes aujourd'hui plus de 20 000 à revenir régulièrement sur ce blog. Pour certains d'entre-vous, cela fait plusieurs années que vous lisez ce blog, pour d'autres quelques mois voire quelques jours peut-être ...

Je parle très rarement de moi sur ce blog, vous êtes très peu à connaitre mon vrai visage.

Voici 5 anecdotes geeks pour mieux me connaitre ;-)

1988

J'ai 8 ans, je découvre les joies du Basic sur mon Amstrad CPC 6128. Je tente de recopier plusieurs fois sur mon Amstrad le code source Basic des applications Paint et Ping-Pong présents dans les dernières pages du manuel de l'Amstrad. Mais je n'ai jamais réussi à les faire fonctionner correctement, comme la plupart des personnes qui ont eux aussi perdu de nombreuses heures sur des dizaines de pages de code à recopier.

Amstrad_CPC_6128.jpg

2002

En 2002 j'étais convaincu que je pourrai offrir du Wifi gratuit à tous les habitants de Nantes, la 3G n'existait pas encore et le Wifi n'était pas autorisé en France. J'avais importé du matériel Wifi des USA à l'époque.

2009

Dans le cadre du concours SFR de développement d'applications mobiles sur Android, j'ai remporté le deuxième prix grâce à mon concept d'application Android M-SOS développée en quelques heures. L'idée de l'application m'est venue à l'époque lors d'une formation de secourisme.

M-SOS

2010

Grâce au concours d'application Smartphone SNCF, je suis parti visiter gratuitement les sociétés de la Silicon Valley au travers d'un Geek Trip organisé par Philippe Jeudy. Au programme, visites de Google, Microsoft, Twitter, Foursquare ... Voyage très enrichissant !

google-geektrip.jpg

2010

Dans le cadre des journées recyclage de terminaux mobiles chez Orange, j'ai tourné un spot publicitaire avec Sébastien Chabal. Ne rigolez pas ! Le clip a été diffusé sur le Web seulement.

revue,blog,news,geek


bullet Abonnez-vous à ces revues par feed rss news geek ou par email news geek
bullet Découvrez les anciennes revues
bullet N'oubliez pas de me suivre sur Twitter, Facebook et Google+

htc dream android

Android a bien évolué depuis cette époque où le HTC Dream venait d’apparaître sur le marché français via Orange.

En terme de qualité de l'interface, de réactivité et de capacité système, les choses ont bien changé ! A l'époque, il fallait tout débourser plusieurs centaines d'euros pour ce fleuron de la technologie Android ;-)

La réactivité de l'écran n'était pas bonne, les applications étaient très lentes et limitées ... En 5 ans, Android a pris une très grande partie du marché des smartphones vendus dans le monde.

Aujourd'hui, même madame Michu possède un téléphone Android sans le savoir. La 3G/4G est presque inclus de base dans tous les forfaits mobiles et les terminaux Android sont vendus à des tarifs très agressifs.

Souvenez-vous, c'était il y a 5 ans ...

power-outage.png

Vous souhaitez être prévenu rapidement par SMS en cas de coupure de courant à votre domicile à votre lieu de travail ? Voici une solution très simple et peu onéreuse que vous pouvez mettre en place.

Cette solution consiste à utiliser un vieux téléphone Android équipé d'une SIM Free Mobile à 0€ ou 2€.

Une application Android "Power Outage Alarm" vous permet d'être alerté par SMS à la moindre coupure de courant. Il suffit d'installer l'application et de configurer le numéro de téléphone contacter. Au moindre arrêt de l'alimentation du téléphone, un SMS sera transmis automatiquement pour vous prévenir de la coupure de courant, cela peut-être pratique si votre système d'alarme ne fonctionne pas sur un onduleur ou si vous avez des systèmes critiques à superviser (chambre frigorifique, baie de serveur ...).

Pour les geeks, il est possible de développer très simplement une application similaire. L’événement transmis par le système Android est ACTION_POWER_CONNECTED lorsque que le téléphone est alimenté et ACTION_POWER_DISCONNECTED lorsque le téléphone n'est plus alimenté.

Il vous suffira donc de remplir le Manifest avec les bons Intent à écouter:

<receiver android:name=".PowerConnectionReceiver">
  <intent-filter>
    <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
    <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
  </intent-filter>
</receiver>

Vous pourrez ainsi envoyer un SMS dès lors que l'un de ces deux événements se produisent :

public class PowerConnectionReceiver extends BroadcastReceiver {
  @Override public void onReceive(Context context, Intent intent) {
        if(intent.getAction() == Intent.ACTION_POWER_CONNECTED) {
            // Envoi de SMS pour informer du retour de courant.
        } else if(intent.getAction() == Intent.ACTION_POWER_DISCONNECTED){
            // Envoi de SMS pour informer de l'arrêt de courant.
        }
}

Par contre, je n'ai aucune idée du coût que cela peut représenter de laisser brancher un téléphone et la durée de vie de la batterie si celle-ci est mise en charge en permanence ...

sms-gateway-android.png

Qui n'a pas rêvé d'envoyer gratuitement des SMS via Webservices REST ? Il existe sur la toile de nombreuses API pour envoyer des SMS, mais elles sont malheureusement généralement payantes.

Il est désormais possible de construire sa propre Gateway SMS, il vous suffit pour cela de trois ingrédients :

  • Une carte SIM Free à 0 euros avec un forfait illimité de SMS.
  • Un vieux téléphone Android inutilisé.
  • L'application Android SMS Gateway.

L'application Android SMS Gateway possède deux fonctionnalités intéressantes pour un développeur. Elle est en effet capable d'appeler un webservice REST tiers dès qu'un SMS est reçu et elle expose un webservice REST pour permettre l'envoi de SMS à partir d'un applicatif tiers.

gateway-sms.jpg

Voici à titre d'exemple un script Node JS permettant d'envoyer un SMS via un appel HTTP au webservice REST exposé par l'application Android SMS Gateway :

var request = require('request');

function send(phone,message){

     // Set the headers
     var headers = {
        'User-Agent':       'Domogeek/'+config.version,
        'Content-Type':     'application/x-www-form-urlencoded'
     }

     // Configure the request
     var options = {
        url: "http://montelephone:9090/sendsms",
        method: 'GET',
        headers: headers,
        qs: {'phone': phone, 'text': message}
     }

     // Start the request
     request(options, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.info('SMS sended to: %s => %s', phone, message);
        } else {
            console.error('SMS error : %s => %s', error, message);
        }
     });
}

Enfin, voici un exemple de script pour traiter les SMS reçus via un simple script Node JS / Express de quelques lignes :

/**
 * HTTP GET /sms
 * Returns:
 */

app.get('/sms', function (req, resp, next) {

    if (!req.query['phone']){
        resp.json(400, { message: "Missing phone number"});
    }

    var phone = req.query['phone'];
    var message = req.query['text'];
   
    ....
}

Vous voilà désormais prêt à jouer avec votre passerelle de SMS pour superviser vos serveurs pour bien remonter des alertes de votre système domotique. A vous votre API REST de SMS gratuits !

doorbot-header.jpg

J'ai testé pour vous le Doorbot, un visiophone Wifi permettant de vous transmettre les flux vidéos des personnes qui sonnent à votre porte directement sur votre smartphone.

Mon instinct geek m'a fait acheter le Doorbot aux US pour équiper l'entrée de ma maison afin de ne plus louper aucun colis.
Le Doorbot est pour le moment commercialisé que depuis le site Internet getdoorbot.com. Prévoyez un budget de 199$ et 20$ de frais de transport. Avec le iDoorCam, le Doorbot fait parti des nouveaux objets connectés de la maison de demain.

Le Doorbot reste très accessible comparé aux solutions non IP d'entrée de gamme comme celles commercialisées par Extel ou Somfy.
Il se branche soit sur une sonnette existante alimentée par un courant alternatif entre 8 et 24V, soit directement sur votre mur sans aucune alimentation externe grâce à sa batterie interne.

Il y a deux avantages à le connecter sur un circuit de sonnette existant :

  • Votre sonnette sonnera dans tous les cas, même si votre téléphone est éteint.
  • Votre Doorbot sera tout le temps alimenté en énergie, vous n'aurez pas besoin de recharger sa batterie en USB régulièrement.

Au niveau logiciel, vous avez besoin que d'un terminal iOS ou Android pour paramétrer l'engin.
Pour cela, installez préalablement l'application Doorbot sur votre terminal mobile, appuyez ensuite sur le bouton de la sonnette et connectez vous en Wifi à l'appareil depuis votre terminal mobile via le hotspot temporaire créé par le Doorbot le temps du paramétrage.

L'application reconnaîtra automatiquement l'appareil et vous proposera de configurer son réseau Wifi qui lui permettra d'échanger avec Internet.
Cela se fait en deux minutes top chrono. Une fois paramétré, vous pourrez ajouter une liste d'utilisateurs qui pourront avoir accès à votre visiophone depuis leur terminal mobile.

doorbot-1.png doorbot2.png

Au niveau accessoires, on peut dire que les personnes de Doorbot ne sont pas radins. Ils ont prévu large :

  • Un câble USB <-> Micro USB pour recharger la batterie si vous prévoyez de ne pas le connecter sur une sonnette existante. Ce câble n'était pas vraiment utile.
  • Un tournevis avec un format de vis propriétaire pour éviter les vols.
  • Un foret de bonne dimension accompagné de quatre vis et chevilles. Pratique si vous ne bricolez jamais, il vous faudra tout de même trouver une perceuse !
  • Un mini niveau pour vous permettre d'installer le Doorbot bien parallèle au sol.

doorbot-accessoires.jpg

Au niveau hardware, ce gadget se repose sur le chipset GS1011M commercialisé par Gainspan une spin-off d'Intel Corporation.
L'antenne Wifi que l'on visualise sur la gauche du boitier (câble noir) semble bien avoir été prévu, la coque en acier est peut-être un frein à la qualité du signal reçu par l'appareil ?

doorbot-inside.jpg

Bref, ce gadget bien pratique va trouver sa place sur le mur de mon entrée dès que j'aurai réussi à mettre un point d'accès Wifi suffisamment près pour permettre au Doorbot d'obtenir une qualité de réseau décente.
Vous l'aurez compris, ce gadget fonctionne seulement si vous avez du Wifi de bonne qualité accessible depuis votre entrée.

On aime :

  • La simplicité d'installation.
  • Son prix !
  • Sa petite taille, j'imaginais un produit beaucoup plus gros.
  • Le nombre d'accessoires fournis, pratique pour les petits bricoleurs.
  • Le temps de réception des messages push sur iOS, c'est pratiquement immédiat.
  • La qualité du joint d'étanchéité. J'ai tout de même un doute sur l'étanchéité du port USB et de la zone de réglage de la caméra.

On n'aime pas :

  • L'architecture centralisée de la solution, les flux vidéo passent par les datacenter Doorbot aux USA. Que se passera-t-il le jour où Doorbot arrête de commercialiser sa solution ? Comment Doorbot va absorber le coût de maintenance et d'hébergement de ces serveurs ? Doorbot va-t-il ouvrir son système pour permettre d'être indépendant de leurs serveurs ?
  • La pauvre qualité de la vidéo et du son liée au fait que les vidéos traversent deux fois l'atlantique avant atterrir sur votre mobile.
  • Il n'existe aucune solution pour connaitre le firmware installé dans l'appareil.
  • En cas de mauvaise qualité de la vidéo, il n'est pas possible de recevoir que le son.
  • Le vis qui permet de retenir le Doorbot à son socle, je n'ai pas essayé de tirer dessus, mais je reste dubitatif de sa solidité. Enfin, le socle fourni est construit dans un plastique assez souple.
  • Aucune photo n'est attachée lors des appels manquants. La personne qui sonne n'a pour le moment pas la possibilité de laisser un message vocal.

http://www.getdoorbot.com

revue,blog,news,geek


bullet Abonnez-vous à ces revues par feed rss news geek ou par email news geek
bullet Découvrez les anciennes revues
bullet N'oubliez pas de me suivre sur Twitter, Facebook et Google+

GDG_Nantes_-_OK_Nantes.JPG

Pour les absents de la soirée Google Glass organisée par le GDG Nantes au Stéréolux, voici les slides de présentation technique détaillant le développement d'applications Google Glass.


Les apps Google Glass sont ni plus ni moins que des apps Android compilées avec le SDK 4.0.3 et bénéficiant de quelques API supplémentaires apportées par le GDK Sneak Peek.
Les développeurs Android peuvent rapidement développer des apps Google Glass, il faut préalablement comprendre l'usage de la timeline et des cards.

Si vous souhaitez découvrir les API du GDK, vous pouvez télécharger le GDK via une option du SDK Manager Android sur la version 15 des API Android.