Asistimos a “deSymfony”, el mejor evento sobre el proyecto Symfony

deSymfony

Un año más, Sopinet Software estará en deSymfony, la mejor conferencia sobre el proyecto Symfony y su ecosistema, el cual es considerado a su vez el mayor evento PHP en lengua hispana a nivel mundial.

Esta segunda edición vuelve a tener como sede Madrid, y tendrá lugar los días 16 y 17 de septiembre en la Facultad de Informática de la Universidad Complutense de Madrid. (más…)

Leer Más

#nofear Symfony framework

En Sopinet Software trabajamos con Symfony2 en todos nuestros proyectos, siendo la base de nuestras aplicaciones en el lado del servidor. Por ello, somos conscientes de su potencial pero a la vez de su complejidad, sobre todo a la hora de asimilar algunos conceptos en sus inicios.

En colaboración con Openwebinars.net vamos a poner en marcha un curso que acerque este framework a aquellos desarrolladores PHP que son conocedores de la calidad que aporta una herramienta de estas características en el desarrollo de un proyecto.

El curso constará de 9 capítulos, empezando por la instalación y configuración hasta llegar al punto previo de desplegarla en un servidor, pasando por el modelo, la vista, los controladores, servicios e inyección de dependencias, creación e instalación de bundles, etc.

Durante el curso veremos cómo podemos desarrollar rápidamente una aplicación con Symfony2. Como ejemplo, crearemos una pequeña aplicación para la gestión y publicación de contenido, a la que llamaremos my_blog, y en la que se abordarán todos los aspectos fundamentales del framework.

Ya tenéis disponible el primer artículo. ¿Quieres poder decir #nofear Symfony? Entra en este enlace.

Leer Más

Caso de éxito: iCofrade 2015

Otro año más hemos sido partner tecnológico del proyecto iCofrade, una de las mejores y más completas aplicaciones de Semana Santa de toda España. En este año, 2015, hemos batido nuevos records, creando un sistema de visualización de rutas para las procesiones a través de serpientes que se pueden desplazar sobre el mapa en una línea de tiempo.

icofrade2icofrade1

 

 

 

 

 

 

 

 

 

 

El sistema, permite desde un panel web en Backend, configurar por cada cofradía cómo será el movimiento, a través de un mapa, un listado de puntos y una estructura. Todo configurable a través de seleción de color y otras herramientas, dando como resultado que un grupo de más de 15 coordinadores son capaces de generar la información que luego la aplicación móvil va a mostrar.

icofrade6 icofrade5

 

 

 

 

 

 

 

Además, gracias a que toda la información está estructurada y almacenada en una base de datos, este año hemos conseguido hacer un juego de tipo Trivial en un tiempo record, reutilizando toda esta base de datos, y generando con ella más de 5000 preguntas sobre Semana Santa.

icofrade4 icofrade3

 

 

 

 

 

 

 

 

 

 

En Android, la aplicación de Semana Santa iCofrade, ya ha superado las 50.000 descargas y creciendo a un ritmo de más de 5000 nuevas descargas al día. Para mantener la estructura de servidor funcionando con un coste reducido y una alta resistencia a peticiones, hemos realizado una arquitectura que combina caché a través de los servicios de CloudFlare y caché en nuestro servidor con los sistemas que el Framework Symfony2 provee.

Descarga la Aplicación iCofrade para Android

Descarga la Aplicación iCofrade para iPhone

Descarga el Trivial de iCofrade (sólo para Android)

Leer Más

Trazeo (II): Algo más que ir caminando al colegio.

¿De qué iba todo esto?

Trazeo es un proyecto OpenSource y sin ánimo de lucro, está buscando financiación a través de la Comunidad y, al momento de escribir estas líneas, lleva recaudado un 72% de los 9140€ que necesita para llevarse a cabo.

Ya se ha explicado por activa y por pasiva qué pretende Trazeo, qué es, por quién está impulsado, etc. Este post pretende entrar en detalle técnico sobre uno de los bundles que Sopinet desarrollaría y liberaría para el proyecto: PlantillaBundle (o TemplateBundle). Por tanto, si tu perfil no es técnico, quizás te pierdas un poco entre tanta extraña nomenclatura.

¿Qué es un Bundle?

Un Bundle, en Symfony2, es un conjunto de ficheros estructurados que cumplen con una funcionalidad. En el caso que nos ocupa y, según explicamos en: Trazeo (I): Algo más que ir caminando al colegio desarrollaremos hasta 5 bundles para Symfony2 si conseguimos la financiación necesaria.

TemplateBundle

Uno de los bundles que queremos programar, consiste en la integración de un tema de Bootstrap bajo el sistema de plantillas Twig. Es decir, crearíamos y liberaríamos un paquete que serviría de base para cualquier proyecto web tipo panel de control, red social, etc.

¿Por qué?

  • No hemos encontrado nada parecido. Cierto es que existen Bundles como Mopa que facilitan la integración de Bootstrap en Symfony2. Sin embargo, quedan lejos de dar una solución rápida al problema de tener que crear un panel completo para un proyecto web.
  • Entendible y modificable. Al basarnos en Bootstrap3, la plantilla será entendible por una gran cantidad de diseñadores y maquetadores y también podrá ser modificada fácilmente.
  • Twig no sólo es el sistema de plantillas de Symfony2. Se está convirtiendo en un peso pesado en PHP. Proyectos como Drupal8 ya lo incorporan de serie y muchos otros están haciéndolo. No sólo PHP, también Djando o ChicagoBOSS, por citar algunos, tienen un sistema de plantillas muy parecido a Twig. Es decir, este bundle no sólo serviría para Symfony2, sino que podría reutilizarse en otros lenguajes.

¿Cómo lo vamos a hacer? El poder de Twig

Twig es un sistema de plantillas que se caracteriza por ser: rápido, flexible y seguro, y eso mismo vamos a hacer con nuestro TemplateBundle.

  • Modularización: Separaremos los elementos de nuestra plantilla en distintos ficheros twig, de manera, que haciendo uso de la función include y extends iremos formando nuestro Bundle de una forma sencilla y organizada.
modularbundle
Ejemplo de modularización en una plantilla
  • Uso de variables: Cualquier elemento que no sea de diseño (nombre de usuario, avatar, etc), será enviado mediante variable twig, por lo cual, desacoplaremos completamente el layout final de la maquetación ofrecida.
export
Captura real del fichero navbar.html.twig usado en SusPasitos2. Se puede ver el uso de variables y la modularización.
  • Integración Symfony2: Además, desarrollaremos los elementos de paginación (knp_paginator), menú, formularios, login,… que se usan con normalidad en Symfony.

Experiencia y más

Cierto es que desde Sopinet aún no hemos liberado ningún Bundle de este tipo, sin embargo, tenemos la experiencia necesaria para realizarlo y mantenerlo. Como ya hemos adelantado un poco más arriba, en el proyecto SusPasitos2 (www.suspasitos.com) implementamos dos bundles de este tipo, que se pueden ver funcionando. Además, en la actualidad estamos trabajando con otros dos proyectos en los que estamos realizando el mismo trabajo para la parte visual.

En el caso de Trazeo, es especial, nosotros hemos trabajado internamente con plantillas bootstraps comerciales, sin embargo, para poder liberar completamente el Bundle, pensamos que lo mejor es partir de una plantilla bootstrap completamente OpenSource. Eso, no obstante, nos gusta.

Hasta el momento tenemos varias candidatas, he aquí algunas de ellas:

http://vinceg.github.io/Bootstrap-Admin-Theme/

https://github.com/divshot/geo-bootstrap

http://startbootstrap.com/sb-admin

https://github.com/onokumus/Bootstrap-Admin-Template

Todas son plantillas con bastante comunidad detrás, ya que nuestra intención es que el Bundle generado pueda conservarse y sea mantenido.

Por último, comentar, que también estamos pensando en la posibilidad de hacer uso de las plantillas de: http://bootswatch.com/ Con la ventaja principal de que tendríamos una personalización aún mayor en el futuro y con la desventaja de que tendríamos que trabajar un poco más elementos como Notificaciones y demás.

Y bien, ¿qué os parece todo esto? recordad que estamos hablando sólo de 1/6 parte del código modularizado que el proyecto http://www.trazeo.es pretende liberar. Yo creo que cuanto menos es interesante. Comentarios y sugerencias son bienvenidas.

Leer Más

Trazeo (I): Algo más que ir caminando al colegio.

¿Qué es Trazeo?

Trazeo es un proyecto para apoyar, con un carácter tecnológico, que los caminos al colegio andando vuelvan a producirse.

Desde que entramos como Socios en este proyecto, hace ahora más de un año, hemos analizado, madurado y debatido mucho sobre qué debería llevar este sistema formado por una web y una aplicación móvil. Trazeo es un proyecto ambicioso y que no sólo ayudaría técnicamente a la ejecución de estos caminos escolares, sino, que podría ayudar a mejorar muchos otros procedimientos con puntos en común (o no).

(más…)

Leer Más