Inicio rápido
"...el número de instalaciones UNIX ha aumentado a 10, y se esperan más..." Dennis Ritchie y Ken Thompson - Junio de 1972
NAppGUI es un SDK para desarrollar proyectos software en lenguaje C que funcionen en cualquier plataforma de escritorio (Windows, macOS o Linux) (Figura 1). Se puede utilizar C++ pero no es indispensable. Podemos desarrollar un programa completo utilizando únicamente ANSI-C.

1. Inicio rápido en Windows
Antes de empezar necesitas tener instaladas estas herramientas (Figura 2):
- Visual Studio para compilar bajo Windows. Microsoft ofrece la versión gratuita Community para desarrolladores independientes o pequeñas empresas. En este tutorial utilizaremos VS2019, pero podrás utilizar otra versión si ya tienes alguna instalada.
- CMake. Herramienta multiplataforma para crear los proyectos de compilación de forma automática, a partir del código fuente. Ten la precaución de seleccionar Add CMake to the system PATH for all users durante la instalación (Figura 3).
- Git. La conocida solución de gestión de versiones que utilizaremos para descargar el software y sincronizar nuestro código entre diferentes máquinas.


Abre el programa Developer Command Prompt for VS 2019 (o el equivalente si utilizas otro VS), al que podrás acceder desde Programs->Visual Studio 2019
. Sitúate en el directorio raíz C:\
. El primer paso será obtener una copia del SDK mediante GitHub:
|
git clone --depth 1 https://github.com/frang75/nappgui.git nappgui_sdk |
Crea un directorio de trabajo y sitúate en él.
|
mkdir nappgui_build cd nappgui_build |
Ejecuta CMake (desde el directorio de trabajo). Este comando generará automáticamente la solución NAppGUI.sln necesaria para compilar los ejemplos y tus futuros proyectos.
|
cmake -G "Visual Studio 16 2019" ../nappgui_sdk/src // Others -G values Visual Studio 15 2017 Visual Studio 14 2015 Visual Studio 12 2013 Visual Studio 11 2012 Visual Studio 10 2010 |
Ejecuta msbuild
desde el mismo directorio de trabajo.
|
msbuild NAppGUI.sln |
Una vez compiladas, ya podrás ejecutar las aplicaciones de ejemplo existentes en los directorios demo
y howto
(Figura 4).
|
.\demo\die\Debug\Die.exe .\demo\bricks\Debug\Bricks.exe .\demo\products\Debug\Products.exe .\howto\col2dhello\Debug\Col2dHello.exe .\howto\guihello\Debug\GuiHello.exe ... |

2. Inicio rápido en macOS
Antes de empezar, asegurate que tienes instalado y configurado Xcode, entorno imprescindible para el desarrollo bajo macOS. También necesitarás descargar e instalar CMake desde www.cmake.org (Figura 5).

For defecto, CMake no configura el acceso por línea de comandos en macOS. Puedes crear un enlace simbólico con sudo ln /Applications/CMake.app/Contents/bin /cmake /usr/local/bin.
Abre un terminal y chequea que las herramientas por línea de comandos funcionen:
|
xcodebuild cmake git |
Acto seguido, obtén el SDK mediante GitHub
|
git clone --depth 1 https://github.com/frang75/nappgui.git nappgui_sdk |
Crea un directorio de trabajo
|
mkdir nappgui_build cd nappgui_build |
Ejecuta CMake (desde el directorio de trabajo). Este comando generará automáticamente el proyecto NAppGUI.xcodeproj necesario para compilar los ejemplos y tus futuros proyectos.
|
cmake -G "Xcode" ../nappgui_sdk/src |
Ejecuta xcodebuild
desde el mismo directorio de trabajo.
|
xcodebuild |
Una vez compiladas, ya podrás ejecutar las aplicaciones de ejemplo existentes en los directorios demo
y howto
(Figura 6).
1 2 3 4 5 6 |
./demo/die/Debug/Die.app/Contents/MacOS/Die ./demo/bricks/Debug/Bricks.app/Contents/MacOS/Bricks ./demo/products/Debug/Products.app/Contents/MacOS/Products ./howto/col2dhello/Debug/Col2dHello.app/Contents/MacOS/Col2dHello ./howto/guihello/Debug/GuiHello.app/Contents/MacOS/GuiHello ... |

3. Inicio rápido en Linux
Antes de empezar, asegurate que tienes instalados los compiladores, herramientas y librerías necesarias:
|
// Development tools sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install git sudo apt-get install make sudo apt-get install cmake // Development libraries sudo apt-get install libgtk-3-dev sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev sudo apt-get install libcurl4-openssl-dev |
NAppGUI necesita, como mínimo gcc 4.6, gtk3 (para aplicaciones de escritorio), OpenGL (si tu aplicación utiliza gráficos 3D) y Curl (para protocolos Web). Todo esto se incluye a partir de Ubuntu 12.04 LTS o distribuciones similares.
Abre un terminal y obtén el SDK mediante GitHub
|
git clone --depth 1 https://github.com/frang75/nappgui.git nappgui_sdk |
Crea un directorio de trabajo
|
mkdir nappgui_build cd nappgui_build |
Ejecuta CMake (desde el directorio de trabajo). Este comando generará automáticamente los Makefiles
necesarios para compilar los ejemplos y tus futuros proyectos.
|
cmake -G "Unix Makefiles" ../nappgui_sdk/src |
Ejecuta make
desde el mismo directorio de trabajo.
|
make |
Una vez compiladas, ya podrás lanzar las aplicaciones de ejemplo existentes en los directorios demo
y howto
(Figura 7).
|
./demo/die/Debug/Die ./demo/bricks/Debug/Bricks ./demo/products/Debug/Products ./howto/col2dhello/Debug/Col2dHello ./howto/guihello/Debug/GuiHello ... |

4. Licencia MIT
NAppGUI se distribuye bajo licencia MIT lo que significa, en esencia, que tienes total libertad para utilizar este software de forma libre y gratuita, tanto en proyectos comerciales como libres. La única restricción es que debes incluir una copia de esta Licencia en cada parte sustancial del software que distribuyas.
5. Conocimientos previos
Este libro no está dirigido a principiantes. Si bien el proyecto NAppGUI está orientado a simplificar la construcción de aplicaciones multiplataforma, requiere ciertos conocimientos previos por parte del usuario. Necesitarás, al menos, desenvolverte con soltura en C ó C++ ya que en ningún momento nos detendremos a explicar conceptos básicos de programación. Si vienes de Java o C# te convendría dar un repaso a los punteros. También necesitarás cierta habilidad con los entornos de desarrollo Visual Studio, Xcode y herramientas Unix como gcc, make o el intérprete de comandos.
Por otro lado, si eres un usuario avanzado, encontrarás un sistema sencillo para crear aplicaciones en C muy rápidas y de tamaño reducido que compilarán sin cambios en todos los entornos de escritorio. También tendrás a tu disposición un conjunto librerías C precompiladas para crear interfaces de usuario o aplicaciones por línea de comandos, sin necesidad de ensuciar tus proyectos con las engorrosas plantillas de clases que proporcionan stl o boost.
6. ¿Y ahora que?
- En Bienvenidos a NAppGUI continuamos con el tutorial.
- En ¡Hola Mundo! vemos paso a paso el código mínimo de una aplicación de escritorio.
- En Nuevo proyecto empezarás a crear tus propias aplicaciones.
- En Portabilidad tendrás información más detallada sobre migración entre plataformas.
- En Visión general tienes la documentación completa de las librerías y funciones de NAppGUI.
- En Products tienes el código fuente de una aplicación de tamaño medio, totalmente explicado.