Giter Club home page Giter Club logo

calculadorafreelancer01-1's Introduction

CalculadoraFreelancer01

Se trata de um app inicial para cálculo do valor da hora do profissional freelancer.

Como criar um projeto Xamarin Forms no Visual Studio

Para criar um projeto Xamarin Forms vá em File -> new -> Project

Em Visual C#, escolha a opção Cross-platform, a direita terá somente a opção Mobile App(Xamarin Forms), a escolha. Dê um nome para o projeto, para o caminho do projeto escolha um caminho mais curto, como por exemplo colocar na raiz de c: devido ao visual studio dar erros quando escolhido um caminho muito extenso. Clique em Ok.

Agora escolha a opção Blank App. Deixe marcado as opções IOS e Android. Marque a opção .NET Standard e clique em OK. O projeto será criado.

Criar Projeto Xamarin Forms

Navegação - App.xaml.cs

Como usaremos navegação entre telas, temos que definir que nossa tela inicial seja chamada já utilizando navegação. Abra o arquivo App.xaml.cs, no construtor tem o seguinte código:

  MainPage = new MainPage();

Altere para o cógido abaixo:

  MainPage = new NavigationPage(new MainPage());

Verificar se está tudo certo

Execute o projeto e veja se abriu a tela default do xamarin, similar a imagem abaixo:

Criar Página no Xamarin Forms

Tela de cálculo do valor da hora

Vamos criar uma Page chamada CalculoValorHoraPage, clique com o botão direito sobre o projeto principal (chamado CalculadoraFreelancer01), vá em Add -> new item, escolha Xamarin Forms, nas opções a esquerda que serão mostradas, escolha a escrita Content Page. Cuidado para não escolher a Content Page (C#). Esta última criará somente a classe em c#, não tendo o arquivo .xaml para criação de layouts com xml.

Criar Página no Xamarin Forms

Esta tela será responsável por calcular o valor da hora do profissional freelancer. Precisaremos então para os cálculos saber qual é o valor que o profissional quer ganhar por mês, as horas trabalhadas por dia, quantos dias irá trabalhar por mês e por fim, quantos dias terá de férias por ano. Criaremos então um campo para cada item citado anteriormente. Precisaremos também de um campo para mostrar o resultado da operação, que é o valor da hora do profissional.

Edite o arquivo CalculoValorHoraPage.xaml e adicione o código abaixo:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            x:Class="CalculadoraFreelancer01.CalculoValorHoraPage"
            Title="Valor da Hora"
            Padding="10">
   <ContentPage.Content>
       <StackLayout>
           
           <Label Text="Valor ganho por mês" />
           <Entry Placeholder="Valor ganho por mês"
                  x:Name="ValorGanhoMes"
                  Keyboard="Numeric"/>

           <Label Text="Horas trabalhadas por dia" />
           <Entry Placeholder="Horas trabalhadas por dia"
                  x:Name="HorasTrabalhadasPorDia"
                  Keyboard="Numeric"/>

           <Label Text="Dias trabalhados por mês" />
           <Entry Placeholder="Dias trabalhados por mês"
                  x:Name="DiasTrabalhadosPorMes"
                  Keyboard="Numeric"/>

           <Label Text="Dias de férias por ano" />
           <Entry Placeholder="Dias de férias por ano"
                  x:Name="DiasFeriasPorAno"
                  Keyboard="Numeric"/>

           <Label Text="R$ 00,00 / hora"
                  x:Name="ValorDaHora"
                  FontSize="Large"
                  TextColor="Green"/>

           <Button Text="Calcular"
                   BackgroundColor="#6699ff"
                   TextColor="White"
                   x:Name="CalcularValorHoraButton"/>


       </StackLayout>
   </ContentPage.Content>
</ContentPage>

Altere o arquivo App.xaml.cs para colocar como a tela inicial esta que acabamos de criar

  MainPage = new NavigationPage(new CalculoValorHoraPage());

Agora mandamos executar o projeto, a tela gerada deverá ser igual a esta:

Tela calculadora freelancer

Utilizamos nos campos de entrada de texto (Entry) o Keyboard="Numeric", mas há outros tipos de teclado, como Email e Telephone. Pra mais informações veja a documentação da Microsoft: Documentação do Entry

Cálculo do valor da hora

Todo arquivo .xaml tem uma classe vinculada a ele, terminado com o nome .xaml.cs.

Tudo que é feito no xaml, conseguimos acessar na nossa classe C#, e nessa classe também conseguimos criar layouts e atribuir no nosso xaml. Ao utilizarmos essa classe, falamos que estamos fazendo código em CodeBehind.

Então vamos no arquivo CalculoValorHoraPage.xaml.cs, no construtor da classe vamos atribuir o evento de click para o nosso botão de calcular. O código ficará como o mostrado abaixo:

	public CalculoValorHoraPage ()
	{
          InitializeComponent ();
          CalcularValorHoraButton.Clicked += CalcularValorHoraButton_Clicked;
	}

Agora criaremos a função responsável pelo cálculo:

     private void CalcularValorHoraButton_Clicked(object sender, EventArgs e)
        {

            double valorGanhoAnual = double.Parse(ValorGanhoMes.Text) * 12;
            int totalDiasTrabalhadosPorAno = int.Parse(DiasTrabalhadosPorMes.Text) * 12;

            if (!string.IsNullOrEmpty(DiasFeriasPorAno.Text))
            {
                totalDiasTrabalhadosPorAno -= int.Parse(DiasFeriasPorAno.Text);
            }

            double valorHora = valorGanhoAnual / (totalDiasTrabalhadosPorAno * int.Parse(HorasTrabalhadasPorDia.Text));

            ValorDaHora.Text = $"{valorHora.ToString("C")} / hora";

        }

Resultado

Vamos mandar executar o projeto e testar o cálculo:

Tela App Calculadora Freelancer funcionando

calculadorafreelancer01-1's People

Contributors

dayanelima avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.