lunes, 8 de junio de 2015

Front-end y Back-end... dónde encaja Zend Framework 2?

Es evidente la tendencia cada vez mayor a desarollar en entornos Web, los dispositivos móviles adquieren mayor presencia en nuestra vida y por ello reclaman esfuerzos para crear nuevas aplicaciones en ellos. La capa que interactua con el usuario adquiere mucha mayor importancia, dada la variedad de dispositivos y tecnologías que nos podemos encontrar.

Existe mucha polémica entre las diferentes capas que componen el diseño y desarrollo de una aplicación, yo prefiero hacer una simple abstraccion simplificando en front-end y back-end.

Cuando hablamos del front-end estamos haciendo referencia a la presentación de nuestra aplicación donde el usuario interactuará con ella. Normalmente el front-end puede dividirse en dos bloques: el diseño y la programación web.

Hablamos de forma genérica del diseño web a la disposición de los elementos (usabilidad, ergonomía, etc) y del estilo en colores e imágenes de la aplicación, mientras que la programación se encarga hacer realidad ese diseño en forma de HTML, hojas de estilos y código javascript para interactuar con los diferentes elementos.

El back-end en cambio hace referencia al servidor, la aplicación y posiblemente una base de datos donde contener la información. La aplicación será la encargada de proporcionar al front-end los recursos dinámicos que compondrán la página solicitada. La tecnología involucrada en nuestra aplicación consiste en lenguajes como java, PHP, Rubí, Python, etc. Estas tecnologías facilitan el desarrollo de aplicaciones mediante el uso de API's como Zend Framework, code igniter, Cake PHP, simphony para PHP, DJango para Python, Rubí un Rails para Rubí, etc.

Cada equipo focaliza sus esfuerzos en su area, pero es habitual encontrarse que el programador de PHP es a la vez el analista, diseñador de la base de datos y diseñador gráfico. Para alegría de estos existe un conjunto de librerías de estilos que nos facilitan el diseño y programación web, son Bootstrap y jQuery.

jQuery es una librería de javascript que simplifica la interacción con los diferentes elementos HTML y Bootstrap es un conjunto de plantillas CSS y código javascript que nos dotan de un diseño web sencillo e uniforme.

Existen multitud de páginas que nos podrán ayudar en el diseño de una plantilla básica para nuestra aplicación, en www.layoutit.com podremos crear un "layout" rápido y funcional.

Bootstrap requiere de jQuery y ambos vienen por defecto al descargarnos el esqueleto básico de una aplicación Zend Framework 2, en ZendSkeletonApplication/module/Application/view/layout/layout.phtml encontrarmos referencia a dichas librerías:

        
        headLink(array('rel' => 'shortcut icon', 'type' => 'image/vnd.microsoft.icon', 'href' => $this->basePath() . '/img/favicon.ico'))
                        ->prependStylesheet($this->basePath('css/style.css'))
                        ->prependStylesheet($this->basePath('css/bootstrap-theme.min.css'))
                        ->prependStylesheet($this->basePath('css/bootstrap.min.css')) ?>

        
        headScript()
            ->prependFile($this->basePath('js/bootstrap.min.js'))
            ->prependFile($this->basePath('js/jquery.min.js'))
            ->prependFile($this->basePath('js/respond.min.js'), 'text/javascript', array('conditional' => 'lt IE 9',))
            ->prependFile($this->basePath('js/html5shiv.js'),   'text/javascript', array('conditional' => 'lt IE 9',))
        ; ?>

Podemos ver que Zend Framework 2 apuesta directamente por ambas librerías.