SDK Multiplataforma en C logo

SDK Multiplataforma en C

Inicio rápido

Siguiente ❯

"...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.

Captura de una aplicación en Windows, macOS y Linux escrita en C con NAppGUI.
Figura 1: NAppGUI permite portar de manera sencilla aplicaciones escritas en 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.
  • Iconos de Visual Studio, CMake y Git.
    Figura 2: Visual Studio, CMake y Git, como herramientas básicas en Windows.
    El instalador de CMake mostrando la selección del PATH en Windows.
    Figura 3: Instalación de CMake en Windows, permitiendo utilizar la línea de comandos.

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:

C:\>
 
git clone --depth 1 https://github.com/frang75/nappgui.git nappgui_sdk

Crea un directorio de trabajo y sitúate en él.

C:\>
 
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.

C:\nappgui_build>
 
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.

C:\nappgui_build>
 
msbuild NAppGUI.sln

Una vez compiladas, ya podrás ejecutar las aplicaciones de ejemplo existentes en los directorios demo y howto (Figura 4).

C:\nappgui_build>
 
.\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
...
Ejecución de una aplicación de ejemplo en Windows.
Figura 4: Ejecución del programa de ejemplo Products tras la compilación.

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).

El bundle de CMake a punto de ser instalado en macOS.
Figura 5: Herramientas Xcode y CMake en macOS.
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.

~/nappgui_build
 
cmake -G "Xcode" ../nappgui_sdk/src

Ejecuta xcodebuild desde el mismo directorio de trabajo.

~/nappgui_build
 
xcodebuild

Una vez compiladas, ya podrás ejecutar las aplicaciones de ejemplo existentes en los directorios demo y howto (Figura 6).

~/nappgui_build
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
...
Ejecución de una aplicación de ejemplo en macOS.
Figura 6: Ejecución del programa de ejemplo Bricks tras la compilación.

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.

~/nappgui_build$
 
cmake -G "Unix Makefiles" ../nappgui_sdk/src

Ejecuta make desde el mismo directorio de trabajo.

~/nappgui_build$
 
make

Una vez compiladas, ya podrás lanzar las aplicaciones de ejemplo existentes en los directorios demo y howto (Figura 7).

~/nappgui_build$
 
./demo/die/Debug/Die
./demo/bricks/Debug/Bricks
./demo/products/Debug/Products
./howto/col2dhello/Debug/Col2dHello
./howto/guihello/Debug/GuiHello
...
Ejecución de una aplicación de ejemplo en Linux.
Figura 7: Ejecución del programa de ejemplo Col2dHello tras la compilación.

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.
Siguiente ❯