Algo que me parecía realmente engorroso cuando tenía que desarrollar aplicaciones, era tener que escribir código diferente para cada plataforma. A ver, estamos hablando de que Android tiene su propio sistema, iOS tiene otro, Windows ni se diga. Realmente estaba anhelando una solución caída del cielo y llegó: FireMonkey es un framework tan especial, que con un solo código, te deja desarrollar aplicaciones nativas para Windows, macOS, Linux, Android e iOS.
A mí me facilitó tanto la vida, que me he propuesto explicarte no solo qué es, sino su funcionamiento y usos en el desarrollo de aplicaciones.
¿Qué es FireMonkey?
FireMonkey nació como VGScene, un proyecto de la empresa rusa KSDev. En 2011, Embarcadero Technologies lo compró e integró en su entorno de desarrollo RAD Studio (que incluye Delphi y C++Builder), dándole el nombre de FireMonkey.
La idea detrás de este framework es facilitar el desarrollo de aplicaciones que funcionen en varias plataformas sin necesidad de escribir código diferente para cada una. Esto ahorra tiempo y recursos a los desarrolladores, ya que pueden usar una sola base de código para distintos sistemas operativos.
Además, está diseñado para aprovechar la aceleración por hardware de las tarjetas gráficas modernas, para que las interfaces queden visualmente más atractivas y dinámicas.
Características
- Multiplataforma: Crea aplicaciones para Windows, macOS, Linux, Android e iOS.
- Gráficos acelerados: Usa GPU y OpenGL para interfaces rápidas y fluidas.
- Controles nativos: En Windows e iOS, los componentes pueden adoptar el aspecto del sistema operativo.
- Desarrollo RAD: Permite diseñar visualmente las interfaces en Delphi y C++Builder.
- Soporte para Python: También puede integrarse con Python, ampliando su potencial.
Crea tu primera aplicación con FireMonkey
Aquí vinimos fue a practicar, así que voy a dejarte un ejemplo para que empieces a usar este framework ya mismo:
Ejemplo:
Tendrás que crear una ventana con un botón en FireMonkey (Delphi)
Mira que este código crea una ventana con un botón y muestra un mensaje cuando el usuario hace clic.
unit Unit1;
interface
uses
System.SysUtils, System.Classes, FMX.Types, FMX.Controls, FMX.Forms, FMX.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('¡Hola desde FireMonkey!');
end;
end.
Si quieres probarlo en tu PC, descarga Delphi Community Edition o Lazarus y copia este código.
¿Cómo funciona en el desarrollo de aplicaciones?
Te decía que con FireMonkey podrás desarrollar aplicaciones en diferentes áreas. De hecho, te dejo algunos ejemplos con código para que puedas experimentarlo tú mismo.
Aplicaciones móviles y de escritorio
FireMonkey te facilita la creación de apps móviles para Android e iOS, así como software de escritorio para Windows, Linux y macOS.
Ejemplo:
Te enseño cómo crear una aplicación de notas con FireMonkey.
Notarás que este código crea una aplicación básica de notas, en la que puedes escribir y guardar texto en un archivo.
unit Unit1;
interface
uses
System.SysUtils, System.Classes, FMX.Forms, FMX.StdCtrls, FMX.Memo, FMX.Controls;
type
TForm1 = class(TForm)
Memo1: TMemo;
ButtonSave: TButton;
procedure ButtonSaveClick(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.ButtonSaveClick(Sender: TObject);
begin
Memo1.Lines.SaveToFile('nota.txt');
ShowMessage('Nota guardada con éxito.');
end;
end.
Creación de interfaces visuales avanzadas
Lo bueno es que este framework también soporta animaciones, efectos 3D y gráficos avanzados para interfaces modernas.
Ejemplo:
Crea una animación con FireMonkey.
Este código crea un círculo animado que cambia de tamaño automáticamente.
unit Unit1;
interface
uses
System.SysUtils, System.Classes, FMX.Forms, FMX.StdCtrls, FMX.Objects, FMX.Ani;
type
TForm1 = class(TForm)
Circle1: TCircle;
FloatAnimation1: TFloatAnimation;
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
end.
Aplicaciones con bases de datos
Puedes conectar FireMonkey con bases de datos como SQLite, MySQL y PostgreSQL para crear aplicaciones empresariales.
Ejemplo:
Vas a conectar FireMonkey con una base de datos SQLite
Este código recupera datos de una base de datos SQLite y los muestra en consola.
uses
FireDAC.Comp.Client, FireDAC.Stan.Def, FireDAC.Phys.SQLite, FireDAC.DApt;
var
Conexion: TFDConnection;
Consulta: TFDQuery;
begin
Conexion := TFDConnection.Create(nil);
try
Conexion.DriverName := 'SQLite';
Conexion.Params.Database := 'mi_base.db';
Conexion.Connected := True;
Consulta := TFDQuery.Create(nil);
Consulta.Connection := Conexion;
Consulta.SQL.Text := 'SELECT nombre FROM usuarios';
Consulta.Open;
while not Consulta.Eof do
begin
WriteLn('Usuario: ' + Consulta.FieldByName('nombre').AsString);
Consulta.Next;
end;
finally
Consulta.Free;
Conexion.Free;
end;
end.
Personalización de interfaces
Otra cosa que puedes hacer es personalizar la apariencia de los componentes para adaptarlos a diferentes estilos de aplicación.
Ejemplo:
Quiero que modifiques la apariencia de un ListView.
Esto personaliza el ListView para mostrar una lista con detalles adicionales en la derecha.
ListView1.ItemAppearance := 'ListItemRightDetail';
ListView1.Items.Add.Text := 'Contacto 1';
ListView1.Items.Add.Text := 'Contacto 2';
Queremos que aprendas a desarrollar aplicaciones con tecnologías actuales, por eso creamos el Bootcamp de Desarrollo Web de KeepCoding, donde te enseñamos desde los fundamentos hasta el desarrollo avanzado con herramientas modernas. ¡Inscríbete y da el siguiente paso en tu carrera tecnológica!