Archive | Développement

Comment réutiliser du code informatique ?

reutiliser_code_informatique

Est-ce possible de réutiliser du code pour dupliquer une fonctionnalité ?

On nous demande régulièrement si nous pouvons réutiliser le code de nos précédents projets d’applications mobiles et de sites web pour aller plus vite dans le développement de certaines fonctionnalités. Globalement… la réponse est “oui”, mais c’est un peu plus compliqué que du copier/coller

Car non, il ne suffit pas de copier un morceau de code pour dupliquer une fonctionnalité d’un projet à un autre. Même à fonctionnalités similaires, deux applications mobiles auront forcément des différences : au niveau du design, de l’ergonomie, de l’architecture, des API appelées ou encore du système d’information environnant. Nous pouvons donc nous inspirer du travail qui a déjà été fait, mais une partie du code devra forcément être fait sur-mesure.

Mais il est vrai que le fait d’avoir déjà réalisé des applications, services et fonctionnalités similaires nous permet de gagner significativement en efficacité.

L’une des plus longues parties dans la réalisation d’un projet est le choix des technologies, des langages et de l’architecture qui va être construite pour apporter une solution à un problème. Cela nécessite une phase de réflexion, de recherche, de test et, après seulement, d’implémentation de la solution dans le code source du projet. Ainsi, si nous avons déjà fait cette démarche pour un projet similaire, nous serons plus efficace pour le vôtre !

C’est tout simplement une question d’expérience. Avec le temps et la pratique, nous accumulons des réflexes, des bases de données de librairies réutilisables que nous connaissons bien et nous ne reproduisons plus les erreurs que nous avons pu faire par le passé.

 

Comment réutiliser le code source d’un projet similaire ?

Souvent, nous intégrons des fonctionnalités standards à nos projets, comme par exemple un menu s’ouvrant sur la gauche d’un écran mobile et qui bascule en format paysage lorsque l’on retourne le téléphone. Si nous avons déjà développé ce menu pour un projet précédent, trois possibilités s’offrent à nous pour le reproduire dans une autre application mobile :

  • Réécrire complètement la fonctionnalité manuellement. Comme nous l’avons déjà réalisé au moins une fois, nous savons comment nous y prendre et cela ne prend pas beaucoup de temps ;
  • Récupérer le code d’un autre projet et l’adapter manuellement pour l’ajuster au projet en cours. Cela implique que le précédent code ait été soigné et commenté pour une reprise facilitée ;
  • Faire et/ou utiliser une librairie ou bibliothèque logicielle. C’est-à-dire un ensemble de fonctions utilitaires, regroupées et mises à disposition afin de pouvoir être utilisées sans avoir à les réécrire. Elle peut être open source (téléchargeable gratuitement) ou privée, c’est-à-dire développée pour une utilisation personnelle/interne.

 

Nos pratiques à Mobizel

Pour le web comme pour le mobile, il existe énormément de librairies open source disponibles sur internet. Elle sont réalisées et maintenues par des entreprises, professionnel·le·s indépendant·e·s et des passionné·e·s qui font profiter à la communauté de développeurs de leur travail et de leurs recherches. Nous les utilisons régulièrement et si besoin nous les adaptons pour qu’elles répondent parfaitement aux besoins de nos clients.

Nous trouvons la plus grande partie de nos librairies sur ces trois plateformes collaboratives de mise à disposition de librairies, bundles et composants conçus pour être adaptés facilement sans avoir à intervenir sur le code :

Ces deux plateformes ont la particularité d’adapter les librairies choisies aux résolutions d’écrans et aux versions de système d’exploitation visés.

 

Dans le cas où nous ne trouvons pas de librairie adaptée à la fonctionnalité que nous souhaitons développer, ou que nous estimons le temps de recherche plus long que de développer notre propre librairie spécifique, nous concevons nos propres outils internes.

Par exemple, nous avons développé nos propres librairies et composants. Ils sont protégés par une licence et ils contiennent tous les éléments standards que nous réutilisons dans la plupart de nos projets : menu, boutons, uniformisation automatique des polices, champs de texte, etc. Lorsque nous en avons besoin, il nous suffit de les “appeler” dans notre code.

NB : Cela n’empêche pas que nos clients sont entièrement propriétaires du code source des interfaces que nous développons pour eux. Les éléments issus de nos librairies sont protégés par une licence, ce qui leur permet de les utiliser librement dans le cadre de leur projet, commercial ou non.

 

Partagez cet article :

Continue Reading ·

Du logiciel au matériel, comment déployer une solution mobile B2B professionnelle ?

FAMOCO

Concevoir une solution mobile B2B nécessite de s’interroger sur le développement de l’interface souhaitée : ergonomie, technologies, fonctionnalités, etc. Mais ce n’est pas tout ! Il faut également envisager le matériel sur lequel déployer votre service.

Vous pouvez concevoir une solution téléchargeable sur smartphone et la mettre à disposition sur les stores d’applications mobiles (Play Store, App Store, Windows Phone Store). Mais il peut s’avérer judicieux de s’équiper de terminaux spécifiques, 100% adaptés et dédiés à l’usage et à l’environnement que vous souhaitez leur assigner.

Alors quels sont les avantages d’un terminal dédié pour une application métier et quelles sont nos recommandations ? Voyons cela ensemble…

 

Maîtriser le terminal du développement à l’usage

1 Mises à jour simplifiées et contrôlées à distance

FAMOCO 2

Une partie du développement d’un service mobile (app ou webapp) consiste à s’assurer qu’il soit adapté à de nombreux systèmes d’exploitations, navigateurs, tailles et résolution d’écrans. Mais pour certains OS et navigateurs, les mises à jour doivent être faites manuellement par les utilisateurs. Cela implique qu’ils n’utilisent pas forcément la dernière version de votre service et hormis quelques rappels et notifications, vous ne pourrez rien faire pour cela.

Dans le cas d’un service mobile B2B, cela pose un problème. Pour des raisons de productivité et de gestion, vous avez tout intérêt à vous assurer que vos collaborateurs soient à jour et utilisent votre service dans les meilleures conditions.

Une solution simple est d’équiper vos usagers avec un terminal identique pouvant être géré à distance. Non seulement votre développement sera facilité (car dédié à un seul appareil) mais vous pourrez également gérer votre parc de terminaux à distance pour les mettre à jour, leur faire parvenir des informations et corriger des bugs.

 

2. Smartphone grand-public VS terminal professionnel

Une fois votre logiciel développé, il vous faudra équiper vos agents. Force est de constater qu’il n’est pas toujours évident de leur confier des mobiles grand-public car ils peuvent être détournés à d’autres fins : communications personnelles, accès à internet, usage des réseaux sociaux, jeux, etc. Ces activités annexes sont très consommatrices en data et réduisent rapidement le niveau de batterie, ne permettant pas toujours de tenir toute une journée de travail.

De même, les smartphones peuvent être volés sur le terrain engendrant de fait un climat d’insécurité et parfois de la violence… Les terminaux dédiés peuvent permettre d’éviter cela, car ils ne peuvent pas être détournés de leur usage professionnel et ne peuvent pas être revendu. Que feriez-vous d’un appareil SNCF pour contrôler les billets par exemple ?

Enfin ces terminaux ont souvent des boîtiers durcis, c’est-à-dire conçus pour être adaptés aux conditions de travail sur le terrain : résistance aux chutes, aux intempéries, aux manipulations, etc. Ils apportent un meilleur confort d’usage et une plus grande durabilité.

 

2/ FAMOCO, concepteur de terminaux mobiles Android professionnels NFC

Cela fait maintenant un an que nous conseillons à nos clients souhaitant réaliser une application métier de maîtriser aussi bien le logiciel que le matériel de leur solution. Pour cela, nous échangeons et travaillons depuis 2015 avec la société FAMOCO, concepteur de terminaux mobiles professionnels NFC sécurisés fonctionnant sous Android.

Ils proposent des appareils Android :

  • flexibles pour lesquels il est facile de développer
  • et sécurisés avec des applications dédiés. Concrètement, il est possible d’installer et de naviguer entre plusieurs applications sur ces terminaux, mais les utilisateurs ne peuvent ni accéder à d’autres contenus ni les modifier ou les désinstaller.

Tout se fait à distance via une plateforme de gestion à partir de laquelle les administrateurs peuvent activer ou désactiver des fonctionnalités (comme le WIFI par exemple) et des applications.

Ensemble, nous avons accompagné notre client Loisirs Pluriel par exemple dans la conception et le déploiement d’un système d’émargement mobile online et off-line, intuitif et fiable pour plus de 20 centres de loisirs (en partenariat avec la société Novelios). Nous travaillons également sur d’autres projets ambitieux, autour du paiement sans contact et de solutions de suivis par carte NFC.

Nous recommandons régulièrement les solutions de FAMOCO à nos clients concernés car elles sont fiables, performantes et sécurisées. En terme d’expérience, nous commençons à avoir une bonne connaissance de leurs produits et nous pouvons réaliser des applications Android parfaitement adaptées à leur taille et exploitant toutes les fonctionnalités natives nécessaires.

 

Si vous êtes intéressés par une application métier ou si vous vous posez des questions sur le choix du terminal le plus adapté, n’hésitez pas à nous contacter nous ou FAMOCO, nous serons heureux de répondre à vos questions.

Vous pouvez également venir nous rencontrer au Salon Mobility For Business les 8 et 9 novembre 2016 où FAMOCO nous a invité sur leur stand.

 

Partagez cet article :

 

Continue Reading ·

Peut-on pirater une application mobile ?

pirater une application mobile

Vous vous inquiétez de télécharger une application mobile piratée ? Ou vous vous demandez comment protéger votre application mobile pour ne pas l’exposer aux hackers ?

Bien que pas impossible, il est difficile de pirater une application mobile officielle. Les risques les plus importants sont plutôt de télécharger un clone de l’application que vous cherchez ou que votre mobile lui-même soit piraté pour accéder à vos données personnelles.

Voyons ensemble quelques pratiques malveillantes qui peuvent être opérées, d’autres rendues plus difficiles par des contrôles et des technologies sécurisées et quelques conseils pour vous préserver.

 

Pirater une application mobile

Déjà, qu’entendons-nous par “piratage” ? Dans le cadre de ce billet, il s’agit de prendre le contrôle d’une application mobile officielle, publiée sur un store officiel.

C’est très complexe.

Que ce soit sur n’importe quel store, il faut un compte développeur et des certificats spécifiques pour publier une application mobile. Ces derniers doivent être les mêmes pour effectuer des mises à jour. Donc pour prendre le contrôle d’une application mobile officielle il faut :

  • 1) Récupérer le code source de l’application visée
    (détails plus bas)
  • 2) Usurper le compte développeur de la personne ou de l’organisme qui a publié l’app d’origine, puis obtenir les certificats de l’appli (sachant que pour iOS les certificats peuvent être récupérés directement depuis le compte développeur)
  • 3) Que la personne ou l’organisme qui a publié l’app originale ne soit pas alerté·e par les mails reçus concernant la mise-à-jour de son app (sauf si le·a hacker·euse modifie l’adresse mail du compte).

Cela fait beaucoup d’étapes et de comptes sécurisés auxquels accéder, ce qui peut décourager les hacker·euse·s. En effet, si le ratio complexité de piratage / valeur des données à récupérer est peu intéressant, les chances que votre application soit visée sont plus faibles.

Par contre il existe d’autres moyens que le piratage pour altérer une application ou récupérer des données. Voici deux exemples.

 

Interférer les échanges client/serveur ou directement le serveur

À défaut de prendre le contrôle d’une application, il est possible d’intervenir sur les données qui transitent par elle.

Si les contenus web d’une app sont récupérés en HTTP, il est possible d’interférer les échanges client/serveur. Dans ce cas les hacker·euse·s peuvent par exemple utiliser la technique du “Man in the middle” qui consiste à écouter ces échanges pour les espionner, récupérer des données ou les altérer. Si ces contenus sont en HTTPS, cette technique est toujours possible mais beaucoup plus compliquée. D’ailleurs, Apple va exiger que tous les contenus des apps iOS soient en HTTPS pour le 1er janvier 2017.

Il est également possible de passer directement par le serveur en le piratant pour récupérer les données utilisateurs, envoyer du faux contenu, rendre l’application inutilisable, etc.

Notre conseil est donc évident pour les développeurs d’applications : privilégiez le HTTPS et sécurisez votre serveur !

 

La duplication ou le clonage d’application mobile

Dans la majeur partie des cas, c’est la solution la plus utilisée car elle est plus simple à réaliser.

Pour faire du clonage, il existe deux possibilités :

  • 1) À partir de la décompilation d’un .apk.

    • Pour Android : il est possible de décompiler une application mobile, c’est à dire récupérer le fichier contenant son code source et l’ouvrir pour l’exploiter. Dans le jargon informatique, on appelle ce fichier un “apk”. Pour y intégrer du code malicieux, il faut avoir de bonnes bases en informatiques.
    • Pour iOS : c’est également possible mais beaucoup plus compliqué. Dans ce cas, les hacker·euse·s récupèrent le code source de l’application visée et la re-publie sous un nom quasi-similaire (il est impossible de reprendre exactement le même nom que l’app officielle) et avec les mêmes contenus de présentation (icônes, screenshot, description, etc.).
  • 2) Tout re-coder soi-même depuis le début.
    C’est ce qui est arrivé à l’application Flappy Bird. Suite à son succès, de nombreux clones ont fleuri pour profiter de sa popularité, générer des gains publicitaires, implanter des logiciels malveillants, etc.

 

Nos conseils

Nos conseils pour ne pas télécharger une app clonée :

  • Vérifiez le nom de l’éditeur et de l’application mobile ;
  • Évitez les stores alternatifs ;
  • Ne pas jailbreaker votre iOS.

Vous pensez avoir téléchargé une app clonée ? Le mieux que vous puissiez faire :

  • Entrez dans les paramètres pour effacer toutes les données de l’appli et la désinstaller au plus vite ;
  • Prévenez Android ou Apple afin qu’ils retirent l’application clone de leur store et l’éditeur de l’app officielle.

Nos conseils pour ne pas se faire cloner son application :

  • Vous pouvez rendre plus difficile la décompilation de votre appli Android. Demandez à ce que votre prestataire le fasse ;
  • Protégez votre app et vos contenus avec un copyright ;
  • Si vous trouvez un clone de votre application, contactez rapidement Android ou Apple afin qu’ils retirent le clone de leur store.

 

Pour creuser le sujet : OWASP

 

Partagez cet article :

 

Continue Reading ·

Qu’est ce qu’une application mobile ?

qu est ce qu une application mobile

Vous faites peut-être partie des 58% des personnes qui possèdent un smartphones et/ou des 35% personnes ayant une tablette* ! Alors vous savez certainement où trouver une app et comment l’installer sur votre mobile. Jeux, appli d’actualité, outils en tout genre (accordeur, boussole, gestion de budget, calcul de calories, suivi d’humeur…), app professionnelle ou touristique, etc. Il en existe de toute sorte et elles sont utilisées plus ou moins régulièrement. En moyenne, un mobinaute français possède 35 apps sur son mobile et en utilise 11 toutes les semaines.**
*Données de fin 2015, source : l’Arcep
**Données de 2014, source

Nous savons où les trouver, comment les télécharger, l’usage est plus ou moins évident selon l’ergonomie de la chose et en quelques secondes on peut la désinstaller en cas de déception. Facile, c’est devenu un automatisme !
Mais concrètement… techniquement… Qu’est ce qu’une application mobile en fait ?

 

Une application mobile c’est…

Un logiciel !

Et oui, c’est un programme exécutable sur un appareil mobile. Lorsque vous téléchargez une app, vous téléchargez en réalité un fichier qui va être installé puis exécuté par le système d’exploitation de votre mobile. Ce fichier est codé dans un langage de développement mobile spécifique à votre appareil (Java pour Android et Objective C ou Swift pour iOS).

Il existe différents types d’applications mobiles. Si vous êtes curieux d’entrer dans les détails techniques de chacun d’eux, nous vous invitons à parcourir ces articles de blog sur : les applications natives, les applications natives générées (via des technologies cross-platform) et les applications mobiles hybrides. Dans chaque cas, les technologies et langages utilisés sont différents et chaque sorte d’app mobile a ses spécificités, avantages et inconvénients. Cela vous aidera peut-être à faire un choix technologique si vous avez un projet d’application mobile.

 

À ne pas confondre avec web app et site mobile !

L’application mobile n’est pas le seul logiciel à fonctionner depuis un smartphone ou une tablette, vous avez également :

 

1/ La webapp

La webapp (ou “web app” ou “application web”) est également un logiciel applicatif. Elle est accessible depuis un navigateur et est adapté aux contraintes ergonomiques et techniques des smartphones et tablettes.
C’est un logiciel unique, hébergé sur un serveur et qui est compatible :

  • avec tous les système d’exploitation (Android, iOS, Windows Phone et autres) ;
  • tous ou une partie (au choix) des navigateurs (Chrome, Safari, Firefox, Internet Explorer, etc.) ;
  • toutes les tailles et résolutions de mobiles (si celle-ci est conçue en responsive design).

Cette technologie a également ses avantages et inconvénients. Si vous souhaitez plus d’informations à ce sujet, vous trouverez dans cet article un tableau comparatif complet de l’application mobile et de la webapp.

 

2/ Le site mobile

Peu à peu abandonné aujourd’hui, le site mobile est une seconde version d’un site web dont la structure du contenu, la navigation et le design sont adaptés pour mobile. Ainsi lorsqu’un mobinaute arrive sur votre site internet, un message lui propose de le rediriger vers une version adaptée mobile du site.

Généralement, nous déconseillons cette technologie car elle engendre une duplication des contenus de votre site (qui est néfaste au référencement), la pop-up de redirection est intrusive et chronophage et le design d’un site mobile est très limité.

 

Besoin d’un conseil mobile ?

Bien entendu, les conseils donnés ci-dessous sont généraux ! Un choix de technologie mobile prend en compte de nombreux paramètres (contraintes, système d’information, objectifs, cibles, etc.) qu’il est important d’étudier pour concevoir une interface parfaitement adaptée aux besoins du projet et de ses futurs utilisateurs.

C’est pourquoi nous avons une démarche 100% sur-mesure à Mobizel et que nous maîtrisons en interne de nombreux langages et différentes technologies pour vous accompagner et/ou réaliser votre projet mobile.

Et même si vous avez juste une question ou besoin d’un conseil, n’hésitez pas à nous contacter. Nous serons heureux de vous aider.
téléchargez le livre blanc associé
Partagez cet article :

 

Continue Reading ·

Quelques bases pour concevoir une cartographie

cartographie numérique

Dans l’univers du numérique, quand on parle de “cartographie numérique”, nous pensons immédiatement à Google Maps ou l’application mobile Waze en imaginant une carte ponctuée de pins. Mais savez-vous qu’avant d’être une interface interactive, une cartographie… est une représentation spatiale de données sur un territoire ? C’est un support servant à faciliter la lecture et l’analyse de données.
Par exemple : il est bien plus facile de lire une carte météo que d’écouter les mêmes informations à la radio.

Ces données peuvent être spatiales (adresses, routes, longitude/latitude) ou non spatiales (en croisant deux axes de données, par exemple : le prix et la qualité pour analyser une concurrence produit)

Alors comment concevoir sa cartographie ? Et oui, c’est partie pour faire un peu de géographie !

 

Délimiter sa zone géographique

zone_geographiqueprojections

La première question que vous devriez vous poser est : quelle est la délimitation géographique de ma cartographie ? La réponse peut se situer entre “le monde entier” ou “une pièce dans un bâtiment” et elle est très importante car elle va permettre de définir le type de projection que l’on va choisir.

Une projection est l’ensemble des techniques permettant de représenter un territoire sur une surface plate. Dans le cas d’un bâtiment, c’est plutôt simple : la surface est trop petite pour être impactée par la rotondité de la terre. En revanche, difficile de mettre la terre entière à plat sans en déformer les surfaces… Il faut donc définir un cadre géographique et décider de sa représentation à plat, et ce, en fonction des informations que vous souhaitez valoriser.
Ça vous intéresse ? Vous trouverez plus d’info sur les différents types de projections ici.

Voici deux exemples de projets client pour lesquels la question de la projection s’est posée à Mobizel :

  • Pour les applications mobiles natives Rencircul et Rennes 2030, Rennes Métropole a réalisé son propre fond de carte. Mais les librairies mobiles nécessaires au développement de ces deux projets n’étaient pas compatibles avec la projection choisie. Nous avons donc aidé Rennes Métropole à repenser leur fond de carte avec une projection plus adaptée aux besoins techniques tout en valorisant leurs données spatiales.
  • L’application mobile Idec Sport permet de suivre en temps réel un bateau faisant le tour du monde. Pour des questions de lisibilité et de simplicité de représentation, nous avons opté pour une représentation en 3D ronde de la terre.

 

Choisir votre type de cartographie

Une carte n’a de raison d’exister que si elle a du sens, que s’il est plus pertinent de présenter des données sur une carte plutôt que dans un texte, une image, une vidéo ou un média audio par exemple. Si vous optez pour une carte, vous devrez choisir le type de représentation qui servira votre projet. Par exemple : (liste non exhaustive)

 

calques

Une carte est une superposition de calques contenant chacun un type de données :

  • Le premier calque est un “fond de carte” : il rassemble les informations de base qui permettent de dessiner la carte et qui va supporter vos données spatiales. Par exemple Google maps en propose deux : limites administratives et routes (vue plan) ou environnement physique (vue earth) ;
  • À ce fond de carte vont s’ajouter vos données spatiales telles que des marqueurs, des tracés (itinéraires, direction…), des surfaces, etc. Chaque donnée est contenue dans un calque qui va être affiché ou non selon les actions des utilisateurs.

Une fois ces éléments placés, vous pouvez les faire interagir entre eux ou avec le contenant de la carte. Par exemple : avec un store locator, vous pouvez créer une interaction entre un marqueur de votre carte et votre site internet qui va afficher, au clic, les coordonnées et les produits du store choisi.

Ne perdez pas de vue que votre cartographie doit être lisible et mener votre utilisateur·ice le plus intuitivement possible vers les données qu’il·elle cherche. Éviter de surcharger votre carte et proposez des filtres et des options de simplification d’affichage.

 

Customisation

tykaz_customisation
Pour une meilleure lisibilité et pour avoir une cohérence graphique d’ensemble avec votre charte graphique, vous pouvez customiser tous les éléments de votre cartographie. Changez les couleurs du fond de carte, intégrez des logos dans les pins, augmentez ou diminuez les tailles des marqueurs, etc.

 

Conclusion

Avant d’être une fonctionnalité technique, une cartographie est un support conçu pour présenter de l’information et guider l’utilisateur·ice vers les données spatiales souhaitées en un minimum de temps.

Vous souhaitez en savoir plus ? Dites nous les sujets qui vous intéresse !
Créez votre propre sondage sur les commentaires des utilisateurs

 

Crédits images :

 

Partagez cet article :

 

Continue Reading ·

On vous explique… l’iOS background

Nous avons développé pour la ville de Nantes une application mobile iOS et Android de diagnostic participatif qui a pour fonction de récupérer les itinéraires et les modes de transports préférés des nantais : Nantes la nuit. Pour cela, nous avons veillé à ce que l’app soit fonctionnelle même lorsqu’elle est en “arrière-plan” pour suivre les déplacements de l’utilisateur (via la géolocalisation) même lorsqu’elle n’est pas en premier-plan ou que le terminal est en veille.

C’est Thomas, développeur mobile, qui était en charge du développement iOS de l’application Nantes La Nuit (pour iPhone, iPad et iPod). Il a profité du projet pour reprendre le fonctionnement complet de l’iOS Background afin de vous l’expliquer.

Mais avant, quelques définitions !

 

Définitions : “Premier plan”, “arrière-plan” et “quitter” une appli

Lorsque vous lancez une application mobile et qu’elle est visible à l’écran, on dit qu’elle est au “premier plan”. Elle est donc active et vous pouvez interagir avec elle : naviguer, utiliser ses fonctionnalités, lancer des actions, etc. Lorsque vous retournez sur votre écran d’accueil ou que vous ouvrez ensuite une autre application mobile, la première est toujours ouverte ! On dit alors qu’elle est en “arrière-plan” : elle est alors toujours en état de fonctionnement et ses données restent chargées. C’est un peu comme si l’app était en veille. Dans cet état, ses actions sont très limitées.

Si vous souhaitez quitter une application, cela nécessite une action de votre part : éteindre votre téléphone ou une double pression sur le bouton principal de votre iPhone/iPad. Dans ce cas votre application est complètement éteinte. Mais… ça ne sert pas à grand chose.
Ah bon ?
Et oui ! L’OS d’Apple est prévu pour gérer au mieux les app en arrière-plan afin qu’elles consomment le moins d’énergie possible et n’influencent pas les performances de votre appareil. le système peut également quitter lui-même l’application si besoin.

 

Mais qu’est-ce qu’on peut faire avec une app en arrière-plan ?

  • Que peut-on exécuter avec une application mobile lorsqu’elle est en arrière-plan ?
  • Pendant combien de temps ?
  • Quels seraient les bénéfices utilisateurs ?

Thomas vous explique comment ça fonctionne :
“D’un point de vue technique, quand une application iOS n’est plus au premier plan, nous (les développeurs) n’avons plus la main dessus. Nous ne pouvons plus lancer d’actions telles qu’une mise à jour de l’interface ou un téléchargement par exemple. Mais il existe trois cas particuliers où nous pouvons intervenir”

1/ Extra time

Lorsque l’on passe une app iOS en arrière-plan, elle tourne encore pendant quelques secondes (de 5 à 10 généralement) pour terminer de courtes actions. Mais si l’action lancée prend plus de temps (ex : un téléchargement de vidéo), elle quitte automatiquement l’application.

Il existe un moyen de prolonger ce temps de plusieurs minutes ! Ce qui peut être très utile par exemples pour une application qui effectue des calculs demandant beaucoup de temps, qui enregistre des fichiers en local, pour terminer la mise à jour d’une base de données, etc. Pour cela, il faut l’anticiper dans le code en amont.

2/ Downloads

Admettons que vous souhaitiez réaliser une application de téléchargement de vidéos assez volumineuses. Il est possible de prévoir en amont dans son développement que chaque téléchargement (même lorsque l’app est au premier plan) soit géré “en dehors” de l’application mobile. Dans ce cas, c’est le système d’exploitation lui-même qui s’en charge et qui prévient ensuite l’application que le téléchargement est terminé, au besoin en la lançant.

3/ Run in background

Dans certains cas, iOS permet à une application de tourner en background :

  • Pour jouer ou enregistrer un fichier audio (exemples : spotify, dictaphone) ;
  • Pour la VoIP (voice over IP / voix sur IP ; cela sert pour les communications vocales utilisant internet, telles que hangout ou skype) ;
  • Pour certains accessoires externes : un appareil bluetooth, une balise iBeacon, etc. ;
  • Pour la localisation plus ou moins fréquente des utilisateurs ;
  • Pour que l’application vérifie si de nouveaux contenus sont disponibles (via des notifications push silencieuses ou par le système lui-même).

 

Pour quels usages ?

Comme expliqué plus haut, Thomas s’est s’intéressé à cette problématique pendant le projet Nantes La Nuit.

Pour Android, une application peut potentiellement tourner en permanence lorsqu’elle est en arrière-plan. Concernant Nantes La Nuit, elle va chercher la localisation des utilisateurs toutes les 5 secondes lors de leur trajet, limité à 90 minutes maximum.
Mais pour iOS, comme une appli ne peut pas tourner en arrière-plan, c’est impossible ! Pour faire autrement, Thomas s’est donc servi du cas Run in background vu ci-dessus pour faire en sorte que le système prévienne l’application lorsque la localisation de l’utilisateur a changé.

Source : Background Execution

 

Partagez cet article :

 

Continue Reading ·

Sylius couplé à Symfony2 pour votre site e-commerce

sylius

 

Sylius : définitions et avantages

Sylius est une solution d’e-commerce open source sur-mesure, puissante et robuste. Basée sur le framework PHP Symfony2 (tous les bundle Symfony2 s’adaptent à Sylius), elle est très modulable et chacun des composants permet de répondre à nombreux besoins fonctionnels.

À Mobizel, nous privilégions Sylius dans le développement de sites e-commerce pour plusieurs raisons :

    • Une solution “Full symfony 2”.
      Notre expertise en PHP et dans l’utilisation du framework Symfony 2, nous permet d’exploiter toutes les possibilités techniques de Sylius.

 

    • Modularité
      Sylius est composé de nombreux bundles indépendants qui ne sont pas forcément spécifiques aux sites de vente en ligne. Il est donc possible de réaliser une grande variété de site web intégrant plus ou moins de bundles suivant les fonctionnalités à implémenter même si le projet n’est pas une solution e-commerce.
      Définition : un bundle regroupe tout ce qui relève d’une même fonctionnalité.

 

    • Un projet communautaire
      Sylius est un projet Open Source participatif qui rassemble une grande communauté d’utilisateurs qui enrichissent le projet et testent en permanence la solution.

 

  • L’usage avant le développement
    Sylius utilise la “BDD méthodologie” qui consiste à scénariser une fonctionnalité en amont puis de la coder afin qu’elle réponde spécifiquement et uniquement au besoin identifié. Cette solution se prête parfaitement aux méthodes agiles.

 

Le mot de Loïc, développeur web

Sylius est open-source et très modulable. Le code est de très bonne qualité, avec des bundles efficaces ce qui apporte une grande flexibilité. Chaque module est extensible et peut être customisé.

 

Fonctionnalités possibles avec Sylius

  • Gestion avancée de plusieurs catalogues de produits ;
  • Ajout d’un nombre illimité de produits et de catégories ;
  • Gestion de produit avancée comme l’ajout de variations pour les produits complexes par exemple ;
  • Suivi du stock, des taxes, des promotions et des états de livraisons ;
  • Configuration des frais de livraison selon taille et poids des produits par exemple ;
  • Gestion et affichage des taxes par pays et par catégories ;
  • Gestion avancée des utilisateurs ;
  • Tunnel d’achat personnalisable ;
  • Statistiques de suivi de commandes, etc.

Liste non exhaustive

 

Références réalisées sur une base Sylius :

Marque VerteTYKAZ

  • Marque Verte, un portail e-santé fonctionnant avec une plateforme logistique complexe
  • Tÿkaz pressing, un service e-commerce de pressing dont la gestion est 100% dématérialisée.

 

Partagez cet article :

 

Continue Reading ·

Startup : webapp ou application mobile, quel support mobile pour se lancer ?

webapp_startup

De plus en plus investi auprès des startups et porteurs de projet qui veulent lancer un service sur mobile, nous avons constaté que certains d’entre eux avaient du mal à s’orienter sur le support technique à concevoir.

Globalement, deux possibilités s’offrent à eux :

  • une application mobile native, disponible pour une ou plusieurs plateforme·s et téléchargeable·s depuis les magasins d’applications ;
  • une application web (ou webapp), c’est à dire site web mobile optimisé pour smartphone/tablette.

 

Notre conseil : privilégier la flexibilité

Lancer un projet d’entreprise est une longue réflexion qui nécessite d’être discutée, challengée, remise en question, mûrie… et surtout testée. Le choix du support n’est alors pas toujours évident car il peut risquer de figer la forme du service dans une arborescence et des fonctionnalités et ainsi perdre en flexibilité.

Si le service à rendre disponible sur mobile :

  • doit être accessible à la plus large population possible dès le lancement du service ;
  • doit être accessible rapidement ;
  • peut-être amené à évoluer rapidement (changements majeurs des écrans, de la navigation, …)

Et à condition qu’il reste simple sur les aspects suivants :

  • n’aura pas usage de fonctions avancées du téléphone (comme la caméra, le bluetooth, le GPS en tâche de fond, l’accéléromètre, l’affichage en 3D, la réalité augmentée, le stockage de données dans le téléphone pour une consultation hors-ligne) ;
  • aura un design, une arborescence et une ergonomie simple ;
  • sera disponible sur chaque OS (iOS, Android et Windows Phone) mais sur un nombre limité :
    • de navigateurs (seulement les principaux)
    • et de terminaux (seulement les plus récents et les plus répandus).

Dans cette situation, nous conseillons vivement de s’orienter dans un premier temps vers la création d’une webapp.

En effet, développée à partir de langages web, son coût de développement, de maintenance et d’évolution est beaucoup plus abordable que pour une application mobile. Cela permet alors de tester son service et de le faire évoluer selon les retours utilisateurs et l’avancée des réflexions.

 

Avantages et inconvénients de la webapp

Ce que l’on gagne :

  • une large couverture des terminaux mobiles du marché (à noter que même en développant une application mobile native sur une plateforme donnée à ce jour, il est quasiment impossible de garantir sa compatibilité avec des téléphones qui n’ont pas été mis à jour depuis 2-3 ans) ;
  • des coûts de création plus abordables ;
  • moins de coûts de mise à jour, car il n’est pas nécessaire de gérer les versions installées et les re-soumissions sur les espaces de téléchargement ;
  • des délais de réalisations et de mises en lignes plus courts (pas de validation de l’AppStore par exemple) ;
  • une maintenance simplifiée contrairement aux applications mobiles natives pour lesquels la maintenance doit être spécifiquement faite pour les versions iOS, Android, Windows Phone, etc.

Les économies, en temps et en budget, peuvent par exemple être utilisées dans le but de fournir un service plus complet et abouti.

Ce que l’on a parfois peur de “perdre” :

  • La webapp ne se télécharge pas sur les magasins d’applications mobiles.
  • Par contre on y accède simplement par un lien ou un URL, comme un site web. Ce qui facilite son référencement et nécessite une connexion permanente ;
  • Pas d’icône de lancement de l’application comme les autres dans la liste d’applications des terminaux. Pour cela il existe des solutions (Cf. notre article “Une icône de lancement pour une webapp, c’est possible !« );
  • Pas de notifications. Une limite qui peut être contournée en employant plutôt des stratégies de :
    • campagne d’sms (entre 0,05€ et 0,07€ par envoi)
    • de mailing (coût quasiment nul).

En savoir plus : tableau comparatif webapp / application mobile
Dans un second temps, une fois le service testé et approuvé, nous conseillons de compléter sa webapp par des applications mobiles natives qui apporteront plus de performance, d’ergonomie, de fonctionnalités et de qualité.

 

Articles qui pourraient vous intéresser :

 

Partagez cet article :

 

Continue Reading ·

Les notifications push mobile, comment ça marche ?

notification push

Sur un mobile, une notification push est un message d’alerte reçu via une application que l’on peut ouvrir, supprimer, autoriser ou bloquer.

Mais qu’en est-il de l’architecture à mettre en place pour intégrer cette fonctionnalité dans une application mobile ? Et quel est le cheminement d’une notification push, de la création à l’affichage sur le mobile de l’utilisateur ?

 

Architecture technique

Voici les différents éléments nécessaires à la création, l’envoi et la réception d’une notification push mobile :
notification push

  • Le serveur push peut vous appartenir ou être hébergé chez le prestataire de votre application mobile. Une fois installé, l’envoi des notifications est entièrement gratuit, hormis les coûts de maintenance du serveur.
  • Pour créer vos notifications, deux méthodes s’offrent à vous :
    • Passer par une interface type back-office ou une simple page web avec un CMS pour rédiger et envoyer manuellement vos notifications.
    • Prévoir une automatisation des envois. Par exemple, vous pouvez programmer qu’à chaque fois qu’un de vos utilisateur reçoit un message privé, votre serveur lui envoie une notification.
  • Une fois créées, vos notifications passent par le serveur de push de la plateforme ciblée (Android, iOS ou Windows Phone) qui les redistribuent aux mobiles de vos utilisateurs.

 

Fonctionnement de l’envoi d’une notification push mobile

Voyons plus précisément les opérations nécessaires pour l’envoi d’une notification mobile :
le push comment ça marche

  1. À chaque ouverture de l’application mobile, demande d’un identifiant unique (token, URL, ID…) au serveur de sa plateforme pour identifier l’application sur un mobile spécifique ;
  2. Envoi de l’identifiant unique de la plateforme serveur à l’application mobile
  3. Transmission de l’identifiant à votre serveur d’envoi qui va être stocké (ou rafraîchi) dans une base de données ;
  4. Pour l’envoi d’une notification push, votre serveur d’envoi transmet la notification push au serveur plateforme. Pour cela il indique l’identifiant concerné et le message associé.
  5. Le serveur de la plateforme vérifie les paramètres push (autorisations et identité de l’application) et transmet la notification au mobile ciblé.
  6. Les serveurs des plateformes envoient immédiatement un rapport de réception des notifications pour mettre la base d’identifiants à jour (selon les désinstallations et la désactivation des notifications) et le serveur iOS fait des rapports moins fréquents à consulter grâce à un service dédié.

 

Réception sous conditions

Pour chaque requête d’envoi d’une notification par votre serveur, les opérations ci-dessus vont avoir lieu. Mais cela ne signifie pas que votre notification va forcément s’afficher sur le mobile de votre utilisateur. Aucun serveur de plateforme ne peut vous le garantir à 100%.
En effet, les utilisateurs de votre application peuvent à tout moment refuser la réception des notifications. Dans ce cas, le processus d’envoi a tout de même lieu, le mobile reçoit bien la notification, mais il ne l’affiche pas.
De même, certaines notifications peuvent se perdre suite à une erreur informatique par exemple ou parce qu’un mobile reste éteint trop longtemps (les notifications peuvent expirer).

 

Réception push par OS

Pour conclure cet article, voici un tableau récapitulatif des différences qui doivent être prises en compte par rapport aux différentes plateformes.

 
IOS
ANDROID
WINDOWS PHONE
NOM DU SERVICE D'ENVOI
APNS : Apple Push Notification ServiceGCM : Google Cloud MessagingMPNS : Microsoft Push Notification Service
POIDS MAXIMUM DE LA NOTIFICATION
256k4k80k (tiles)
CERTIFICAT D'ENVOI DE LA NOTIFICATION PUSH
ObligatoireNon, mais il y a une clé d'API sans expirationRecommandé
AUTORISATION
L’application envoie une seule pop-up de demande d’activation.Lors de l’installation de l’application mobile depuis le PlayStoreLa demande d’autorisation doit être codée dans l’application mobile car elle n’est pas native à Windows Phone
DÉSACTIVATION
Depuis le centre de notificationsDans les paramètres de l’application mobile

FORMATS D'ALERTE
- Message d’alerte
- Badge
- Son
- Message d’alerte
- Son
- (selon le modèle du mobile) un voyant de notification
- Message d’alerte
- Son
- Tile (un encart sur l’écran principal du smartphone)
- Toast (notification simple qui s’affiche sur n’importe quel écran)
- Raw (notification qui ne s’affiche que si l’application mobile est lancée)

 

Merci de votre lecture, répondez à ce questionnaire

Créez votre propre sondage sur les commentaires des utilisateurs

 

Vous souhaitez échanger avec nous à ce sujet ? N’hésitez pas à nous contacter

 

Partagez cet article :

 

Continue Reading ·

Vous m’envoyez votre UDID ?

Trouver mon UDID

Si vous faites concevoir une application mobile iOS par un développeur ou une agence spécialisée, il y a de fortes probabilité que l’on vous demande votre « UDID »… mais qu’est-ce que c’est ?

 

Définition

UDID signifie Unique Device IDentifer.
C’est un identifiant unique permettant de déterminer précisément quel est votre appareil iPhone, iPod ou iPad.

 

Pourquoi on vous le demande ?

Pour que vous puissiez tester votre application mobile pendant le développement dans une démarche itérative. Pour cela, nous vous envoyons un fichier .ipa par email que vous devrez ouvrir et exécuter depuis votre mobile.
Mais, au préalable, nous devons « autoriser » votre mobile à ouvrir cette application ; c’est là que nous avons besoin de l’identifiant unique de votre appareil !

 

Comment trouver mon UDID ?

C’est le logiciel iTunes va vous permettre de récupérer votre UDID. Pour cela, branchez votre iPhone, iPod ou iPad à votre ordinateur et lancez iTunes. Sélectionnez votre iPhone et allez sur la page « Résumé ». Dans l’encart du haut, à droite de l’image d’un iPhone, il y a le « Numéro de série ». En cliquant une fois dessus, il se change en l’UDID du téléphone. Attention : il est parfois nécessaire de déverrouiller l’iPhone donc la manipulation doit être faite en présence du propriétaire du téléphone si ce dernier est protégé par un code de déverrouillage.

 

Important !

Une fois que nous serons en possession de votre UDID, nous pourrons vous envoyer un nombre illimité de versions intermédiaires de votre application mobile. Mais pour tester une nouvelle version de votre application, veillez à désinstaller l’ancienne avant d’installer la suivante, sinon certains éléments non corrigés/développés de l’ancienne version resteront dans le cache de votre terminal et persisteront.

 

Partagez cet article :

 

Continue Reading ·