Backend pour applications mobiles

Backoffice, API sécurisée, traitements automatiques

Conception

Un backend pour applications mobiles est la pièce essentielle de toute application, puisque c'est grâce à lui que les données vont transiter vers ou depuis votre application.
Il est donc primordial de bien réfléchir et concevoir ce dernier afin d'optenir des performances optimales pour votre application.
Cela se traduit par la conception du modèle de donnée qui va répondre aux besoins de votre application mobile, mais aussi à la mise en place de l'architecture technique afin d'atteindre cet objectif de performance.

Développement de backend pour applications mobiles

Tous mes développements sont réalisés à l'aide du framework Python Django (version 2.x) couplé à une architecture dans le cloud (via les services proposés par Clever Cloud).

L'architecture se compose généralement d'un ou plusieurs scalers (les serveurs frontend), d'une base de donnée PostgreSQL et d'une instance Redis pour gérer la mise en cache.

Pour les traitements automatiques (lorsque c'est nécessaire), j'utilise Celery coupé à Django.

L'un des gros avantages de Clever Cloud est le scaling automatique en fonction de la charge. C'est à dire que le nombre de serveurs frontend, nécessaires pour répondre à la demande de votre application, s'ajuste automatiquement.

Développement interface d'administration

L'interface d'administration, comme son nom l'indique, permet d'administrer l'application mobile. Par exemple, de voir les comptes utilisateurs, ou de créer/visualiser/modifier/effacer toute autre type de données dont celle ci peut avoir besoin. On parle généralement d'interface C.R.U.D (create, read, update, delete).


Avec Django, développer une interface d'administration de type C.R.U.D est extrémement simple et rapide.
Mais la puissance de Django permet d'aller bien au dela d'une simple interface C.R.U.D tout en gardant une productivité exemplaire.

Développement API REST

L'API REST est la brique qui va s'interposer entre votre application mobile et votre backend. Autant dire que cette dernière est fondamentale. Tout comme la conception du modèle de donnée, la conception de l'API REST doit être réfléchie en amont afin d'éviter les problèmes de performances, et ceux-ci peuvent être nombreux, quelques exemples :

  • Devoir réaliser x requêtes HTTP pour récupérer des données qui auraient pu être récupérées en 1 seule requête (multiplié par le nombre d'utilisateurs de votre application, on peut vite arriver à saturation des frontends ou de la base de donnée).

  • Renvoyer des dizaines de méga-octets (penser aux réseaux 3G , pire EDGE).

  • Récupérer des données dans la base de donnée sans utiliser de jointures et en lançant X requêtes.
  • ...

Si ces quelques exemples peuvent sembler du bon sens, pour les avoir rencontrés avec certaines Agences avec lesquelles j'ai travaillé, cela ne semble pas être le cas...

Enfin il est important que votre API soit sécurisée d'où l'utilisation de HTTPS mais aussi du protocole oAuth2 que j'applique sur chacune des API développées.


Pour ceux que ça intéresse, vous pouvez vous reporter au livre que j'ai écris sur ce sujet : Développement backend mobile

Quelques screenshots d'interface d'administration