MENSAJE DE BIENVENIDA

MENSAJE DE BIENVENIDA
Hola! yo soy: Yesenia Guzmán Irenia te doy la más cordial bienvenida a mi blog, un medio por el cual expresare y daré a conocer información relacionada con la materia de desarrollo de aplicaciones móviles, y así tendré la oportunidad de conocer tus opiniones y puntos de vista de dichos temas. Gracias por tu visita, tu persona es siempre bienvenida.

miércoles, 29 de abril de 2015

EMPRESAS O FABRICANTES DE DISPOSITIVOS MÓVILES

Gigantes de la electrónica, añejas y nuevas corporaciones, empresas multinacionales y muchos emprendedores, se han aventurado con mediano o enorme éxito al desarrollo de teléfonos celulares inteligentes en el todo el mundo. En este artículo de investigación presentamos los principales fabricantes de smartphones, su historia, algunas características de sus dispositivos y los móviles mejor evaluados y más buscados de cada una de estas compañías, al inicio del segundo semestre de 2013.





Samsung - Samsung
Multinacional surcoreana líder en ventas desde el año de 2012. La mayoría de sus teléfonos celulares inteligentes funcionan con el sistema operativo Android, aunque ha probado Windows Phone 8 en dispositivos como el ATIV S. Introdujo el primer chipset de ocho núcleos (Exynos 5 Octa) como procesador de una versión del Samsung Galaxy S4, su principal dispositivo en el inicio del segundo semestre de 2013.  Otros smartphones destacados para ese período: Galaxy SIII, Galaxy SII, Galaxy Note II,Galaxy Note, Galaxy Mega 6.3.






LG - LG




Aquí tenemos otra corporación de Corea del Sur, la cual inició su tránsito en la telefonía celular en 1996. Escaló posiciones cimeras con el modelo LG Optimus G, número uno de nuestro escalafón anual de los mejores smartphones de 2012, con cuyo dispositivo marcó pauta al dotarlo de 2GB de memoria RAM. Ha trabajado en forma mancomunada con Google para fabricar el Nexus 4. Smartphones destacados segundo semestre 2013Optimus G Pro, Optimus GLucid,Lucid 2, Optimus F7, Nexus 4, serie Optimus Vu.





Apple - Apple


Multinacional estadounidense que después de desarrollar con éxito equipos electrónicos y sus respectivos programas, tomada de la mano de Steve Jobs creó el iPhone, cuyo dispositivo trabaja con laplataforma iOS propio de la empresa. Smartphones destacados segundo semestre 2013: iPhone 5, iPhone 4S, iPhone 4, iPhone 3G S, iPhone 3G.







Nokia - Nokia
Empresa finlandesa que ha hecho historia en el sector de telecomunicaciones, siendo la mayor fabricante y ex líder en ventas. Concretó el primer sistema de telefonía celular móvil (1982) y el primer teléfono transportable (1984). Estableció con otras compañías la plataforma operativa Symbian OS, hasta que logró alianza estratégica con Microsoft (febrero de 2011), para proveer a sus smartphones del sistema operativo Windows Phone. 





Motorola - Motorola

 Compañía estadounidense que tiene, entre otros méritos, el de haber desarrollado el primer teléfono celular del mundo: Motorola DynaTAC, con el cual el ingeniero electrónico Martin Copper realizó la primera llamada precisamente con un celular (3 de abril de 1973). En los últimos años han trabajado en mejorar el rendimiento de la batería de sus dispositivos. El 15 de agosto de 2011, Google anunció la compra de Motorola Mobility. Smartphones destacados segundo semestre 2013: Droid RAZR Maxx HD Droid Razr Maxx, Atrix HDDROID RAZR M, RAZR i XT890, RAZR D1 TV.



HTC - HTC
Se trata de una corporación taiwanesa (República de China) con ascendente crecimiento. Comenzó a fabricar teléfonos celulares desde 2006, con sistemas operativos Android y Windows Phone. Con su modelo HTTC One presentó nueva tecnología basada en el Ultrapixel para las cámaras fotográficas de sus móviles. Smartphones destacados segundo semestre 2013: One, Droid DNA, One X,Droid Incredible 4G LTE, Windows Phone 8X, Butterfly S.
ZTE - ZTE
Compañía de telecomunicaciones con sede en Shenzhen, China, que figura en el cuarto lugar en cuanto a fabricación de teléfonos celulares en el mundo, desde 2010. En el primer trimestre de 2013, ZTE logró vender 7.883.300 unidades, para incremento del 74% comparado con el mismo trimestre de 2012. Smartphones destacados segundo semestre 2013: Grand S, Grand Memo, Grand X2 In, Anthem 4G, Grand Era.
Huawei - Huawei



Por su gran población, el mercado chino y asiático en general son enormes, razón por la cual encontramos diversas empresas fabricantes de smartphones como Huawei Technologies Co. Ltd., que también se encarga del desarrollo de redes y software. Smartphones destacados segundo semestre 2013:Ascend D2, Ascend P6, Ascend Mate, Honor 2, Ascend G615.

FRAMEWORK PARA EL DESARROLLO DE APLICACIONES MÓVILES

     El presente y el futuro de la programación está cada vez mas encaminado a los dispositivos móviles, por lo tanto, los desarrolladores buscan la forma de facilitarse el trabajo utilizando unos frameworks u otros. Pero ¿qué es un framework? es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, con base a la cual otro proyecto de software puede ser más fácilmente organizado y desarrollado. En cristiano: Un estandar a la hora de crear y organizar el proyecto.

Vamos a ver nuestra docena de frameworks:

1. Look

     De origen español y se trata de un Proyecto Fin de Carrera de unos chavales de la Complutense de Madrid. Te permite desarrollar tus propias aplicaciones de realidad aumentada para Android. Con gráficos en dos dimensiones, tres dimensiones e interacciones táctiles, localización en interiores, persistencia de datos, acceso a servicios remotos…

2. MonoTouch

     MonoTouch permite a los desarrolladores a usar el framework. NET y lenguajes de programación más eficientes, tales como C #, para crear aplicaciones que se ejecutan en el iPhone y puede tomar ventaja de las API nativa para el iPhone.

3. Titanium

     Un framework libre y de código abierto para el desarrollo de aplicaciones, Titanium te permite crear aplicaciones nativas para dispositivos móviles, tabletas y aplicaciones de escritorio usando las tecnologías web existentes como JavaScript, HTML, CSS, Python, Ruby y PHP

4. Sencha Touch

     Sencha Touch le permite desarrollar aplicaciones web móviles que se ven y se sienten nativas en el iPhone, Android, BlackBerry y dispositivos táctiles (basado en HTML5)

5. Sproutcore Touch

     Sproutcore Touch es el framework para el desarrollo de aplicaciones web basadas en HTML 5 que incluye un completo soporte para eventos táctiles y aceleración de hardware en el iPad y iPhone.

6. PhoneGap

     PhoneGap es otro interesante framework para construir aplicaciones web para dispositivos móviles utilizando los estándares HTML 5, CSS 3 y JavaScript. El framework soporta geolocalización, vibración, acelerómetro, cámara, cambio de orientación, magnetómetro y otras interesantes características para iPhone, Android, Blackberry, Symbian y Palm.

7. Iwebkit

     iWebkit 5 es la nueva versión de este ultraligero framework para la creación de forma sencilla de aplicaciones táctiles para iPhone y iPod touch. La versión actual cuenta con nuevas características mejoradas y es muy fácil de entender para poder desarrollar en pocos minutos a sus aplicaciones web.

8. XUI

     XUI es otro framework javascript para construir simples aplicaciones web para dispositivos móviles. Tiene la desventaja de que no está muy documentada, pero vale la pena intentarlo si lo que vas a crear no es muy complejo.

9. Rhodes

     Rhodes es un gran framework open source para la creación de forma rápida de aplicaciones nativas para la mayoría de sistemas operativos de los smartphone actuales. Soporta GPS, geolocalización, captura de imágenes con la cámara y más cosas.

10. IUI

      iUI es un framework consistente en una librería javascript, CSS e imágenes para la creación de aplicaciones webs avanzadas para iPhone y dispositivos compatibles.

11. Query Mobile

     jQuery Mobile es el framework jQuery orientado a dispositivos móviles. El framework soporta iOS, Android, Windows Phone, BlackBerry, Symbian, Palm webOS y más dispositivos. El framework está aún en desarrollo y se espera que esté listo a finales del 2010. Si hacen tan buen trabajo como con jQuery, tiene todas las papeletas para convertirse en el mejor framework.

12. JQPad

     jQPad es un framework jQuery para el desarrollo de aplicaciones para iPad, que permitirá la creación de aplicaciones sencillas.


         Esto solo es una pequeña muestra dentro de la cantidad de frameworks disponibles hoy en día, los desarrolladores ultilizamos el que mejor se adapta a nuestras necesidades y si es open source mejor!







LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE APPs




Este lenguaje se basa en c y c++ y abarca un gran número de dispositivos móviles, fue diseñado para que cuando se corriera el programa no se tuviera que estar recompilando.












JavaScript:

Solo se usa para crear programas que se ejecuten en páginas web, no contiene clases, es un lenguaje de formato libre y menos potente que Java.












Python:
Es un lenguaje fácil de aprender funciona en Windows, Linux, IOS Y móviles de nokia, el código es libre lo cual lo hace más simple.












Objetive C:
Es utilizado por el S.O. IOS, los objetos se crean una memoria dinámica y se puede usar el lenguaje c++.








Ruby:
Es diseñado para la productividad y diversión del desarrollador, es multiplataforma y tiene una amplia librería. Es parecido a Python.

EMULADORES

   






 Un emulador es un software que permite ejecutar programas o videojuegos en una plataforma (sea una arquitectura de hardware o un sistema operativo) diferente de aquella para la cual fueron escritos originalmente. A diferencia de un simulador, que solo trata de reproducir el comportamiento del programa, un emulador trata de modelar de forma precisa el dispositivo de manera que este funcione como si estuviese siendo usado en el aparato original.
      Un uso popular de los emuladores es el de imitar la experiencia de los videojuegos de máquinas recreativas o videoconsolas encomputadoras personales, o el poder ser jugados en otras videoconsolas. La emulación de videojuegos de sistemas antiguos (abandonware) en las modernas computadoras personales y videoconsolas de hoy día resulta generalmente más cómoda y práctico que en los dispositivos originales. Sin embargo, puede ser requerido a los creadores de emuladores una licencia de software para escribir programas originales que dupliquen la funcionabilidad de la ROM y BIOS del hardware original, lo que comúnmente se conoce como high-level emulation o emulación de alto nivel.
     Típicamente, un emulador se divide en módulos que corresponden de forma precisa a los subsistemas del equipo emulado. Lo más común, es que un emulador este compuesto por los siguientes módulos:
    • Un emulador de la unidad central de procesamiento.
    • Un módulo para el subsistema de memoria.
    • Varios emuladores para los dispositivos de entrada y salida.
      Lo más común es que los buses no sean emulados, por razones de simplicidad y rendimiento, y para que los periféricos virtuales se comuniquen directamente con la UCP y los subsistemas de memoria.





PROGRAMACION ORIENTADA A OBJETOS




La programación orientada a objetos es un paradigma surgido en los años 70, que utiliza objetos como elementos fundamentales en la construcción de la solución. Un objeto es una abstracción de algún hecho o ente del mundo real, con atributos que representan sus características o propiedades, y métodos que emulan su comportamiento o actividad. 



Características de la POO:

Abstracción:

Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.

Encapsulamiento:

Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.


Modularidad:

Se denomina modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.


Polimorfismo:

Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.


Herencia:

Las clases no se encuentran aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple; siendo de alta complejidad técnica por lo cual suele recurrirse a la herencia virtual para evitar la duplicación de datos.


La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Entre los elementos principales de la POO, podremos encontrar a:

            Clase:

Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ella.

      Herencia:

(Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables públicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de POO.

Objeto:
Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa). Es una instancia a una clase.

Método:
Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.

Evento:
Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento la reacción que puede desencadenar un objeto; es decir, la acción que genera.

Atributos:
Características que tiene la clase.

Mensaje:
Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

Propiedad o atributo:
Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.

Estado interno:

Es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.