Interfaces de Usuário
Como aplicações são user-facing, é necessário que exista alguma forma do usuário-fim emitir comandos para a aplicação. Isto é, é necessário que exista alguma interface de usuário (User Interface ou UI). Uma interface de usuário pode ser implementada de várias formas.
Graphical User Interfaces (GUIs)
A forma mais comum de implementar uma interface de usuário é através de menus, telas e cliques em botões.
A maioria das aplicações que são utilizadas pelo usuário comum, aquele com pouca formação em computação, são classificadas como GUIs (Graphical User Interfaces). Isto é, são aplicações cuja a interface é gráfica, composta de menus, telas, cores, botões, etc. Essas GUIs podem ser acessadas a partir de vários meios ou plataformas. As principais plataformas hoje em dia são:
-
Desktop. São aplicações que são abertas diretamente num computador desktop (PC, laptop) , por meio de algum sistema operacional, como o Windows, Linux ou macOS.
Exemplos: Spotify Desktop, Whatsapp Desktop, Google Chrome, Microsoft Edge, Explorador de Arquivos, Gerenciador de Tarefas, Steam Desktop, etc.
-
Mobile. São aplicações muito semelhantes às desktop mas que, ao invés de serem abertas em um dispositivo desktop, são abertas em dispositivos móveis, como smartphones e tablets, que rodam sistemas operacionais móveis, como Android e iOS.
Exemplos: aplicativo do Spotify no Android, Whatsapp no Android, Whatsapp no iOS, etc.
Aplicações para desktop ou mobile são conhecidas como aplicações nativas, pois rodam diretamente acima do sistema operacional.
-
Web. São aplicações acessadas por meio de um site, utilizando um navegador web (Google Chrome, Mozilla Firefox, Microsoft Edge, Safari).
Exemplos: Spotify Web, Whatsapp Web, SIGAA, etc.
Diferentemente das aplicações nativas, as aplicações web não rodam diretamente acima do sistema operacional, mas sim por meio de um navegador web. Note que quem atua como aplicação nativa nesses casos é o o navegador web.
Figura 1-2: As três plataformas de aplicações gráficas: desktop (nativa), mobile (nativa) e web (via navegador).
Command-Line Interfaces (CLIs)
Enquanto as GUIs são projetadas para o usuário comum, com pouco conhecimento em computação, existem aplicações que são projetadas para usuários com um conhecimento maior em computação. Essas aplicações, ao invés de utilizarem menus, telas e botões, utilizam comandos de texto, digitados em um terminal.
O principal benefício de aplicações CLIs é que, diferentemente das GUIs, elas não escondem as funcionalidades por trás de vários cliques em menus, telas e botões. Dessa forma, é muito fácil de automatizar a interação com aplicações CLI.
Como exemplos dessas aplicações, temos ffmpeg, diskutil, diskpart, ssh,
zip, unzip, rsync, brew, winget, grep, find, ping, entre outros.
Por exemplo, veja como um usuário pode usar a CLI do ffmpeg para converter um
vídeo no formato .mkv para .mp4:
ffmpeg -i video.mkv video.mp4
Figura 1-3: Comparação entre GUI e CLI para a mesma tarefa: converter um vídeo com ffmpeg.
Apesar de CLIs serem muito úteis, o foco desse livro é em aplicações gráficas (GUIs), em particular nas plataformas web e mobile.