Mostrando entradas con la etiqueta framework. Mostrar todas las entradas
Mostrando entradas con la etiqueta framework. Mostrar todas las entradas

jueves, 4 de diciembre de 2014

¿Qué es Android?

image

Imagino que en la actualidad hablar de Android debe ser un tema bastante conocido para todos, pero en este artículo trataré de contar en pocas palabras la historia del que se ha convertido en el sistema operativo más usado en los celulares del mundo.

La historia de Android comienza cuando el empresario y desarrollador Andy Rubin se le ocurrió la idea de desarrollar un sistema operativo para celulares basado en la filosofía Open Source, de forma de que fuera de código abierto, adaptable a cualquier hardware y que tuviera un entorno de desarrollo único que permitiera crear aplicaciones que corrieran en el sistema operativo y que cualquier hardware lo soportara.

El sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el núcleo de las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo de ejecución. Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz gráfica (surface manager), un framework OpenCore, una base de datos relacional SQLite, una Interfaz de programación de API gráfica OpenGL ES 2.0 3D, un motor de renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca estándar de C Bionic. El sistema operativo está compuesto por 12 millones de líneas de código, incluyendo 3 millones de líneas de XML, 2,8 millones de líneas de lenguaje C, 2,1 millones de líneas de Java y 1,75 millones de líneas de C++.

clip_image002

Android tiene una gran cantidad de desarrolladores que escriben aplicaciones para extender la funcionalidad de los dispositivos. En la actualidad existen más de 1 millón de aplicaciones, de las cuales dos tercios son gratis.

El sistema operativo ha tenido numerosas actualizaciones desde su liberación inicial. Estas actualizaciones básicamente arreglan bugs y agregan nuevas funcionalidades. Es interesante el hecho de que estas actualizaciones se han desarrollado bajo un nombre relacionado con postres en orden alfabético.

Para nosotros los programadores existen muchas oportunidades de poder hacer nuestro aporte a esta gran cantidad de aplicaciones existentes. Las aplicaciones de desarrollan habitualmente en el lenguaje java con Android Software Development Kit (Android SDK) pero existen otras herramientas de desarrollo incluyendo un Kit de Desarrollo Nativo para aplicaciones o extensiones en C, C++, Google App Inventor, un entorno visual para programadores novatos e incluso el Mono for Android, una aplicación para convertir aplicaciones de Windows pone en aplicaciones Android. También es posible usar bibliotecas Qt gracias al proyecto Necesitas SDK.

El desarrollo de aplicaciones para Android no requiere aprender lenguajes complejos de programación, todo lo que hace falta es un conocimiento básico en Java y tener el kit de desarrollo de software (SDK) el cual se puede adquirir gratuitamente.

Con este breve recuento del sistema operativo Android espero que los que todavía no lo conocen se documenten más sobre el mismo y que los desarrolladores de software comiencen a adentrarse en el fascinante mundo del desarrollo de aplicaciones Android.

{ Leer Más }


martes, 29 de abril de 2014

Yii: un excelente framework para PHP

clip_image001

Yii es un framework para PHP, que posee un alto rendimiento, es basado en componentes y permite desarrollar aplicaciones de gran escala rápidamente. Permite la máxima reusabilidad en la programación web y acelera el proceso de desarrollo de software. El nombre Yii (pronunciado /i:/) es por fácil (en inglés: easy), eficiente (en inglés: efficient) y extensible (en inglés: extensible). Yii es un framework totalmente basado en Programación Orientada a Objetos (OOP). Recientemente muchos desarrolladores web que antes usaban el framework de PHP CodeIgniter, se han cambiado a Yii, debido a que la empresa que creó CodeIgniter, llamada EllisLab, ha anunciado que ya no brindara más soporte técnico a CodeIgniter y que está buscando otra empresa que se quiera hacer cargo del desarrollo de este framework [1]. Esto ha provocado que CodeIgniter se haya quedado muy atrás con respecto a otros framework de PHP, entre los cuales se destaca Yii framework [2].

A continuación mencionaremos algunas ventajas de Yii haciendo comparaciones con CodeIgniter:

  1. Generador de código Gii. El cual permite crear plantillas de modelos, vistas, controladores y formularios. La generación de CRUD realmente se destaca, pues solamente tiene que darle el nombre de tabla de base de datos, y se crea el modelo con todos los atributos. Usted sólo define el tipo de datos (numérico, fecha, etc.), si se requiere el campo, y esas reglas son aplicadas siempre cuando intenta guardar / actualizar los datos. En CodeIgniter, es necesario validarlas en cada acción. La diferencia es que CodeIgniter es orientado a los formularios, mientras Yii está orientado a los datos.
  2. Manejo de formularios. Los formularios generados por Gii utilizan campos "activos". Esto significa que cuando algún campo no se valida, yii mostrara el mismo formulario para solucionar el problema con todos los datos rellenados.
  3. Componente Cuadrícula (Grid) HTML. Permite mostrar los datos en forma de tabla con la clasificación automática, la paginación, la coloración de las filas pares e impares, etc.
  4. Integración de jQuery. Esto significa que cosas como el selector de fecha o campos de entrada de auto-completado suelen ser una línea de código PHP y Yii se encarga de generar todo lo que se requiera de código JavaScript, HTML y CSS.
  5. Traducciones. La creación de sitios web multilingües en Yii es realmente fácil. Con CodeIgniter usted tendría que crear su propia forma de hacerlo.
  6. Las relaciones de base de datos. Yii soporta la carga diferida. Esto significa que usted no tiene que escribir JOINs cada vez que necesita obtener un valor de la tabla relacionada (por ejemplo: nombre del autor de un blog). Si usted tiene una instancia de ActiveRecord del blog post como $post, sólo tiene que hacer referencia al nombre del autor así: $post->author->name. Yii sería ejecutar el SQL necesario para conseguirlo.
  7. La consistencia. Yii es una opción mucho mejor si tiene varios desarrolladores trabajando en el proyecto. Yii introduce normas de cómo deben hacerse las cosas, y no hay reinventar la rueda. Esto significa que todos los desarrolladores crearan el código de forma que otros puedan usarlo fácilmente.

Para qué es bueno utilizar Yii?

Yii es un framework genérico de programación Web que puede ser utilizado para todo tipo de aplicaciones Web. Gracias a que es liviano de correr y está equipado con soluciones de cacheo sofisticadas, es adecuado para desarrollar aplicaciones de gran tráfico como portales, foros, sistemas de administración de contenidos (CMS), Sistemas de comercio electrónico (e-commerce), etc.

Cómo se compara Yii con otros frameworks?

Como la mayoría de los frameworks PHP, Yii es un framework MVC (modelo-vista-controlador).Yii sobresale frente a otros frameworks PHP en su eficiencia, su gran cantidad de características y su clara documentación. Yii ha sido diseñado cuidadosamente desde el principio para el desarrollo de aplicaciones de Web. No es ni un subproducto de un proyecto ni un conglomerado de trabajo de terceros. Es el resultado de la vasta experiencia de los autores en desarrollo de aplicaciones Web y de la investigación y la reflexión de los más populares los frameworks de programación Web y aplicaciones.

Esto es todo por hoy, en próximas entradas estaremos profundizando más sobre yii framework.

{ Leer Más }


jueves, 20 de junio de 2013

Introducción a Qt Quick Layouts.

clip_image001

Si usted quiere crear una aplicación QML donde la UI (interfaz de usuario) responda bien cuando se redimensiona la ventana, las herramientas que ofrece Qt Quick son algo limitadas. Con la llegada de Qt 5.1 los programadores contaran con una nueva versión de Qt Quick que ofrece novedosas herramientas como RowLayout, ColumnLayout y GridLayout que serán muy útiles para alcanzar este propósito [1].

Introducción

Antes de la llegada de Qt 5.1, Positioners y Anchors eran las únicas herramientas disponibles en Qt Quick para ordenar elementos en las UI.

Positioners eran adecuados para adicionar muchos elementos, pero no siempre eran útiles para crear una UI que fuera posible redimensionarla, pues ellos solo posicionan los elementos (el ancho y el largo se mantenían iguales).

Anchors permitían un poco más de flexibilidad, a costo de la claridad del código. Con anchors usted puede hacer que un elemento se estreche vinculando uno de sus bordes con el correspondiente borde del padre, y estableciendo un vínculo similar con los elementos en el borde opuesto. Sin embargo, usted no puede hacer que muchos elementos se distribuyan ellos mismos si la ventana se redimensiona.

La última opción es que usted mismo haga un posicionamiento en capas manual. Esto ofrece gran flexibilidad, pero se necesita mucho código, es difícil y propenso a errores. Durante el desarrollo de Qt Quick Controls, para la nueva versión de Qt 5.1 se tuvieron en cuenta estos elementos y se decidió proveer a los desarrolladores un sistema de capas (layout system) más eficiente.

import QtQuick.Layouts 1.0

Incluyendo el import de arriba usted tendrá disponibles en sus herramientas a los componentes RowLayout, ColumnLayout y GridLayout. Estos componentes de tipo layouts, funcionan de forma similar a sus homólogos que encontramos en el módulo QtWidgets: QHBoxLayout, QVBoxLayout y QGridLayout. Ellos además tratan de combinar con el API de otros elementos QML como: Row, Grid and Column. De esta forma si usted está familiarizado con alguna de estas APIs, usted encontrara a Qt Quick Layouts fácil de usar.

La alineación (Alignment) de los elementos dentro de una celda puede ser especificada con la propiedad Layout.alignment.

El espaciado (Spans) dentro de las filas y las columnas puede ser especificado con las propiedades the Layout.rowSpan y Layout.columnSpan.

Las coordenadas de la cuadricula (Grid coordinates) pueden ser especificadas con las propiedades Layout.row y Layout.column.

Los elementos que pueden ser redimensionados (Resizable items) se pueden especificar con las propiedades Layout.fillWidth y Layout.fillHeight. Esta fue la meta principal de Qt Quick Layouts.

Los tamaños mínimos, preferidos y máximos (Minimum, Preferred and Maximum) pueden ser especificados con las propiedades Layout.minimumWidth, Layout.preferredWidth y Layout.maximumWidth (“Width” puede ser reemplazado con “Height” para especificar restricciones similares en el alto)

Este conjunto de características sumadas parecería no ser de gran impacto, pero el hecho de que usted pueda tener en un mismo layout elementos que se estiran y otros que no se estiran, puede facilitar muchos las cosas y permite trabajar de forma intuitiva con los componentes.

Ejemplo

clip_image002

Suponga que usted necesita crear una barra de herramientas (ToolBar) con dos botones (buttons) y un deslizante (slider) que ocupe el espacio restante. Cuando cambie la dimensión, el espacio extra será ocupado por el deslizante (slider).

Sin usar Qt Quick Layouts, la solución con menos código seria usar una mezcla entre una fila (Row) y el uso de anchors:

ToolBar {

Row {

id: row

spacing: 2

anchors.verticalCenter: parent.verticalCenter

ToolButton { iconSource: "images/go-previous.png" }

ToolButton { iconSource: "images/go-next.png" }

}

Slider {

anchors.left: row.right

anchors.leftMargin: 2

anchors.verticalCenter: parent.verticalCenter

anchors.right: parent.right

}

}


Con Qt Quick Layouts, todos los elementos pueden ser adicionados en un mismo layout:

ToolBar {

RowLayout {

anchors.fill: parent

spacing: 2

ToolButton { iconSource: "images/go-previous.png" }

ToolButton { iconSource: "images/go-next.png" }

Slider { Layout.fillWidth: true }

}

}


Note que la declaración es mucho más corta para el elemento Slider. También note que cuando usa Qt Quick Layouts, el espaciamiento solo necesita ser especificado una vez. El código se reduce de 288 a 172 caracteres (excluyendo los espacios en blanco), lo que representa un 40% de reducción.

Resumen

En este ejemplo, haciendo uso de Qt Quick Layouts, hemos obtenido un 40% menos de código, mejorando la legibilidad (no solo porque el código sea más corto sino también porque la estructura del código se parece más a la estructura de la UI).

Si usted quiere redimensionar la UI, usted probablemente encontrara que Qt Quick Layouts es mucho más fácil de usar que anchors, posicioner y posicionamiento manual.

Quedamos en espera de sus comentarios.

{ Leer Más }


IconIconIcon