Symfony Android Generator Bundle

Avis aux développeurs PHP Symfony & Android : Voici un bundle pour vous : Android Generator Bundle

Je vous propose aujourd’hui mon premier bundle pour Symfony : Symfony Android Generator Bundle.

Il vous permettra de générer toute la structure de base (fonctionnelle) d’une application Android, et ce à partir de vos déclarations de classes (entités) dans votre application Symfony.

Pour le dire autrement, vous préparer un projet avec Symfony, de fait, vous avez des entités pour gérer, je ne sais pas au hasard, des catégories de produits et des produits…
Vous allez créer 2 entités, YourBundle\Entity\Category et YourBundle\Entity\Product et les exposer a travers routes, contrôleurs et vues.

Ensuite, il vous suffit d’ajouter quelques annotations à vos entités, et générer l’application Android grâce à la commande :

php bin/console generate:android:app YourBundle

Bien entendu, tous est paramétrable et rien ne vous empêche d’apporter toutes les modifications souhaitées a l’application finale.

Un exemple c’est toujours util

Voici par exemple l’entité Product avec les annotations nécessaires:

<?php
namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation as Serializer;
use Kolapsis\Bundle\AndroidGeneratorBundle\Annotation as Android;

/**
 * Category
 * @Android\Entity("Category", providerName="Product")
 * @Android\Api("category", methods={"GET"})
 * @ORM\Table(name="category")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\CategoryRepository")
 */
class Category {
    /**
     * @var int
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @Serializer\Expose()
     */
    private $id;

    /**
     * @var string
     * @ORM\Column(name="label", type="string", length=100)
     * @Serializer\Expose()
     */
    private $label;

    /**
     * @ORM\OneToMany(targetEntity="AppBundle\Entity\Product", mappedBy="category")
     * @Serializer\Exclude()
     */
    private $products;

Vous allez pouvoir générer une application Android avec la commande :

php bin/console generate:android:app AppBundle

Cette application contiendra :

  • Compte utilisateur intégré au système Android pour votre app.
  • Entités Java reflétant les entités l’application Symfony.
  • ContentProvider afin d’exposer les données (publiquement ou non).
  • SyncService et SyncAdapter pour synchroniser les données a travers le système de synchronisation de compte d’Android.
  • CursorLoader (android support v4) pour chaque entité permettant un chargement fluide pour les listes, grilles et autre.

J’ai également ajouté un système de compte par défaut et des annotations, pour la création des providers Android, permettant un accès anonyme (sur l’api).

Symfony Android Generator est disponible:

Le projet est hébergé sur Github
Et une petite doc sur la page Github.io du projet

Le bundle intègre :

  • La commande de génération generate:android:app (paramétrable à souhait) .
  • Différentes annotations PHP pour définir les caractéristiques des provider et entités dans l’application Android.
  • Un contrôleur pour exposer automatiquement une API JSON (RESTfull) avec authentification (basé sur FOSUser/FOSRest/LexitJWTAuthentication bundles), mais vous pouvez passer par une api perso si vous préférez.

Bon dev 😉

2 réflexions au sujet de « Symfony Android Generator Bundle »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *