Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Desenvolver uma Aplicação de Boas-Vindas na Primeira Instalação - Utilizando GTK4 e Rust #1

Open
2 of 8 tasks
leandromqrs opened this issue Aug 24, 2023 · 2 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@leandromqrs
Copy link
Member

leandromqrs commented Aug 24, 2023

Objetivo

Esta issue tem como objetivo discutir e planejar o desenvolvimento de uma aplicação de boas-vindas para a primeira instalação do Luminus, inspirada no programa de boas-vindas do Windows 11. A aplicação será desenvolvida usando as tecnologias GTK4 e Rust, com o propósito de guiar os usuários durante a configuração inicial do sistema.

Pontos-chave

  • Experiência do Usuário Aprimorada: A aplicação de boas-vindas oferece uma experiência amigável e orientada ao usuário durante a configuração inicial.
  • Guiar Configurações Iniciais: A aplicação fornecerá orientações sobre configurações essenciais, como idioma, região, conta de usuário, rede etc.
  • Design Atraente: A interface seguirá os padrões de design moderno, tornando a experiência visualmente agradável e alinhada ao ambiente GNOME.
  • Usabilidade e Acessibilidade: A interface será projetada com foco na usabilidade e acessibilidade, garantindo que todos os usuários possam utilizá-la.
  • Integração com o Sistema: A aplicação se integrará perfeitamente com o sistema, fornecendo informações relevantes e úteis.

Vantagens e Melhorias

  • Introdução Suave ao Sistema: A aplicação de boas-vindas orienta os usuários através das configurações iniciais, tornando a introdução ao sistema mais suave.
  • Configuração Personalizada: Os usuários podem configurar o sistema de acordo com suas preferências desde o início, economizando tempo.
  • Interface Agradável: O design moderno e atraente contribuem para uma experiência mais positiva na primeira interação com o sistema.
  • Minimização de Erros: A aplicação ajuda a evitar configurações incorretas ou esquecidas, minimizando possíveis problemas futuros.
  • Consciência das Recursos: A aplicação pode fornecer informações sobre recursos do sistema, guias de uso e dicas úteis.

Tarefas Propostas

  • Design da Interface: Criar um design de interface interativo e atraente que seja intuitivo para os usuários.
  • Desenvolvimento da Aplicação: Utilizar GTK4 e Rust para desenvolver a aplicação de boas-vindas, implementando as funcionalidades desejadas.
  • Configurações Iniciais: Integrar guias passo a passo para auxiliar os usuários na configuração inicial do sistema.
  • Personalização: Fornecer opções para personalizar configurações como idioma, plano de fundo, tema, etc.
  • Integração com o Sistema: Garantir que a aplicação funcione perfeitamente no ambiente GNOME do Luminus.
  • Testes de Usabilidade: Realizar testes com usuários para avaliar a eficácia da aplicação em orientar as configurações iniciais.
  • Otimização de Desempenho: Assegurar que a aplicação seja responsiva e não impacte negativamente no desempenho do sistema.
  • Documentação: Criar documentação clara sobre como utilizar a aplicação de boas-vindas.
@leandromqrs leandromqrs added the enhancement New feature or request label Aug 24, 2023
@leandromqrs leandromqrs added this to the Sprint 1 milestone Aug 24, 2023
@leandromqrs leandromqrs self-assigned this Aug 24, 2023
@leandromqrs
Copy link
Member Author

Ainda estou tendo umas dificuldades para entender a estrutura do Rust, mas já consegui separar a janela principal dos widgets, seria uma boa também utilizar o GTK BluePrint, ele é melhor que o XML padrão e menos verboso também.

Olha um exemplo e diferença:

Blueprint:

using Gtk 4.0;

template MyAppWindow : ApplicationWindow {
  default-width: 600;
  default-height: 300;
  title: _("Hello, Blueprint!");

  [titlebar]
  HeaderBar {}

  Label {
    label: bind MyAppWindow.main_text;
  }
}

XML:

<?xml version="1.0" encoding="UTF-8"?>
<interface xmlns="urn:oasis:names:tc:opendocument:xmlns:widget:1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:gtk="http://gtk.org/schema"
  xsi:schemaLocation="urn:oasis:names:tc:opendocument:xmlns:widget:1.0
                      http://openstandaarden.be/cabonate/widgets/widget.xsd
                      http://gtk.org/schema
                      http://gtk.org/schema/gtk.xsd">

  <object class="GtkApplicationWindow" id="window">
    <property name="default-width">600</property>
    <property name="default-height">300</property>
    <property name="title" translatable="yes">Hello, Blueprint!</property>

    <child>
      <object class="GtkHeaderBar" id="titlebar">
        <!-- Add HeaderBar content here if needed -->
      </object>
    </child>

    <child>
      <object class="GtkLabel" id="label">
        <property name="label" translatable="yes">Hello, Blueprint!</property>
      </object>
    </child>
  </object>

</interface>

Mais informações: https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/

@leandromqrs
Copy link
Member Author

Próximo passo é utilizar os widgets chamados Carousel para passar as "pages" da aplicação, seguindo os passos para finalizar as configurações iniciais do SO.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: In Progress
Development

No branches or pull requests

1 participant