Foi proposto que fizémos uma aplicação de chat no componente curricular de Redes de Computadores. A aplicação deveria ser obrigatoriamente implementada utilizando API de sockets (TCP ou UDP).
Esse projeto foi desenvolvido com as seguintes tecnologias:
- Flutter: Framework para desenvolvimento multiplataforma
- Dart: Linguagem de programação
- Provider: Biblioteca para gerenciamento de estados da aplicação
Dart foi a linguagem de programação utilizada para desenvolver o produto proposto. Em conjunto com a linguagem será utilizado o framework Flutter para que seja possível o desenvolvimento de uma interface Desktop, disponível para o sistema operacional Windows, onde o usuário do sistema terá acesso às funcionalidades. Como protocolo da camada de transporte será utilizado TCP já que o mesmo em comparação com UDP oferece mais confiabilidade na entrega de datagramas, o que é de suma importância para uma aplicação de chat de conversa.
OBS. esta aplicação foi desenvolvida apenas para máquinas com o sistema operacional Windows.
- Siga os passos de instalação do Framework Flutter clicando aqui.
- Clone esse repositório com git no terminal do SO com o comando
git clone https://github.com/ecorreas/Chat-Application.git. - Após o clone do repositório, abra o projeto clonado no VS Code.
- Instale as dependências executando o comando
flutter packages getouflutter pub getno terminal dentro do seu diretório do projeto (provavelmenteafd_system). - Abra apartir do terminal a pasta localizada em "/lib/app/mock/"
- Execute o seguinte comando
dart run create_server.dartpara executar o servidor - Por fim volte ao VSCode e execute o comando
flutter runou aperte F5 (modo debug) para executar o app desktop.
Figura 1. Diagrama de casos de uso
A Tabela 1 apresenta os casos de usos de forma priorizada, onde os casos de uso definidos com prioridade alta deverão ser apresentados na versão final do produto desenvolvido diferentemente dos casos de uso com prioridade média e baixa que poderão ou não ser apresentados na entrega final do produto.
Tabela 1. Priorização de casos de uso
Figura 2. Diagrama de componentes
Figura 3. Diagrama de sequência do UC01-Identificação
Figura 4. Diagrama de sequência do UC02-Iniciar conversa
Figura 5. Diagrama de sequência do UC03-Visualizar conversas
| ClienteA | ClienteB | ||
|---|---|---|---|
| Request | Mensagem | Response | Mensagem |
| connect() | iniciar conexão | get() | receber mensagem |
| write() | enviar mensagem | ||





