viernes, 31 de marzo de 2017

Estructura de carpetas de un proyecto Android.

carpeta src: esta carpeta contendrá todo el código fuente de la aplicación, código de la interfaz grafica, clases auxiliares etc.

carpeta gen: contiene una serie de elementos de código generados automáticamente al compilar el proyecto. cada vez que generamos nuestro proyecto , la maquinaria de compilación de Android genera por nosotros una serie de ficheros fuente Java dirigidos al control de los recursos de la aplicación. Importante: dado que estos ficheros se generan automáticamente tras cada compilación del proyecto es importante que no se modifiquen manualmente bajo ninguna circunstancia.

carpeta assets: Contiene todos los demás ficheros auxiliares necesarios para la aplicación (y que se incluirán en su propio paquete), como por ejemplo ficheros de configuración, de datos, etc.
La diferencia entre los recursos incluidos en la carpeta /res/raw/ y los incluidos en la carpeta /assets/ es que para los primeros se generará un ID en la clase R y se deberá acceder a ellos con los diferentes métodos de acceso a recursos. Para los segundos sin embargo no se generarán ID y se podrá acceder a ellos por su ruta como a cualquier otro fichero del sistema. Usaremos uno u otro según las necesidades de nuestra aplicación.

carpeta bin: Ésta es otra de ésas carpetas que en principio no tendremos por qué tocar. Contiene los elementos compilados de la aplicación y otros ficheros auxiliares. Cabe destacar el fichero con extensión “.apk”, que es el ejecutable de la aplicación que se instalará en el dispositivo.

carpeta libs: Contendrá las librerías auxiliares, normalmente en formato “.jar” que utilicemos en nuestra aplicación Android.

carpeta res: Contiene todos los ficheros de recursos necesarios para el proyecto: imágenes, vídeos, cadenas de texto, etc. Los diferentes tipos de recursos se distribuyen entre las siguientes subcarpetas:

/res/drawable/: Contiene las imágenes [y otros elementos gráficos] usados en por la aplicación. Para definir diferentes recursos dependiendo de la resolución y densidad de la pantalla del dispositivo se suele dividir en varias subcarpetas:
  • /drawable-ldpi (densidad baja)
  • /drawable-mdpi (densidad media)
  • /drawable-hdpi (densidad alta)
  • /drawable-xhdpi (densidad muy alta)
/res/layout/: Contiene los ficheros de definición XML de las diferentes pantallas de la interfaz gráfica. Para definir distintos layouts dependiendo de la orientación del dispositivo se puede dividir en dos subcarpetas:

  • /layout (vertical)
  • /layout-land  (horizontal)
/res/menu/: Contiene la definición XML de los menús de la aplicación.

/res/values/: Contiene otros ficheros XML de recursos de la aplicación, como por ejemplo cadenas de texto (strings.xml), estilos (styles.xml), colores (colors.xml), arrays de valores (arrays.xml), etc.


viernes, 24 de marzo de 2017

Como crear tu primera aplicacion Android

Si quieres convertirte en un desarrollador de Android necesitas tener instalado Android Studio. Si ya tienes instalado Android Studio, es normal que te preguntes cómo crear mi primera aplicación en Android Studio. Pues bien, tras arrancar el programa nos aparecerá la opción de “Start a new Android Studio project”, que como bien sabemos significa arrancar con un nuevo proyecto en Android Studio. En el caso de que nos lleve directamente al programa, bastará con ir a File > New project.

Welcome to Android Studio

Crear mi primera aplicación en Android Studio

1. Nombre del proyecto

Como siempre, lo primero que haremos será indicar el nombre de nuestra aplicación. Indicaremos además nuestra compañía (nombre de la empresa o nuestro nombre si somos uno) y la localización del proyecto.

2. API de la aplicación


 Aquí seleccionaremos la API que vamos a emplear, dependiendo de la API que usemos tendremos disponibles unas u otras funcionalidades. En este caso, el mínimo de SDK seleccionado es la API 22 con Android 5.1.1, la última versión desarrollada en Android hasta el momento. Se aconseja elegir siempre una un poco anterior por si acaso, por ejemplo la 5.1.

3. Añadir activity

En esta ventana elegiremos el primer layout de nuestra aplicación, o lo que es lo mismo, la apariencia que tendrá nada más ejecutarla en el terminal. Elegiremos la primera, que es la estándar para crear un layout en blanco fácilmente editable.

4. MainActivity


 Una vez llegamos a este punto, toca elegir el nombre de la actividad principal y del layout principal. De forma predeterminada, se asignan los nombres anteriores, ya que se corresponden con el main de la aplicación por ser lo primero en crearse de cada caso.
Si pulsamos en finalizar, nuestro proyecto ya estará creado. Por defecto, nos aparecerá el siguiente layout:

Primer layout (.xml)

Por defecto en Android Studio se nos creará este primer layout en blanco que hemos elegido, con un hola mundo de manera predefinida. A partir de ahora, ya podemos comenzar a darle estilo a nuestra aplicación.

Main en java

El primer código en Java de la aplicación es este MainActivity, que definirá el comportamiento de nuestra aplicación. Los métodos que se crean por defecto son los siguientes:
  • onCreate: en este método cargamos el layout anterior, además de otras funciones que veremos en un futuro
  • onCreateOptionsMenu: cargamos el menú de nuestra aplicación, el action bar
  • onOptionsItemSelected: definimos el comportamiento de los botones del menú en el action bar

Menú por defecto


 Por defecto en nuestra aplicación se incluye un menú, que es el menú típico en Android con los 3 puntos como vemos en la imagen anterior. Tendremos la posibilidad de elegir si añadir más opciones o dejarlo como está. Como ya os conté en el punto anterior, en el método onOptionsItemSelected() se definirá el comportamiento de estos botones.

Icono de la aplicación


 Nuestra aplicación por defecto también vendrá con un ic_launcher.png, que es el icono de nuestra aplicación. Por defecto tendremos un androide verde, pero sino siempre podremos cambiarlo, ya que se encuentra en la carpeta de drawable o mipmap (depende de la API). Es importante que sea un archivo .png y con un nombre sin caracteres extraños o mayúsculas, sino nos saltará un error.

Run ‘app’

Tras crear la aplicación, ya podemos probarla en nuestro terminal Android u optar por un emulador del propio Android Studio. Para ejecutar la aplicación, tendremos que hacer clic en “Run”, el icono verde de Play:

Si todo ha ido bien compilará sin errores y se abrirá en nuestro terminal (que debemos conectar por USB para que reconozca), además de activar la depuración USB y permitir el reconocimiento de huella digital para que ambos dispositivos se vinculen. Si esto ocurre, nos aparecerá en la siguiente lista para elegir, sino podemos optar por el emulador (clic en Launch emulator y crear un nuevo device)

Elegir dispositivo

App en el móvil

Si todo ha ido bien, así se verá esta aplicación (predeterminada) en nuestro móvil:

Y esto ha sido todo para crear este primer proyecto en Android Studio. Cómo veis, no hemos tenido que tocar código o layout, simplemente basta con seguir los pasos para crear nuestro primer proyecto y ejecutarlo, para ver el resultado. Ahora ya podemos comenzar a añadirle comportamiento a nuestro primer proyecto.

miércoles, 22 de marzo de 2017

Pasos para configurar la PC para desarrollar AM para Android



El primer paso para configurar nuestra computadora es descargar e instalar JDK. Lo descargamos en http://www.oracle.com en descargas de Java y luego lo instalamos en nuestra pc.

El segundo paso es descargar e instalar SDK, que este será de http://www.android.com y pulsamos el botón "Get SDK" y lo descargamos para windows y de igual manera lo instalamos.
El tercer paso es configurarlo, se ejecuta el administrador del SDK y bajamos algunas versiones de Android.
En el paso número cuatro descargamos eclipse en http://www.eclipse.org y nos vamos a "descargas". Cuando descarguemos el archivo comprimido abrimos eclipse y elegimos el workspace que deseamos usar.
El paso cinco es instalar el plug in, el cuál nos va a permitir integrar el SDK con otras herramientas de desarrollo para Android con eclipse. Dentro de eclipse en "help" ponemos "instalar nuevo software" y le ponemos un nombre y una dirección e instalamos.
El paso seis es configurar las preferencias de eclipse en "preferences" e ingresamos la ruta del SDK y pasamos al séptimo paso que es configurar la máquina virtual y con el controlador del SDK agregamos más versiones de Android cuando queramos y con el AVDM damos clic en "nuevo" y le ponemos un nombre a nuestro plug in y configuramos la máquina virtual y si está correcto podemos iniciarla. 

miércoles, 15 de marzo de 2017

Como descargar e instalar Eclipse paso por paso

Eclipse es un Ambiente de Desarrollo Integrado (conocido como Integrated Development Environment o IDE en inglés) el cual muy popular entre los programadores y desarrolladores de Java. Con el tiempo Eclipse se ha convertido en la principal herramienta usada por muchos desarrolladores a la hora de escribir código en Java incluso sobre NetBeans que es el IDE que viene con Java la versión oficial de Java. Sin embargo la página para descargar Eclipse y las instrucciones para instalarlo están en inglés. Es por ello que en este artículo te mostraremos cómo descargar e instalar Eclipse IDE en español.

El primer paso es visitar la página de Eclipse en http://www.eclipse.org. Así que ve a tu navegador y visita esta página la cual debe verse como muestra la Imagen #1.


Una vez estés en la página de Eclipse, fíjate en la parte derecha de la ventana. Allí verás un botón color naranja, el cual dice “Download”. Este es el botón a presionar para poder descargar Eclipse. Así que dale clic al botón “Download” como muestra la Imagen #2.


Al darle clic al botón “Download”, pasarás a la página de selección del sistema operativo y la versión. Aquí verás un texto que dice “Eclipse … Release for” y al lado un menú desplegable. El menú desplegable es para que escojas tu sistema operativo. Seas usuario de WindowsLinux o Mac la buena noticia es que Eclipse está disponible para todos esos sistemas operativos. Selecciona tu sistema operativo del menú desplegable como muestra la Imagen #3.



Luego notarás más abajo, que se te muestra el sistema operativo seleccionado así como las arquitecturas de las versiones de Eclipse, es decir 32 bit y 64 bit. Selecciona la que corresponda según tu computadora. En las PCs modernas comúnmente debes seleccionar 64-bits. Si tu PC es un poco antigua es posible que solo tenga soporte para 32-bits. Haz la selección que corresponda como muestra la Imagen #4.


Ahora pasarás a la página de la descarga en sí. Aquí verás a mano izquierda un botón que dice “Download”. Haz clic en el mismo como muestra la Imagen #5.



Al darle clic al botón “Download” comenzará la descarga. El archivo pesa algunos 40MB así que dale tiempo a que termine. Una vez el archivo de Eclipse esté descargado, dale clic al mismo como muestra la Imagen #6.



Al darle clic al archivo descargado de Eclipse, se activará el eclipseinstaller o instalador de Eclipse. Antes, instalar Eclipse era algo complicado. Pero ahora este instalador te guiará en el proceso para instalar el IDE de una forma fácil y amena. Puedes ver el instalador en la Imagen #7.


La siguiente pantalla del instalador de Eclipse te mostrará todas las versiones disponibles de esta herramienta. En este artículo estamos bajo la presunción de que eres un desarrollador de Java. Por lo tanto debes seleccionar la primera opción, la que dice “Eclipse IDE for Java Developers” la cual se muestra en la Imagen #8.



Cuando le des clic a la opción “Eclipse IDE for Java Developers“, pasarás a la ventana de preferencias. El primer campo que verás allí es el que dice “Installation folder” seguido de una caja de texto y un botoncito con un icono de carpeta. En este campo indicarás la carpeta donde deseas instalar Eclipse. Por lo general debes instalarlo en la carpeta por defecto salvo que desees instalarlo en otra. Para cambiar la carpeta haz clic en el botón que ves a mano derecha y selecciona la carpeta correspondiente. Puedes ver este campo en la Imagen #9.


El otro campo es una casilla que dice “create start menu entry“. Esta casilla lo que hace es anclar Eclipse al menú Inicio. Si así lo deseas deja la casilla marcada, de lo contrario desmárcala. Puedes ver esta casilla en la Imagen #10.


La otra casilla es la que dice “create desktop shortcut“. Esta casilla lo que haces es crear un acceso directo en el Escritorio. Si así lo deseas, deja la casilla marcada. De lo contrario desmarca la casilla “create desktop shortcut“. Esta casilla se muestra en la Imagen #11.



Una vez configures todas las opciones, dale clic al botón “Install” como muestra la imagen #12.


Ahora pasarás a la ventana de la licencia. Entonces desplázate hasta la parte inferior derecha de dicha ventana y allí verás un botón que dice “Accept Now“. Dale clic a dicho botón para aceptar la licencia y proseguir con la instalación, como puedes observar en la Imagen #13.



A continuación Eclipse procederá a instalarse en tu sistema. La instalación demora unos minutos así que sé paciente. Verás una barra de progreso verde, como muestra la Imagen #14.



Una vez termine, la barra de progreso verde se transformará en un botón verde con el texto “Launch” Dale clic al botón “Launch” para lanzar Eclipse, tal y como muestra la Imagen #15.


Al darle clic al botón “Launch“, Eclipse iniciará y verás una ventana como la mostrada en la Imagen #16.


A partir de este momento ya podrás usar Eclipse. Esperamos que este artículo sobre cómo descargar e instalar Eclipse IDE te haya sido útil.



jueves, 9 de marzo de 2017

Caracteristicas del S.O Android

Características del S.O Android.


Android es un sistema operativo que desde 2005 es propiedad de Google. Está basado en Linux y está desarrollado principalmente para dispositivos que tienen pantalla táctil como los smartphones o tablets.
El S.O Android es multitarea, es decir desarrolla varias cosas al mismo tiempo. La opción multitarea permite a los desarrolladores ejecutar sus aplicaciones Java.
Otra característica es que es multitactil, que es la capacidad de percibir mediante pequeños toques en la pantalla e interpretarlos como clics.

Android también nos brinda soporte para bases de datos con SQLite.


jueves, 2 de marzo de 2017

Arquitectura del S.O Android

Arquitectura del S.O Android.
Android es un sistema operativo creado para ser independiente de cualquier tipo de arquitectura de hardware en los dispositivos móviles. Esta característica hace que sea tan atractivo ante los fabricantes y desarrolladores.
Adicionalmente su portabilidad, flexibilidad y seguridad les da ese toque de simpatía a las personas interesadas en los sistemas de código abierto.
La arquitectura de Android debe ser estudiada antes de comenzar a programar.

Modelo de capas en la arquitectura de Android.
Android está construido con una arquitectura de 4 capas o niveles relacionados entre sí. A continuación veremos un diagrama ilustrativo extraído del libro Learning Android escrito por Marko Gargenta y Masumi Nakamura:

El diagrama indica que la estructura de Android se encuentra construida sobre el Kernel de Linux. Luego hay una capa de Librerías relacionadas con una estructura administradora en Tiempo de ejecución. En el siguiente nivel encontramos un Framework de apoyo para construcción de aplicaciones y posteriormente vemos a la capa de Aplicaciones.

Kernel de Linux.
Android está construido sobre el núcleo de Linux, pero se ha modificado dramáticamente para adaptarse a dispositivos móviles. Esta elección está basada en la excelente potabilidad, flexibilidad y seguridad que Linux presenta. Recuerda que el Kernel de Linux está bajo la licencia GPL, así que en consecuencia Android también.

Capa de librerías o capa nativa.
En esta capa se encuentran partes como la HAL, librerías nativas, demonios, las herramientas de consola y manejadores en tiempo de ejecución. Veamos un poco el propósito de estos conceptos:
  • Hardware Abstraction Layer (HAL): Este componente es aquel que permite la independencia del hardware. Quiere decir que Android está construido para ejecutarse en cualquier dispositivo móvil sin importar su arquitectura física. El HAL actúa como una arquitectura genérica que representa a todos los posibles tipos de hardware existentes en el mercado. Aunque por el momento no hay estándares de construcción en el hardware de dispositivos móviles, el HAL permite que cada fabricante ajuste sus preferencias para que Android sea funcional sobre su tecnología.
  • Librerías nativas: Aquí encontramos interfaces de código abierto como OpenGL para el renderizado de gráficos 3D, SQLite para la gestión de bases de datos, WebKit para el renderizado de los browsers, etc. También librerías para soportar los servicios del sistema como  Wifi, posicionamiento, telefonía, y muchos más.
  • Demonios (Daemons): Los demonios son códigos que se ejecutan para ayudar a un servicio del sistema. Por ejemplo cuando se requiere instalar o actualizar una aplicación, el demonio de instalación “installd” es ejecutado para administrar todo el proceso. O cuando los desarrolladores vamos a ejecutar en modo de depuración nuestro teléfono desde un PC, se ejecuta un demonio llamado adbd(Android Debug Bridge Daemon) para auxiliar a dicho proceso.
  • Consola: Al igual que otros sistemas operativos, Android permite que empleemos comandos de línea para la ejecución de procesos del sistema o explorar el sistema operativo.
  • Manejadores en tiempo de ejecución: Si bien las aplicaciones Android están escritas en lenguaje Java y son traducidas a bytecodes, estas no son interpretadas por la Máquina virtual de Java.  Android tiene su propia máquina virtual interpretadora de bytecodes llamada Dalvik. Esta herramienta fue diseñada para ser flexible ante el diseño de hardware de un dispositivo móvil. Además JVM no es de licencia GPL, así que Google decidió generar su propia herramienta.

¿Cómo funciona Dalvik?
Dalvik no cambia nada en el proceso de compilación, sencillamente interviene al final como receptor de un archivo ejecutable producto de una recopilación de los archivos .class de java.
Recuerda las fases de la construcción de una aplicación Java. El primer paso es generar el código fuente (arhivos .java), luego este es traducido por el Java Compiler (javac) y obtenemos un fichero tipo byte code (archivos .class). Finalmente la máquina virtual de Java (JVM) interpreta en tiempo real este archivo y la aplicación es ejecutada.
La ejecución de Dalvik es ingeniosa, simplemente espera que javac traduzca la aplicación a byte codes, cuando están listos los archivos, estos son compilados por el compilador Dex. Esta herramienta traduce los byte codes de java a un estilo de byte codes nativos que serán convertidos a un ejecutable .dex. Finalmente este archivo es ejecutado por una instancia de Dalvik VM.
A continuación se muestra un diagrama comparativo de ambos procesos:



Aunque el proceso añade unos cuantos pasos más, no debes preocuparte por ello, ya que esta tarea se le delega a la herramienta Gradle.
Google ha anunciado que Dalvik VM será reemplazada por una nueva máquina virtual llamada ART (Android Runtime) en su nueva versión Android L. Por el momento no nos preocuparemos por esta situación, pero es un dato muy importante a tener en cuenta.

Framework Para Aplicaciones.
Esta es la capa que nos interesa a los desarrolladores, ya que en ella encontramos todas las librerías Java que necesitamos para programar nuestras aplicaciones. Los paquetes con más preponderancia son los android.*, en ellos se alojan todas las características necesarias para construir una aplicación Android.
No obstante es posible acceder a clases como java.utils.*java.net.* , etc. Aunque hay librerías Java excluidas como la java.awt.* y java.swing.*.
En esta capa también encontraremos manejadores, servicios y proveedores de contenido que soportaran la comunicación de nuestra aplicación con el ecosistema de Android.

Capa De Aplicaciones.
Es la última instancia de funcionamiento de Android. Se centra en la ejecución, comunicación y estabilidad de las aplicaciones preinstaladas por el fabricante o las que nosotros vamos a construir. A ella acceden todos los usuarios Android debido a su alto nivel de compresión y simplicidad.

¿Qué tipo de archivo tienen las aplicaciones para Android?
El resultado del proceso de construcción es un archivo comprimido con formato .APK (Android Applicacion Package). Y dentro encontraremos los siguientes componentes:
  • Archivo Android Manifest: Este archivo es la definición de todas las características principales que tendrá nuestra aplicación al ejecutarse en un dispositivo móvil. Con características me refiero a los bloques que posee la aplicación, los permisos, su versión, las versiones previas soportadas, las dimensiones de la pantalla, etc.
  • Archivo classes.dex: Este será el fichero compilado preparado para ejecutarse en la Máquina Virtual Dalvik.
  • La carpeta Resources: Aquí encontramos todos los archivos externos que usamos para construir nuestro proyecto, como por ejemplo nuestros iconos, audio, archivos planos de texto, los archivos .xml de diseño, etc.
  • Librerías nativas: El archivo .APK también contiene aquellas librerías de las cuales depende la aplicación.
  • Carpeta META-INF: En ella se guardan archivos que corresponden a las Firmas Digitales de tu aplicación. Con esta especificación puedes indicar que tú eres el creador y dueño de la aplicación, además debes indicar tu ID de desarrollador para ser reconocido y autenticado en procesos de comercialización (Google es muy riguroso en este tema).

El sistema automatizado de construcción Gradle y Android Studio.



Gradle es una herramienta para automatizar el compilado, empaquetado, testeo y liberación de aplicaciones que se basen en la JVM. Como te dije antes, ha sido creado para expandir el uso de javac.
Cuando me refiero a “automatizar” significa que podemos programar nuestras propias condiciones de construcción. Esto es posible a través de Scripting mediante DSL (Domain-Specific-Language), un lenguaje claro y especializado, con énfasis en configurar y construir aplicaciones con Gradle.
DSL permite generar una compilación basada en tareas programadas y relacionadas entre sí, reduciendo la complejidad de dependencias y automatizando labores frecuentes. Su sencillez permite dar instrucciones de manera declarativa e intuitiva al programador.

¿Qué ventajas tiene utilizar Gradle?
  • Una de las mayores ventajas es que le entrega el poder del flujo de construcción al programador. Esto quiero decir que decidimos el orden de ejecución de tareas. Asimismo podríamos elegir que archivos compilar primero, cuando detener la compilación, establecer condiciones para que se recompile o no el código y muchas situaciones más.
  • Ejecuciones incrementales: El poder de esta característica le ahorra al programador gran cantidad de tiempo de espera. Al haber construcciones incrementales podemos decidir hasta qué punto queremos que se compile nuestra aplicación, es decir, si no es necesario compilar una parte del código debido a la ausencia de errores, entonces se procede a compilar la sección que aún no ha sido probada.
  • Múltiples versiones: Gradle permite que construyamos varias versiones de nuestra aplicación. Por ejemplo, si deseas construir tu aplicación para Jelly Beans y para Kitkat entonces solo debes especificar que el proyecto tendrá dos variantes de empaquetado, configurando la versión del SKDusada para cada versión.
  • La ejecución y las pruebas se pueden realizar en un mismo proyecto.
  • Ejecución en paralelo de tareas: Puedes ejecutar tareas en hilos diferentes para optimizar el proceso de construcción.


miércoles, 1 de marzo de 2017

Entorno de trabajo para aplicaciones moviles

Eclipse
Eclipse es un programa informático compuesto por un conjunto de herramientas de programación de código abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus.

XCode
Es el entorno de desarrollo integrado (IDE, en sus siglas en inglés) de Apple Inc. y se suministra gratuitamente junto con Mac OS X. Xcode trabaja conjuntamente con Interface Builder, una herencia de NeXT, una herramienta gráfica para la creación de interfaces de usuario.Xcode incluye la colección de compiladores del proyecto GNU (GCC), y puede compilar código C, C++, Objective-C, Objective-C++, Java y AppleScript mediante una amplia gama de modelos de programación, incluyendo, pero no limitado a Cocoa, Carbón y Java. Otras compañías han añadido soporte para GNU Pascal, Free Pascal, Ada y Perl.Entre las características más apreciadas de Xcode está la tecnología para distribuir el proceso de construcción a partir de código fuente entre varios ordenadores, utilizando Bonjour.

Carbide C++
Es una herramienta para el desarrollo de software en lenguaje C++ destinado a dispositivos que funcionan bajo Symbian OS. Se usa tanto para desarrollar los teléfonos que incorporan dicho OS como para las aplicaciones que ejecutan estos.Está formada por una familia de IDEs desarrollada por Nokia, basada en Eclipse, al que se han incorporado plug-ins para el desarrollo de Symbian OS. Reemplazó a CodeWarrior como primer entorno de desarrollo para Symbian OS.Desde la versión 2.0, Carbide.c++ es gratuito y se ofrece en tres versiones (Developer, Professional, y OEM).

NetBeans

Es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE2 es un producto libre y gratuito sin restricciones de uso.
NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo. Sun MicroSystems fundó el proyecto de código abierto NetBeans en junio de 2000 y continúa siendo el patrocinador principal de los proyectos.
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software.