miércoles, 28 de diciembre de 2011

SITIO EN PRUEBAS

SITIO EN PRUEBAS, DISCULPEN LAS MOLESTIAS.
Ir a PAFH99.BLOGSPOT.COM para el sitio original.
Gracias.
EN CONSTRUCCIÓN - - - - ESTA WEB ESTÁ EN CONSTRUCCIÓN - - -

martes, 27 de diciembre de 2011

2.- Iniciación a Android - Conceptos antes del "Hola Mundo"

Unos conceptos antes del "Hola Mundo"

Ahora que tenemos preparado nuestro entorno para comenzar a programar en Java y en Android, y antes de realizar nuestro primer programa, voy a dar unas pequeñas nociones sobre algunos terminos con los que nos estaremos encontrando constantemente y que si no los tenemos claros nos van a dar unos quebraderos de cabeza, como pueden ser las clases, herencias, métodos, etc.

Conceptos fundamentales de la programación orientada a objetos (OOP o POO)

Programación procedimental o estructurada.
Los algoritmos se implementan como funciones o procedimientos y tienen unas determinadas reglas de ámbitos de acceso para las llamadas entre módulos. En la programación estructurada, normalmente se tiende a organizar las funciones como un árbol, en el que hay un nodo raíz del que dependen las funciones y procedimientos de los que se compone el programa. Normalmente, las partes que están más cerca del nodo raíz son más abstractas (generales) y cuanto más nos alejamos del nodo principal, estas partes se van especializando hasta llegar al nivel máximo de detalle, el cual se halla en las capas inferiores.
En este tipo de programación la representación de los datos se determina por los algoritmos empleados y reflejan su estructura interna. Los datos son pasivos, son zonas de memoria con valores que pueden estar organizados en forma de estructuras de datos.
Estas metodologías de programación se suelen llamar programación estructurada, que aunque en su momento fué una gran mejora con respecto a la calidad del código con respecto a metodologías anteriores, seguía teniendo algunos problemas, como pueden ser la mantenibilidad del código y la dificultad de crear componentes de software, esto es módulos con entradas y salidas bien definidas y con propósitos diversos.
Las unidades básicas de un programa estructurado son las funciones o procedimientos, y los datos son zonas de memoria que serán modificadas por los algoritmos. Sólo con las reglas de ámbitos de acceso que hay en estos lenguajes no se puede unir de forma lógica y coherente los datos y el código que los utilizará.

La programación orientada a objetos (POO o OOP)

Las personas, cuando miramos a nuestro alrededor, vemos objetos, los cuales tienen un estado y un conjunto de acciones que se pueden ejercer en él, y la programación orientada a objetos intenta reflejar ésta característica. Ya no hay funciones y estructuras separadas, las entidades mantienen juntos los datos y el código que los utiliza. Estas entidades se denominan OBJETOS.
Un objeto está compuesto por variables, que contienen el estado actual del mismo y por métodos, que son funciones que permiten alterar los estados de las variables. La única forma de acceder a las variables privadas del objeto es a través de los métodos que tiene asociados. Esta forma de unir el código y los datos se llama encapsulación. Con la encapsulación podemos modificar la forma en que un objeto implementa sus métodos sin afectar a los demás objetos, con lo cual hemos conseguido la modularidad, y podemos acceder a los servicios del objeto sin saber los detalles de su implementación (abstracción de datos).

Clases: Las clases son modelos que se utilizan para crear objetos de ese tipo. A un modelo de una determinada clase se le llama instancia de esa clase. El modelo describe el estado y el comportamiento que comparten todos los objetos de esa clase. Las clases normalmente contienen variables y métodos. Los métodos son fragmentos de código reutilizables. Las variables se llaman también atributos o variables miembro o variables de instancia.
Las clases son contenedores de datos y de las operaciones que los manipulan. Normalmente se denominan con nombres abstractos (generales), como Persona, Animal, etc,. Se puede definir una clase a partir de otra, con lo que la nueva hereda parte de su funcionalidad, y además se le pueden añadir nuevos métodos.

Variables miembro: Son características de los objetos y contienen los datos relacionados con estos. Normalmente son privadas, para ocultar los datos, y el acceso a las mismas se realiza a través de los métodos o propiedades. También pueden ser públicas y no estar ocultas, e incluso permitir que se realizen cambios sin ser a través de los métodos, pero no es recomendable ya que puede producir estados indeterminados.

Métodos: Son a las clases lo que las funciones a la programación estructurada. Pueden acceder a las variables de la clase de forma implícita.

Propiedades: Son un tipo especial de métodos utilizados para controlar el acceso a las variables privadas.

<<<< ARTÍCULO SIN TERMINAR... CONTINUARÁ...>>>


Que gran verdad... Shakespeare... jejeje

Esta cita la acabo de ver y vamos entre que me hizo gracia y que es una gran verdad pues lo comparto:

"Todos hemos oído decir que si un millón de monos aporrearan un millón de máquinas de escribir con el tiempo llegarían a reproducir las obras completas de Shakespeare. Ahora, gracias a los blogs, sabemos que eso no es cierto." .

PD:  Y también a las redes sociales.

Quitar "Suscribirse a: Entradas (Atom)"

Si queremos quitar el mensaje que aparece al final de cada entrada y que pone "Suscribirse a: Entradas (Atom), debemos hacer lo siguiente:
  1. Vamos a "Diseño"
  2. Pulsamos en "Edición de HTML"
  3. Buscamos en nuestra plantilla donde aparezca lo siguiente (o parte):
.feed-links {
clear: both;
line-height: 2.5em;
}

Y lo cambiamos por lo siguiente:

.feed-links {
clear: both;
line-height: 2.5em;
visibility:hidden;
display:none;
}
 

Quitar barra de blogger (navbar)

Para todos aquellos que querais modificar la apariencia de vuestro blog en blogger, y personalizarlo un poco, aqui teneis una ayuda, para mostrar o para ocultar la barra de blogger, la llamada navbar.
  1. Vamos a "DISEÑO"
  2. Pulsamos en "Edición de HTML"
  3. Buscamos en el código dónde aparezca: <head>
  4. Despues de esta etiqueta, añadimos el siguiente código para quitar la barra:
<style type='text/css'>
#navbar-iframe{
height: 0px;
visibility: hidden;
display: none;
}
</style>


Si lo que queremos es ocultarla, entonces hacemos lo siguiente:
  1. Vamos a "DISEÑO"
  2. Pulsamos en "Edición de HTML"
  3. Buscamos en el código dónde aparezca: <body>
  4. Antes de esta etiqueta añadimos el siguiente código:
#navbar-iframe {
opacity:0.0;
filter:alpha(Opacity=0)
}
#navbar-iframe:hover {
opacity:1.0;
filter:alpha(Opacity=100,FinishedOpacity=100)
}


Y si lo que queremos es que esté oculta pero que se muestre al pasar el ratón por encima, hacemos lo siguiente:
  1. Vamos a "DISEÑO"
  2. Pulsamos en "Edición de HTML"
  3. Buscamos en el código dónde aparezca: </head>
  4. Antes de esta etiqueta añadimos el siguiente código:

<script src='http://www.google.com/jsapi'/><script>
google.load(&quot;prototype&quot;, &quot;1.6.0.2&quot;);
google.load(&quot;scriptaculous&quot;, &quot;1.8.1&quot;);
</script>

<script type="text/javascript">
function navbarShow() {
new Effect.Opacity('navbar-iframe', {duration:0.5, from:0.0, to:1.0});
}
function navbarHide() {
new Effect.Opacity('navbar-iframe', {duration:0.5, from:1.0, to:0.0});
}
function navbarHack() {
Event.observe('navbar-iframe', 'mouseover', navbarShow, false);
Event.observe('navbar-iframe', 'mouseout', navbarHide, false);
navbarHide();
}
Event.observe(window, 'load', navbarHack, false);
</script>


Nota: si ya hemos instalado previamente alguna vez un código con script.aculo.us sólo deberemos copiar esta parte del código anterior:

<script type="text/javascript">
function navbarShow() {
new Effect.Opacity('navbar-iframe', {duration:0.5, from:0.0, to:1.0});
}
function navbarHide() {
new Effect.Opacity('navbar-iframe', {duration:0.5, from:1.0, to:0.0});
}
function navbarHack() {
Event.observe('navbar-iframe', 'mouseover', navbarShow, false);
Event.observe('navbar-iframe', 'mouseout', navbarHide, false);
navbarHide();
}
Event.observe(window, 'load', navbarHack, false);
</script>

1.1.- Iniciación a Android: Otros IDEs, o no.


Hasta ahora he hablado sobre el entorno de desarrollo Eclipse, pero hay otras opciones para desarrollar en Android, aunque algunas también están basadas en Eclipse ;).
Una de estas opciones es usar el "MOTODEV STUDIO" de Motorola. Este es un IDE basado en Eclipse, con las ventajas de que con una sola instalación tendremos el IDE, las utilidades JAVA y los plugins de Android, con lo que simplifica las cosas. Además tiene varios añadidos, como soporte para "snippets" (pequeños fragmentos de código), algunos videotutoriales, captura de pantalla, diagnosis de problemas, traducción de la aplicación, soporta la emulación de móviles motorola específicos, etc. Además, si ya tenemos el Eclipse instalado, podemos instalar el MOTODEV como si fuera un plugin. Para bajarlo debemos ir a developer.motorola.com, y debemos hacer una cuenta gratuita para que nos permita bajar el software.

Otra opción sería el kit DS-5, con el que es posible programar en C y C++ para Android. Este kit ha sido desarrollado por ARM, y tiene la ventaja de que las aplicaciones se pueden ejecutar hasta 4 veces más rápido y aprovechan mejor la potencia de los telefonos Android, es gratuito para su uso por personal o por pequeñas empresas (menos de $100.000 anuales.), se integra con Eclipse, Android NDK y SDK, tiene un depurador gráfico nativo. Aunque esta opción sería mejor utilizarla para aplicaciones que necesiten elevados niveles de proceso, y sería una alternativa o complemento al Android NDK (Native Development Kit), que también se programa en C++. Como contras solo funciona en las versiones de Eclipse de 32 bits. Se puede instalar desde el IDE de Eclipse, si vamos a HELP->Install New Software en el diálogo que aparece pulsamos en "ADD", y donde pone "Location" escribimos "http://tools.arm.com/eclipse" y pulsamos OK. En las opciones que nos salen elegimos ARM DS-5 Community Edition, y le damos a siguiente ("NEXT"), seguimos las indicaciones, y al terminar reiniciamos ECLIPSE.