Como utilizar la Geolocalización con Google Maps

Hola a todos, espero se encuentren muy bien, ahora les explicaré como utilizar la API de Google Maps para usar la geolocalización. Haremos un pequeño ejemplo con HTML, CSS y JS. Para obtener más información de la API de Google Maps visita la web de oficial

Primero es de saber que utilizar la API de Google Maps hay que integrarla en nuestro documento HTML, lo hacemos llamando la librería desde el CDN de Google así

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>

En el ejemplo utilizaré el Framework jQuery, pueden utilizar un CDN o un archivo local. El HTML de este ejemplo es muy simple, solo pondré el contenido del body 

<div class="map" id="mapaUbicar"></div>
<input type="text" value="" name="ubicacion" id="ubicacion">

Tenemos un div vacío y un input, he puesto el input a modo de mostrar como capturar las coordenadas y asignarselas al input, es algo bastante común en los desarrollo web de weapps. Bien, ahora les pondré un pequeño CSS para que se vea mejor el mapa y el contenido de la input.

.map {
	width:100%;
	height:450px;
}
#ubicacion {
	width:99%;
	padding:5px;
	margin:5px 0;
}

Lo que hacemos es ponerle el ancho completo y una altura al div que contendrá el mapa, a la input le ponemos un ancho, un padding y un margin, es muy sencillo el CSS.

Ahora vamos a la parte gruesa, aun que es muy sencillo también, les explicaré por partes

jQuery(document).ready(function(e) {
	//Inicializamos la detección de nuestra posición por medio de esta función
        obtener_posicion_actual();
});

He creado una función para inicializar la detección de nuestra posición actual.

obtener_posicion_actual = function(options) {
	var defaults = {
		maximumAge: 500000,
		enableHighAccuracy: true,
		timeout: 600000
	}
	jQuery.extend(defaults, options);
	
	if (navigator.geolocation) {
		navigator.geolocation.getCurrentPosition(exito, fallo, defaults);
	}
}

Esta función recibe un objeto Javascript como parámetro, también puede ir vacío, lleva 4 parámetros:

  • maximumAge: Es un valor long positivo que indica la edad máxima en milisegundos de una posible posición “cacheada” que es aceptable retornar. Por defecto en esta función he puesto que sea 50,000 milisegundos.
  • enableHighAccuracy: Es un Boolean que indica que la aplicación quiere recibir los mejores resultados posibles. Si es true y si el dispositivo es capaz de proporcionar una posición más precisa, así lo hará. Por defecto es true.
  • timeout: Es un valor long positivo que representa el máximo período de tiempo (en millisegundos) que se le permite tomar al dispositivo para retornar a una posición. Por defecto en esta función he puesto que sea 60,000 milisegundos.

Luego preguntamos si el navegador soporta la geolocalización, si es así utilizamos: navigator.geolocation.getCurrentPosition(exito, fallo, defaults); donde exito y fallo son dos funciones, una para éxito si ha logrado obtener la posición actual y la otra por si hay un fallo, se falla puede devolver 1 de 4 códigos para decirnos que es lo que pasó, pueden ser: 0, 1, 2 o 3. Les coloco el código de ambas funciones y verán que es cada código de error. El último parametro es el objeto que le pasamos a la función defaults.

function exito(pos) {         
	var coors = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude); 
	mapa = nuevo_mapa({
		id:'mapaUbicar',
		zoom: 13,
		center: coors
	}); 
	
	agregar_marcador({
		lat:pos.coords.latitude,
		lon:pos.coords.longitude
	},mapa);           
}        
	
function fallo(error) {           
	if (error.code == 0) {
		alert("Oops! No se puede obtener la posición actual.");
	}
	if (error.code == 1) {
		alert("Oops! Algo ha salido mal.");
	}
	if (error.code == 2) {
		alert("Oops! No has aceptado compartir tu posición.");
	}
	if (error.code == 3) {
		alert("Oops! Hemos superado el tiempo de espera");
	}        
}

Como vemos en código anterior, la función exito recibe como parámetro una posición, la cuál es tomada en la función que la llama, en base a la posición se obtiene en coors una latitud y longitud para ser usada en la API de Google Maps. Luego llamamos una función para crear un mapa, esta recibe un objeto:

  • id: Id del elemento HTML que contendrá el mapa, en nuestro caso la div vacía.
  • zoom: Zoom que queremos que tenga nuestro mapa al iniciarse
  • center: las coordenadas del centro que queremos ubicar, le pasamos las de nuestra posición actual.

Luego agregamos un marcador, así mostramos con un marker la posición donde nos encontramos, le pasamos la latitud y longitud para que se dibuje en el mapa.

La función fallo recibe como parámetro un código de error:

  • 0: No se puede obtener la posición actual.
  • 1: Hay algo que ha salido mal.
  • 2: No aceptaste darle permisos al navegador para que detecte tu posición actual.
  • 3: Se superó el tiempo de espera y no hubo respuesta.

Veamos la función para crear un mapa:

nuevo_mapa = function(options){
	var defaults = {
		id: '',
		zoom: 5,
		center: new google.maps.LatLng(10.386748, -75.504615),
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	jQuery.extend(defaults, options);
   
	mapa = new google.maps.Map(document.getElementById(defaults.id), defaults);
	
	return mapa;
}

A esta función le pasamos como parámetro el objeto antes mencionado para la creación del mapa. finalmente usamos mapa = new google.maps.Map(document.getElementById(defaults.id), defaults); donde mapa es una instancia de un objeto tipo mapa de Google Maps y retornamos la variable creada para que se pueda utilizar fuera.

Ahora veamos la función que crea el marcador:

agregar_marcador = function(location,mapa) {
	var marker = new google.maps.Marker({
		position: new google.maps.LatLng(location.lat,location.lon),
		map: mapa,
		draggable: true
	});
	
	google.maps.event.addListener(marker, 'dragend', function() {
		pos = marker.getPosition();
		input = '#ubicacion';
		geocoder = new google.maps.Geocoder();
		geocoder.geocode({
			latLng: pos
		}, function(results, status){
			if (status == google.maps.GeocoderStatus.OK){
				jQuery(input).val(results[0].geometry.bounds.R.R+','+results[0].geometry.bounds.j.j);
			} else {
				alert('No se pudo determinar la posición: '+status);
			}
		});
	});
}

Esta función quizá sea la más compleja, no por la creación del marcador, sino por el listener que escucha cuando movemos el marcador. Lo primero que vemos es una variable marker, con ella agregamos el marcador al mapa, utiliza la posición que se ha capturado cuando ha obtenido nuestra posición actual, se le pasa como objeto location en esta función, luego se le pasa la referencia al mapa que se está utilizando y finalmente el parámetro draggable : true para que el marker se pueda arrastrar dentro del mapa.

Luego vemos un addListener que es un metodo de un objeto de Google Maps, se le pasa como parámetro el marcador, el evento a escuchar ‘dragend’ (Finalización del arrastrado por así traducirlo) y un callback, creamos una función anónima, con pos = marker.getPosition(); obtenemos la posición donde soltamos el marcador luego de arrastrarlo, luego creamos un objeto geocoder, le pasamos latLng, o sea, la posición donde se soltó el marker y una función haciendo de callback, esta función se le pasa un result y un status.

Verificamos que el staus sea el adecuado, en este caso buscamos un OK, entonces le asignamos la posición del marker al input, al result en la posicón 0 buscamos el objeto geometry, luego el objeto bounds, luego el bojeto R y finalmente el objeto R y ese valor almacenado en ese objeto le pasamos como latitud, para la longitud es de igualmanera, pero en lugar de R usamos j. Si la respuesta del status es diferente a OK mostraremos un alert indicando que no se pudo obtener la posición y nos agrega el status obtenido.

El código completo de Javascript sería así:

jQuery(document).ready(function(e) {
	obtener_posicion_actual();
});
		
agregar_marcador = function(location,mapa) {
	var marker = new google.maps.Marker({
		position: new google.maps.LatLng(location.lat,location.lon),
		map: mapa,
		draggable: true
	});
	
	google.maps.event.addListener(marker, 'dragend', function() {
		pos = marker.getPosition();
		input = '#ubicacion';
		geocoder = new google.maps.Geocoder();
		geocoder.geocode({
			latLng: pos
		}, function(results, status){
			if (status == google.maps.GeocoderStatus.OK){
				jQuery(input).val(results[0].geometry.bounds.R.R+','+results[0].geometry.bounds.j.j);
			} else {
				alert('No se pudo determinar la posición: '+status);
			}
		});
	});
}

nuevo_mapa = function(options){
	var defaults = {
		id: '',
		zoom: 5,
		center: new google.maps.LatLng(10.386748, -75.504615),
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	jQuery.extend(defaults, options);
   
	mapa = new google.maps.Map(document.getElementById(defaults.id), defaults);
	
	return mapa;
}

function exito(pos) {         
	var coors = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude); 
	mapa = nuevo_mapa({
		id:'mapaUbicar',
		zoom: 13,
		center: coors
	}); 
	
	agregar_marcador({
		lat:pos.coords.latitude,
		lon:pos.coords.longitude
	},mapa);           
}        
	
function fallo(error) {           
	if (error.code == 0) {
		alert("Oops! No se puede obtener la posición actual.");
	}
	if (error.code == 1) {
		alert("Oops! Algo ha salido mal.");
	}
	if (error.code == 2) {
		alert("Oops! No has aceptado compartir tu posición.");
	}
	if (error.code == 3) {
		alert("Oops! Hemos superado el tiempo de espera");
	}        
}      
		
obtener_posicion_actual = function(options) {
	var defaults = {
		maximumAge: 500000,
		enableHighAccuracy: true,
		timeout: 600000,
		puntos : false
	}
	jQuery.extend(defaults, options);
	
	if (navigator.geolocation) {
		navigator.geolocation.getCurrentPosition(exito, fallo, defaults);
	}
}

Esperamos que esto te sea de ayuda para tus desarrollos en Javascript y con la API de Google Maps.

Algo muy importante a destacar es que para poder usar la geolocalización de Google Maps debes ejecutar el código en un servidor, puede ser un servidor en internet o un servidor local (XAMMP, MAMP, WAMP, LAMP, Bitnami, etc)

¿Entonces tu vendes un producto o una marca empresarial?

Hace unos días hablaba con un buen amigo mio y me comentaba sobre un negocio que tiene algunos años de estar funcionando pero aun no logra posicionarse de la manera que él lo desea, exponía que hay muchos negocios del mismo rubro en la ciudad donde éste se encuentra localizado y que las personas un día van con él y al siguiente con alguien mas. Cuando le preguntaba sobre su marca empresarial él me explica no considera eso tan necesario y que para él solo basta con tener un buen producto para que las personas lo prefieran a él por encima de los demás. Por cual yo le explicaba que al crear una marca empresarial es algo de vital importancia puesto que de esa manera es que te muestras a tus clientes potenciales, das a conocer de que es lo que trata tu negocio y lo reflejas a través de un nombre, logotipo, eslogan entre otros características. Es por tal motivo que al desarrollar tu marca empresarial hay ciertos aspectos que debes tomar muy en consideración los cuales pueden llegar a marcar el éxito del posicionamiento de tu marca empresarial en la mente de tus clientes o el fracaso de éste. algunos aspectos que debe tomar muy en cuenta para el desarrollo la marca empresarial son:

Originalidad

Tu marca debe ser un claro distintivo de la competencia, debes conocer a tus clientes potenciales y saber que es lo que les genera interés y los motiva; también debes  evaluar colores a utilizar en tu logo para transmitir el mensaje adecuado, tipografía (tipo de fuentes), usar palabras clave para tu eslogan que transmitan un mensaje claro y sea recordado con facilidad.

Segmenta tu mercado

Sera indispensable dividir a todos los posibles consumidores en grupos que tengas características similares como edades, ubicación geográfica, nivel social, gustos, preferencias entre otros. Analizar esta información detenidamente y seleccionar al que va dirigida tu marca enfocándote en darle un mayor realce a través de campañas publicitarias o eventos de interés para éstos.

Conexión emocional

No se trata de que haya comunicación de la empresa hacia los clientes unilateral, es necesario para la empresa buscar una retroalimentación para evaluar la eficacia del mensaje y también para generar un sentimiento de involucramiento, en otras palabras hacerlo sentir parte de la marca, desarrollando un vinculo estrecho y volver a cada cliente en un evangelista de tu marca empresarial.

Seguimiento

Al momento de realizar tus estrategias debes siempre hacerlo a corto, mediano y largo plazo para promover tu marca, y esto debe involucrar mensajes publicitarios, lineas de productos, eventos, regalías, entre otros. para ésto puedes valerte de redes sociales, paginas web o los canales de comunicación que mas utilice tu audiencia meta.
Recuerda que los productos vendidos por las empresas perecen, pero si tienes una marca empresarial que la asocian con valores agregados tendrás una compañía a través del tiempo.

Walter Landon dijo: “Los productos se hacen en las fabricas pero las marcas se crean y viven en la mente y el corazón“.

LocalStorage, almacenamiento local con HTML5

localstorage

Seguramente ya escuchaste sobre el almacenamiento local de HTML5. Ahora veremos como utilizar LocalStorage.

Primero tenemos que tener en cuenta que LocalStorage es el almacenamiento que no expira y tiene los siguientes métodos:

  • getItem ( key )
  • setItem ( key , value )
  • removeItem ( key ).

La utilización de cada uno es muy simple, veamos el primero:

  1. getItem( key ) : Obtiene la información almacenada, se le pasa como parámetro una key que nosotros hayamos escogido al momento de guardarla, de esta manera logramos diferenciarla de las demás.
  2. setItem( key, value ) : Guardamos nuestra información deseada en una LocalStorage, se le pasa un key para identificarlas y un value, este value debe ser un String, esto es muy importante, una LocalStorage solo puede guardar String.
  3. removeItem( key ) : Para eliminar una LocalStorage se le debe pasar una key, la LocalStorage no tiene tiempo de vida, si no se elimina estará ahi guardada.

Un ejemplo de como utilizar estos métodos de LocalStorage sería así:

if (window.localStorage) {
  //Agregamos un item
  localStorage.setItem("nombre_app", "pepe");
  //Obtenemos el item
  var nombre = localStorage.getItem("nombre_app");
  //Eliminamos el item
  localStorage.removeItem("nombre_app");
}
else {
  throw new Error('Tu Navegador no soporta LocalStorage :(');
}

Ahora te podrás preguntar, ¿Pero, que puedo hacer con esto? Pues, las posibilidades son infinitas, podrás hacer webapps, sitios web con personalizaciones, aplicaciones móviles, etc.

Veamos un ejemplo pequeño y práctico.

<body>
<div class="container">
	<h1>LocalStorage</h1>
	
	<form id="ingreso-notas" action="" method="post">
		<ul class="list-unstyled">
			<li>
				<label for="codigo">Código</label>
				<input type="text" id="codigo" name="name" />
			</li>
			<li>
				<label for="nombre">Nombre</label>
				<input type="text" id="nombre" name="nombre" />
			</li>
			<li>
				<label for="nota">Nota</label>
				<input type="text" id="nota" name="nota" />
			</li>
			<li>
				<input type="submit" class="btn btn-secondary" id="codigo" name="name" />
			</li>
		</ul>
	</form>
	
	<ul class="list-inline box-style">
	     <li><button type="button" id="all" class="btn btn-primary">Ver Todo</button></li>
	</ul>
	<div id="result"></div>
</div>
<script src="js/jquery.js"></script>
<script src="js/jquery.validate.min.js"></script>
<script src="js/init.js"></script>
</body>

En el código anterior creamos un formulario para almacenar registros de notas, el ejemplo es muy sencillo, creas un usuario, le asignas un código como id, un nombre y una nota, al enviar el formulario guardará la información como LocalStorage. Lo que haremos al procesar la información es que crearemos un JSON y antes de guardarlo lo convertiremos en un String, de esta manera podemos volverlo JSON y añadir o quitar registros.

/* Muestra el json en formato legible */
jQuery("#all").click(function(){
    mostrar_json();
});

/* Delegamos la edición a los botones creados dinámicamente */
jQuery('body').delegate('.edit','click',function(){
	var element = jQuery(this);
	id = element.data('id');
	editar_entrada(id);
});

/* Delegamos la eliminación a los botones creados dinámicamente */
jQuery('body').delegate('.delete','click',function(){
	var element = jQuery(this);
	id = element.data('id');
	eliminar_entrada(id);
});

/* Agrega al json más items */
//Primero validamos utilizando el plugin Validate de jQuery
jQuery("#ingreso-notas").validate({
	rules: {
		codigo:{required : true},
		nombre:{required : true, minlength : 3},
		nota:{required : true, number : true}
  	},
  	messages: {
    	codigo: "Este campo es requerido",
		nombre: "El nombre es requerido y debe tener por lo menos 3 caracteres",
		nota: "La nota es requerido y debe tener solo dígitos",
  	},
  	submitHandler: function() {
		//Obtenemos los datos del form
                var codigo = jQuery('#codigo').val();
		var nombre = jQuery('#nombre').val();
		var nota = jQuery('#nota').val();
                
                //Creamos el JSON
		registro = {'codigo' : codigo, 'nombre' : nombre, 'nota' : nota};
                //Agregamos el registro al LocalStorage
		localStorage.setItem(codigo,JSON.stringify(registro));
                
                //Mostramos el resultado en la tabla
		mostrar_json();
		jQuery("form").get(0).reset()
		return false;
  	}
});

function editar_entrada(id){
	var nota;
        //Recorremos todos los datos de LocalStorage que tiene nuestro navegador
	for(i = 0; i < localStorage.length; i++){
		var registro = localStorage.key(i);

                //Comparamos si es e que estamos buscando y lo agregamos al formulario para poder editarlo
		if( registro == id ){
			nota = $.parseJSON(localStorage.getItem(registro));
			jQuery('#codigo').val(nota.codigo);
			jQuery('#nombre').val(nota.nombre);
			jQuery('#nota').val(nota.nota);
		}
	}
}

function eliminar_entrada(id){
	localStorage.removeItem(id);
	jQuery('#result').html('<div class="alert">Se eliminó la entrada</div>').fadeIn(800).delay(3000).fadeOut(800,function(){
		mostrar_json();
	});
}

//Mostramos los datos alamacenados en el LocalStorage
function mostrar_json(){
	var table = '<table class="table table-striped">';
	table += '<thead><tr>';
	table += '<th>Código</th><th>Estudiante</th><th>Nota</th><th>Acciones</th>';
	table += '</tr></thead><tbody>';
	
	for(i = 0; i < localStorage.length; i++){
		var registro = localStorage.key(i);
		try {
			nota = jQuery.parseJSON(localStorage.getItem(registro));
	    } catch(err) {
			break;
	    }
		
		table += '<tr>';
		table += '<td>'+nota.codigo+'</td>';
		table += '<td>'+nota.nombre+'</td>';
		table += '<td>'+nota.nota+'</td>';
		table += '<td><button type="button" class="btn btn-default edit" data-id="'+nota.codigo+'">Editar</button> <button type="button" class="btn btn-default delete" data-id="'+nota.codigo+'">Eliminar</button></td>';
		table += '</tr>';
	}
	
	table += '</tbody></table>';
	
	jQuery('#result').html(table);
	jQuery('#result').css('display','block');
}

En el código anterior tenemos varias funciones, las cuales nos darán la interactividad, mostrar_json() nos mostrará la información almacenada en el LocalStorage. editar_entrada(id) nos ayuda a colocar la información correspondiente en el formulario para poder editarla. eliminar_entrada(id) nos elimina el ítem que hemos seleccionado de la tabla.

/* Delegamos la edición a los botones creados dinámicamente */
jQuery('body').delegate('.edit','click',function(){
	var element = jQuery(this);
	id = element.data('id');
	editar_entrada(id);
});

Con este trozo de código le damos la facultad de poder editar a los botones agregados dinámicamente, por ello utilizamos la función delegate de jQuery, es lo mismo para la seccion de eliminar ítem o registro.

/* Delegamos la eliminación a los botones creados dinámicamente */
jQuery('body').delegate('.delete','click',function(){
	var element = jQuery(this);
	id = element.data('id');
	eliminar_entrada(id);
});

Ahora, la parte final.

/* Agrega al json más items */
jQuery("#ingreso-notas").validate({
	rules: {
		codigo:{required : true},
		nombre:{required : true, minlength : 3},
		nota:{required : true, number : true}
  	},
  	messages: {
    	codigo: "Este campo es requerido",
		nombre: "El nombre es requerido y debe tener por lo menos 3 caracteres",
		nota: "La nota es requerido y debe tener solo digitos",
  	},
  	submitHandler: function() {
		var codigo = jQuery('#codigo').val();
		var nombre = jQuery('#nombre').val();
		var nota = jQuery('#nota').val();
		registro = {'codigo' : codigo, 'nombre' : nombre, 'nota' : nota};
		localStorage.setItem(codigo,JSON.stringify(registro));
		mostrar_json();
		jQuery("form").get(0).reset()
		return false;
  	}
});

Utilizamos un conocido plugin de jQuery para validar los campos del form, lo que nos interesa en este momento es en el método submitHandler, obtenemos la información del formulario, la convertimos a JSON y la agregamos al LocalStorage, mostramos la información actualizada en la tabla, limpiamos el formulario y ponemos un return false para que el formulario no recargue la página.

El ejemplo es sencillo y con él podemos ver en acción los 3 métodos de LocalStorage y un poco de JSON para facilitarnos las cosas. Esperamos que esto les ayude un poco a entender LocalStorage y a facilitarles el desarrollo de sus aplicaciones y sitios web.

¿Cuál es la importancia de un sitio web?


Algunos amigos me han preguntado: ¿Para qué un sitio web? Si tengo las fanpage de Facebook. A lo que siempre respondo: Tu página web es tuya, tú pones tus reglas, nadie borrará tus contenidos si alguien está en contra, tus contenidos no se perderán por algún cambio de políticas.

Imagina que todo tu público objetivo está en tu fanpage, un día denuncian tu fanpage por algún contenido que publicaste y a alguien le pareció ofensivo, eliminan tu fanpage y adiós a todo tu público, luego nadie te sabe cómo encontrar tus productos o servicios y se van con otras personas que les ofrescan el mismo producto o servio.

¿Por qué pasó esto? Es sencillo, estabas jugando bajo las reglas de otros, no tenías toda la libertad. ¿Qué hubiera pasado, basándonos en el ejemplo anterior, si se tenía una página web? Pues tu público sabía que tú tenías una web o tenías un blog, fueron a tu web y preguntaron por los productos y servicios, podrías haber creado una nueva fanpage y comunicarlo por medio de tu blog.

Básicamente la importancia es: Tu web es tuya y tú la manejas como mejor te plazca. Así siempre tendrás una manera de informar a tu público objetivo si algo pasa, como en el ejemplo anterior.

Y es aún más importante si sabes cómo hacer que tus clientes usen tu web para estar actualizados sobre lo que ofreces, ya sea un servicio de noticias, chismes, un servicio profesional, un servicio de ayuda o un producto cualquiera.

Además hoy en día si se busca una empresa en Google y no tiene un sitio web: No parece una empresa de verdad. Y otros dicen: Si una empresa no tiene página web, no existe. Todo esto se va haciendo más real cada día y es importante tener presencia en la web para poder ampliar y mantener los negocios.

Espero que con esto aclare un poco sobre la importancia de las páginas web, he tratado de informarles de una manera muy práctica.

¿Qué es un Tema de WordPress?

Fundamentalmente, el sistema de Tema WordPress es una manera de “piel” de su weblog. Sin embargo, esto es más que solo una “piel”. Ponerle pieles a su sitio implica que solo el diseño es modificado.

Un Tema WordPress es una colección de archivos que trabajan juntos para producir un interfaz gráfico con un diseño unificado para un weblog. Un tema modifica el modo en que el sitio es mostrado, sin modificar el software subyacente.

Un tema WordPress nos permitirá personalizar las fuentes de los textos, el tamaño de la letra, los colores del texto, de los links, el fondo de la página. Y por eso es muy importante saber cuál se adecua más a nuestras necesidades, es decir,  en función a quien queramos orientar nuestra página y cuál es nuestro nicho de mercado.

Además, la mayoría de temas  WordPress admiten la implantación de muchos widgets diferentes, que nos servirán para añadir funciones a nuestra web o blog.

También es importante saber que hay temas WordPress que son gratuitos, y otros que son de paga, son temas más trabajados y personalizados.

¿Qué es WordPress?

WordPress es un sistema de gestión de contenidos o CMS (por sus siglas en inglés, Content Management System) enfocado a la creación de cualquier tipo de sitio, aunque ha alcanzado una gran relevancia usado para la creación de blogs (páginas web con una estructura cronológica que se actualiza regularmente). Se ha convertido en el CMS más popular de la blogosfera y en el más popular con respecto a cualquier otro CMS de uso general.

Las causas de su enorme crecimiento son, entre otras, su licencia, su facilidad de uso y sus características como gestor de contenidos.

¿Qué puedo hacer con WordPress?

En muchas ocasiones se asocia WordPress con una herramienta que solo sirve para hacer blogs. Esto no es correcto: con WordPress podemos hacer un blog y mucho más: webs empresariales, tiendas online, periódico digital, central de reservas, etc. A continuación vamos a ver algunas de las cosas que podemos crear con este gestor de contenidos.

Esperamos que este pequeño post te ayude a saber que es esta grandioso CMS

¿Qué es el Diseño Web?

El diseño web es una actividad que consiste en la planificación, diseño, implementación y mantenimiento de sitios web. No es simplemente la implementación del diseño convencional ya que se abarcan diferentes aspectos como el diseño gráfico web; diseño de interfaz y experiencia de usuario, como la navegabilidad, interactividad, usabilidad, arquitectura de la información; interacción de medios, entre los que podemos mencionar audio, texto, imagen, enlaces, video y la optimización de motores de búsqueda.

El diseño web ha visto amplia aplicación en los sectores comerciales de Internet especialmente en la World Wide Web. A menudo la web se utiliza como medio de expresión plástica en sí. Artistas y creadores hacen de las páginas en Internet un medio más para ofrecer sus producciones y utilizarlas como un canal más de difusión de su obra.

Estas son algunas etapas que se sugieren para diseñar eficientemente un sitio.

Delimitación del tema

Esta es la etapa crucial, se define de qué se va a tratar el Web, que cosas se incluirán y qué no. También es el momento para definir tanto las audiencias (normalmente es más de una) y los objetivos (intentando priorizar entre objetivos primarios y secundarios).

Obsérvese lo siguiente: la mayoría de los sitios que son premiados con distinciones como “Lo mejor de…”, “La mejor página de la semana…”, “Top 5% del Web”, son sitios que se dedican a temas muy específicos. La gente no quiere un montón de sitios que tengan referencias a otros lugares, la gente lo que busca es el contenido.

Recolección de la información

En esta etapa se recolecta la información que se va a poner en el Web, de acuerdo a la especificación hecha en la etapa anterior.

Las organizaciones en general producen grandes cantidades de información, también en esta etapa hay que delimitar cuanta de la información histórica, que ya no es relevante, será incluida en el sitio web, por ejemplo, se puede definir que la información de más de 3 años de antigüedad no será incluida, etc.

Agregación y descripción

Una vez que tenemos la información que irá en el sitio, comenzamos una clasificación apropiada. Aquí hay que encontrar un adecuado balance entre la linealidad y la jerarquización.

Hay que aplicar una clasificación de tipo jerárquica a trozos de información que sean complementarios o que dependan uno de otro, como secciones y subsecciones. Usualmente los pondremos en diferentes páginas.

 Estructuración

En este punto se estructura la manera en que se unen las diferentes páginas, de acuerdo a la agregación de contenidos realizada en la etapa anterior.

Desde este punto en adelante se puede trabajar en la implementación HTML propiamente tal.

Diseño y estilo gráfico

Un estilo gráfico adecuado puede ser algo importantísimo a la hora de hacer que la persona que nos visita se sienta cómoda, y como una manera de alivianar el contenido y hacerlo más digerible. Un sitio por más contenido que tenga si no tiene un buen diseño gráfico difícilmente lograra un lugar destacado entre otros sitios del mismo tipo.

En cuanto a la cantidad y tamaño de las imágenes, hay que adoptar un equilibrio. Hay sitios que se basan casi por completo en grandes y lentas imágenes GIF, otros que se ven bastante pobres pues son casi sólo texto, con lo que se desaprovechan los métodos multimedia.

Otro punto importante en la etapa de definición de la parte gráfica, es intentar en lo posible mantener una cierta coherencia gráfica, y atreverse a innovar en cuanto a ella. Un color de fondo, un fondo o una distribución interesante de los elementos dentro de una página es algo que no se olvida con facilidad.

Ensamble final

En este punto concretamos el diseño, con los últimos enlaces que sean necesarios e incorporamos el estilo gráfico a las páginas, se ensambla el sitio con una portada que sea capaz de presentar en una sólo página física al menos lo más relevante del sitio.

Testeo

Finalmente, es necesario revisar la coherencia general del sitio, que no hayan links “rotos” que no conduzcan a ninguna parte; revisar la redacción y ortografía de las páginas, hacer los ajustes necesarios para separar las páginas que sean demasiado extensas en páginas más pequeñas.

Estos son las etapas que a nuestro criterio se deben seguir para poder crear los sitios web de manera más optima y ordenada. ¿Que opinas?