WordPress database error: [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

WordPress database error: [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

WordPress database error: [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

Erreur de la base de données WordPress : [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

Erreur de la base de données WordPress : [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

Erreur de la base de données WordPress : [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

Erreur de la base de données WordPress : [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

Erreur de la base de données WordPress : [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

Erreur de la base de données WordPress : [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

Erreur de la base de données WordPress : [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

Erreur de la base de données WordPress : [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`

Journées R&D 3 – Applications Multi-Plateformes – Genesis-blog

Genesis-blog

technos

Journées R&D 3 – Applications Multi-Plateformes

Les 15 et 16 Juin 2017 avait lieu la troisième session des journées R&D Genesis.


Focus sur les journées R&D

Depuis quelques mois, Genesis Groupe permet à ses collaborateurs de se regrouper pendant deux jours (une fois tous les deux mois) pour « plancher » sur des sujets innovants. Ces journées sont l’occasion de renforcer la cohésion d’équipe tout en donnant l’opportunité aux participants de tester de nouvelles technologies ou d’approfondir des points techniques. Et puisque nous aimons joindre l’utile à l’agréable, nous proposons à nos clients de nous challenger sur leurs problématiques actuelles.


Le thème de cette session : Le développement d’applications mobiles multiplateformes

Force est de constater que beaucoup de nos clients commencent à s’intéresser au développement d’applications mobiles multiplateformes. En effet, l’ère des applications pour smartphones apporte maintenant une problématique que nous ne connaissions pas au développement web : l’adaptation aux différentes plateformes.

Selon l’International Data Corporation, Android et iOS dominent le monde des OS Smartphone (la part des autres systèmes devenant de plus en plus négligeable). Ainsi, pour couvrir la part la plus importante du marché, il est important de rendre ses applications mobiles accessibles sur ces deux plateformes.

graph

« Oui mais qui dit deux plateformes, dit : deux langages, deux Frameworks, deux environnements de développement mais surtout… deux fois plus chère, non ? »

Ce n’est pas complétement faux  . En effet, pour développer une application iOS native, on aura besoin d’un développeur maitrisant le langage Swift ou Objective-C, qui travaillera sur l’IDE XCode (disponible uniquement sur Mac). Tandis que pour développer une application Android native, on aura besoin d’un développeur maitrisant le Java et ayant un IDE tel qu’Android studio (disponible sur PC et Mac). Il faudra donc produire deux codes qui n’auront rien à voir l’un avec l’autre puisque développés dans des langages complétement différents. On ne pourra donc rien mutualiser.

C’est pour répondre à cette problématique que des solutions de développement mobile cross-plateformes ont fait leur apparition. En effet, l’offre paraît alléchante puisque ces dernières promettent de mutualiser une grosse partie du code (si ce n’est l’intégralité).

« Mais alors, faut-il foncer tête baissée ? Qu’elles sont les pours et les contres ? Cela va-t-il véritablement diviser les coûts de développement par deux ? La qualité et les performances en seront-elles impactées ? Pourrais-je accéder à toutes les fonctionnalités offertes par le développement natif ou est-ce que je risque d’être bloqué ? »

Autant de questions que nombre de nos clients se posent actuellement et auxquelles nous avons décidé de répondre lors de cette troisième session des journées R&D !

Le support de nos recherches : L’appli Parkings

Afin de répondre à la problématique énoncée, nous avons choisi de comparer trois des solutions cross-plateformes les plus connues : Cordova, Xamarin et React-Native. Nous avons donc constitué trois équipes de développement (une pour chaque technologie) et avons développé en parallèle trois applications identiques.

Les équipes de développement étaient pour la majeur partie constituées de développeurs Web et de développeurs d’applications mobiles natives. Cela a donc permis de faire un parallèle intéressant entre les points de vue de ces deux types de profils face aux technologies cross-plateforme.

Il a ensuite fallu choisir un sujet qui permette passer en revue quelques fonctionnalités communément rencontrées en mobile. C’est ainsi qu’est née l’application Parkings. Le site https://data.grandlyon.com offre une multitude de webservices, permettant de consommer des données du Grand Lyon, accessibles sur simple demande. Nous nous sommes donc intéressés à l’API donnant la disponibilité en temps réel des places de parking à Lyon.

parkingsL’application devait donc permettre de retrouver disponibilités dans les parkings autour de la position de l’utilisateur ou autour d’une adresse géographique. Ce sujet nous a donc permis d’étudier :

  • La consommation d’API
  • L’affichage d’une listView avec des cellules customs
  • L’utilisation de l’API Google Maps (pour le calcul des distances)
  • L’ouverture des application Plan ou Maps via des URL Schemes
  • Affichage d’une carte et placement/gestion des map pins
  • La mise en place d’un champ de recherche
  • Des animations

 

Après avoir développé cette application dans trois technologies différentes, les trois équipes ont pu échanger leurs retours d’expériences.

Présentation des trois technologies

Cordova

Cordova est un framework open source développé par la fondation Apache.

Lorsqu’on développe une application en Cordova, le code (HTML, CSS et JavaScript) écrit par le développeur ne sera pas compilé dans le langage natif de l’appareil cible (Swift pour iOS, java pour Android).

Cordova va plutôt permettre de créer une application qui présente une vue web (WebView) qui va interpréter et afficher le résultat du code développé. Elle présentera aussi un ensemble de connectiques permettant d’interagir avec les fonctions natives de l’appareil.

Xamarin

Xamarin appartient à Microsoft. Contrairement à Cordova, il permet de traduire le code en composants natifs.

La logique est développée en C# et les vues sont en XAML.

React Native

React Native est un Framework JavaScript maintenu par Facebook. Tout comme Xamarin, le code est traduit en composants natifs.

La logique est en JavaScript et les vues en JSX.

Cordova /React Native / Xamarin : Le comparatif

Les environnements de développement

 

React Native

Cordova

Xamarin

SDK Android / iOS

x

x

x

Mac pour le déploiement iOS

x

x

x

IDE

Editeur de texte

Editeur de texte

Xamarin Studio ou Visual Studio

NPM*

x

x

.

*NPM est un gestionnaire de paquets JavaScript

Les langages

React Native

Cordova

Xamarin

Logique

JavaScript

JavaScript

C#

Interface

JSX

HTML/CSS

XAML

 

Développement des différentes fonctionnalités

Aucune des technologies utilisées n’a présenté de blocage pour développer les fonctionnalités du cahier des charges. En revanche, l’équipe Cordova a eu plus de mal à coller avec un vrai comportement natif.

Conclusion – Mais alors quelle technologie choisir ?

Cette étude nous a mené à la conclusion suivante :

Il n’y a pas de mauvaise solution. Il n’y a que des solutions adaptées.

En effet, les trois technologies ont permis de démontrer qu’il était possible de développer des fonctionnalités basiques (utilisées dans la plupart des applications) sans rencontrer trop de limitations.

Cordova a tout de même montré plus de faiblesses que ses congénères en terme de rendu. Cela s’explique par le fait qu’à la différence de Xamarin et React Native qui génèrent de vrais composants natifs, Cordova présente une simple vue web. Le « Look and feel » se rapprochera donc plus de celui d’un site web responsive que de celui d’une application native.

L’avantage de Cordova en revanche est que cette technologie est peut-être plus facile d’accès à un développeur web.

Il semble normal qu’une application cross-plateforme soit moins performante qu’une application native. En effet, plus on rajoute de « couches techniques », moins on a de chance d’avoir des performances optimales. En revanche, cette différence ne s’est pas ressentie sur notre application parking. Il y a donc une vraie étude à faire avant de décider de partir sur une technologie native ou cross-plateforme puisque la différence de performance ressentie ou non pourrait bien diviser presque par deux les coûts de développement.

Attention tout de même à ne pas tomber dans le piège de la « sur-mutualisation » de code. En effet, chaque plateforme (iOS, Android) possède ses propres guidelines en terme d’expérience utilisateur. Un utilisateur Android n’a pas les mêmes habitudes qu’un utilisateur iOS. C’est pourquoi il faudra tout de même faire quelques différences entre les applications Android et iOS à développer. On ne mutualisera donc pas 100% du code, même si la technologie le permet, afin d’offrir aux utilisateurs un rendu de bonne qualité. C’est pour cela que les coûts ne seront pas complétement divisés par deux en choisissant l’option multi plateforme, mais presque.

Comment choisir une solution pérenne ?

Il faut miser sur le bon cheval ! Si on opte pour un développement natif, on ne se pose pas vraiment la question puisqu’aucun intermédiaire ne se place entre le développeur et la plateforme. En revanche, lorsque l’on opte pour une solution cross-plateforme, mieux vaut être sûr qu’elle continue d’être maintenue un bon moment. On peut alors s’appuyer sur les questions suivantes :

  • Qui détient / Maintien la solution ?
  • Qu’elles applications connues utilisent cette solution ?
  • Quel est le langage utilisé ?
  • La communauté de développeurs est-elle active ?

En posant les questions suivantes je ne cache pas que ma préférence s’est portée sur React Native (Attention, ceci est mon avis personnel, ne prenez pas cette information pour une vérité générale – je peux me tromper). En effet, ReactNative est maintenu par Facebook (pas une petite startup en devenir donc). Quelques applications connues faites en ReactNative : Facebook, Instagram, AirBNB … (si ils ont tous parié sur cette technologie, peut-être qu’on peut lui faire confiance). Le langage utilisé est le Javascript (un langage très répandu). Une forte communauté est présente autour du ReactNative. Elle est aussi enrichie par des gros contributeurs tels que AirBnb qui met des librairies à disposition gratuitement.

5
5

Référente de l'équipe mobile et développeuse mobile.

Laissez un commentaire

Erreur de la base de données WordPress : [Got error 28 from storage engine]
SHOW FULL COLUMNS FROM `wp_options`