fbpx

Iniciando um aplicativo com Flutter parte 3

Faaala devs! Como viram anteriormente nas partes 1 e 2, começamos a desenvolver uma ‘Todo list’ com Flutter, e nesta parte 3, iremos continuar nossa aventura! Pega um cafezinho e bora lá!

Nosso código até agora está mais ou menos assim:

Sem mais delongas, vamos dar uma otimizada em um negocinho no código que o Flutter disponibiliza pra gente, que é o CheckBox. Existem dois tipos de CheckBox no Flutter: o CheckBox por si só, que corresponde ao ícone que é possível marcar e desmarcar, e o CheckBoxListTile, que tem como principal diferença a presença de um label (etiqueta)! Então, no nosso caso, iremos trocar esta parte toda feita na mão:

Por esta:

Se vocês rodarem o projeto novamente, verão que essencialmente continua a mesma coisa, onde, do lado esquerdo temos o título do nosso todo, e do lado direito o checkbox em si. Bom, o CheckboxListTile traz pra gente não só esta facilidade de colocar um título, como também algumas outras propriedades bem interessantes como alterar a cor do check e até mesmo a cor de fundo, além de ser possível colocar algum widget do lado esquerdo do todo, como um ícone, e várias outras coisinhas que veremos mais pra frente.

Agora que otimizamos um pouco nosso código, vamos implementar algumas melhorias também! Acho que já devem ter percebido, mas nossa ‘Amazing Todo List’ não tem nenhum local que seja possível adicionar um todo novo!! E é isto que iremos fazer agora, bora lá!

ADICIONANDO APPBAR

Poderíamos fazer de diversas formas a adição de uma caixa de texto para inserir um todo novo na nossa aplicação, mas, que tal fazermos de uma forma não muito comum só para verem o que é possível ser feito com Flutter? Bora lá então!

Vamos adicionar uma Appbar ao nosso aplicativo, mas não vai ser qualquer Appbar, vai ser uma SliverAppBar! Verão a diferença daqui a pouco, aguardem!

Primeiramente precisamos alterar um pouco a forma que nossa lista de todos é feita:

Ao rodar o aplicativo novamente, verão que não foi alterado nada visualmente, mas agora que vem o tchan do SliverAppBar!

Vamos modificar um pouco mais nosso código, como a imagem abaixo:

Foram adicionadas algumas propriedades ao nosso widget SliverAppBar, e resumidamente vamos ver o que cada propriedade faz:

  • title: é o título em si da appbar.
  • expandedHeight: é o tamanho que a appbar vai expandir para mostrar algum conteúdo, e é aí que entra a função principal de um SliverAppBar! Quando rodarmos o aplicativo veremos na prática.
  • pinned: opção para tornar a appbar fixa no topo ou não depois que o usuário rolar a lista.
  • floating: opção para permitir ou não que a appbar apareça, mesmo não rolando a partir do topo da lista.
  • flexibleSpace: é o widget que será mostrado quando a appbar estiver expandida. Normalmente é associado um FlexibleSpaceBar e depois, dentro da propriedade background, é colocado o widget que deseja mostrar.

Bom, essas são algumas propriedades, existem outras mas não iremos utilizar nesta parte. E agora vamos ver o que tudo isso causou à nossa aplicação para entendermos melhor!

Como podemos reparar acima, conforme deslizamos os itens da nossa lista a appbar expande ou contrai, e é justamente este o efeito do widget SliverAppBar! Ps: Foi copiado e colado várias vezes os itens da lista para poder dar volume.

Agora que entendemos melhor o conceito e a prática do SliverAppBar podemos modificar do jeito que desejarmos. Como está faltando uma barra para adicionar um novo item, vamos fazer isso agora!

Primeiro precisamos modificar o Container do nosso FlexibleSpaceBar como se segue:

Vamos entender melhor as mudanças!

  • 1º foi adicionado uma margin e um alignment para poder posicionar nosso campo de texto no lugar correto.
  • 2º foi adicionado o nosso campo de texto propriamente dito, TextField, com algumas propriedades.

Vamos agora ver melhor estas propriedades adicionadas do TextField:

  • onSubmitted: função que será disparada quando o usuário submeter o texto (apertando o botão de confirmar do teclado por exemplo), enviando o texto submetido como parâmetro.
  • controller: controlador para nosso TextField, o que permite modificar várias propriedades do TextField. Veremos depois seu uso na prática.
  • decoration: propriedade que recebe um widget InputDecoration para modificar o estilo do TextField.

Propriedades do InputDecoration:

  • filled: preenchido – indica se deve ou não preencher o interior do TextField.
  • fillColor: cor de preenchimento.
  • hintText: texto de “dica” para ajudar a identificar o campo;
  • focusedBorder: borda para contornar nosso TextField quando o campo estiver focado e sem erros.
  • enabledBorder: borda para contornar nosso TextField quando o campo estiver ativado e sem erros.

Propriedades do OutlineInputBorder:

  • borderSide: propriedade que recebe um widget BorderSide que modifica o lado da borda.
  • borderRadius: propriedade que recebe um widget BorderRadius que define o tipo da borda.

Propriedades do BorderSide:

  • color: cor da borda.
  • width: define o comprimento da borda, mas na prática é a espessura dela.

Agora que vimos alguns widgets usados e suas propriedades, poderíamos rodar as modificações no aplicativo, porém segura um momentinho aí gafanhoto, vamos criar nosso controller e o método onSubmitted para que não haja erros quando compilarmos!

No topo da nossa classe _HomePageState, adicionaremos um TextEditingController, que é o widget responsável por controlar as edições em um TextField, como a imagem a seguir:

Agora falta criarmos o método que irá adicionar o novo item à nossa lista, que será ativado quando o usuário submeter o texto, bora lá!

Dentro da nossa classe novamente, em qualquer lugar acima do método build vamos adicionar o seguinte código:

O método acima irá receber o novo item a ser adicionado, onde ele será formatado para o objeto que corresponde ao nosso todo. Na sequência, será feito uma chamada de alteração ao estado da nossa aplicação para informar que será preciso renderizar novamente tudo que está utilizando o array data. Por fim, será utilizado o método add para adicionar nosso novo todo à nossa lista de todos!

No fim do método há _todoInputController.clear() pois, quando o usuário submeter o texto, o mais interessante ao usuário é poder escrever outro texto logo em seguida, mas se não apagarmos a caixa de texto, o texto anterior ainda estará lá. Por isso, precisamos limpar a caixa de texto usando o controller do TextField e chamando o método clear.

Ufa! Agora sim podemos rodar todas essas modificações e ver o que vai rolar!

Se tudo ocorreu bem, o aplicativo estará rodando conforme a imagem acima. Agora nossa aplicação tem mais cara de aplicação não? Conseguimos ver os todos, adicionar novo todo, mas o que ta faltando… remover! E se inserirmos algo errado, o que fazer? Bom, é isto que iremos ver na próxima parte! Muito obrigado quem leu até aqui. Se tiver algum sugestão ou dúvida, só nos informar!

DicaEz: Se quiserem olhar o projeto, aqui está um link para o mesmo no Github:  https://github.com/RickMartian

When to know when to hire a outsourced developer?

Whether or not to hire a outsourced developer can be one of the main questions for those starting a digital business. Having an allocated professional, who is not part of your internal team of professionals, can bring some uncertainty to managers. However, this type of contracting brings a series of benefits such as cost reduction, reduced risk of investment going wrong and also agility in development.

Because of this, if the size of your company prevents you from performing all the necessary functions at a reasonable and consistent cost, outsourcing may be a good option.

However, it is also important to know that the ideal time to hire a outsourced developer is when you are looking for an evolution of your company in the job market, either by creating an online solution, developing an application that can boost your business or just for daily control and management of your startup.

Because of all these points presented, we have prepared an article that details the outsourcing of developers and their benefits. Check it out below.

What does an IT developer do?

The system developer is a professional who has the function of writing and coding a series of functions and commands that will be responsible for creating a software, website or application. In addition, within the areas of expertise, the professional also has enough technical knowledge to monitor networks, create and manage databases and also offer technical support for maintaining products already developed.

The work of the developer is very important nowadays, due to the rapid advancement of information technology and the constant evolution of technological knowledge. In addition, most companies are looking for a digital solution to increase revenue and visibility for their business.

Despite writing codes, the developer must have, in your essence, creativity, curiosity in solving problems and a lot of dedication in his studies, since new technologies and languages ​​appear daily. Another fundamental characteristic in the profession is having leadership, to manage a possible team of developers, and also the notion of entrepreneurship, to attract new customers and close a larger number of deals.

Due to the countless qualities expected for this type of professional, the system developer is a key part for a company that wants agile growth and innovation, following the trends that have emerged over the years.

When to hire a outsourced developer?

Before hiring a technology developer, it is necessary to analyze the structure of your company, how many employees you need for the operation and also about which projects you want to invest in. This is important to determine how the search for talent will occur, since, to fill or create a new vacancy for an IT professional depends, first of all, on the assessment of their needs. So, recognize what your company needs. After that, finding the right person for the vacancy will be much easier.

As well, it is important to detail and delimit your project so that you have in mind what your goals are, it is another important step so that, in the future, the development team has no doubts about what to produce.

The trigger to hire a outsourced developer must arise from a need, whether to create a website, a management system or an application that will modify your business for the better, paying less than the company would pay when forming an internal development team.

One of the solutions to reduce the initial cost projected by the company is to invest in an outsourced IT professional. With this type of outsourcing in the technology area, there is no need for the entrepreneur to assemble a specific team, take care of the bureaucratic hiring parts and not even spend on training their employees to bring the project to life.

Hire a developer will increase your results

From the moment you have a company that specializes in hiring and managing high performance teams, you also dramatically minimize the risks of the investment not having the expected return. Besides, choosing companies that take care of this part of developer allocation ensures that your project will be produced by highly trained professionals in the subject, and with that, the completion of your system will be completed more quickly without losing code quality.

Another time when hiring a outsourced developer may be ideal is when it comes to starting a digital transformation in your business. Hiring a team of developers who will be responsible for including your brand in the online world can significantly increase your company’s authority and visibility and, consequently, profitability.

Other factors that may indicate that you need an outsourced software development consultancy are related to the lack of training of your employees regarding technology. Having an outsourced team for the matter, the manager will have a team focused only on the objective of bringing the project to life while the company’s fixed employees take care of other vital areas of their business.

In addition, another positive point is that, when the project executed by the allocated professionals ends, the result will be maintained for a long period. Assuming that a group of developers developed software for your company, in this case, even with the departure of the allocated professionals, the result of your work will be maintained and the manager will have no consequences on the performance of your business.