Mostrando postagens com marcador Letticia Nicoli. Mostrar todas as postagens
Mostrando postagens com marcador Letticia Nicoli. Mostrar todas as postagens

quinta-feira, 4 de janeiro de 2018

Instrumentação completa para aplicativos mobile com Visual Studio App Center

Por Letticia Nicoli em 04/01/2018 no site Lambda3



Se você trabalha com desenvolvimento mobile já deve ter visto a quantidade de ferramentas disponíveis no mercado para instrumentar e/ou automatizar sua aplicação, seja ao realizar build + release, acompanhar a aderência dos usuários ou até mesmo bugs ocorridos no app. 
Gerenciar tudo isso em vários lugares diferentes parece um pesadelo mas temos uma forma de solucionar isso com o Visual Studio App Center!

Desde o ano passado, quando ele ainda estava em preview e se chamava Visual Studio Mobile Center, venho acompanhando a evolução e as facilidades que ele traz no dia a dia de desenvolvimento do projeto em que atuo aqui Lambda3. Basicamente, ele reúne vários serviços em um único produto: buildar, testar, distribuir, monitorar nossos aplicativos móveis bem como adicionar, de modo simples, serviços de nuvem no back-end e push notifications. Descartando a necessidade de termos várias ferramentas distribuídas para realizar esses serviços.
O mais bacana é que a Microsoft possibilitou sua utilização para vários tipos de plataformas, assim temos suporte a Objective-C e Swift (iOS), Java e Kotlin (Android), Xamarin, React Native, UWP e ainda macOS, tvOS e Cordova. Tendo isso em mente, vamos ver de forma mais detalhada os principais serviços disponíveis:

Ciclo de Vida

Build
Conseguimos nos conectar ao GitHub, Bitbucket ou VSTS, gerenciar o código em um repositório Git, gerenciar as branchs e ainda gerar uma build automática para cada código integrado. Tudo isso com alguns cliques.

Vale a pena pontuar que não é necessário um macOS para criar seus aplicativos para iOS no AppCenter .

Test Cloud
Oferece um serviço de automação de testes, que podem ser executados em centenas de modelos de dispositivos exclusivos e configurações de sistemas operacionais diferentes, hospedados em algum datacenter da Microsoft. Sim, são dispositivos reais que nos fornecem uma aproximação maior do ambiente dos nossos usuários õ/

Ele também efetua a captura de tela no último estado do app, dessa forma se ocorrer algum erro durante a execução do teste fica mais fácil entender o que ocorreu junto com o stacktrace que é disponibilizado. Realmente vem com a ideia de substituir o Xamarin Test Cloud.
Suporta os frameworks mais populares de testes:
  • Appium – Várias linguagens
  • Espresso – Java
  • Calabash – Ruby
  • Xamarin.UITest – C#
Para aqueles que gostam de se aventurar e fazer algo diferente, os testes também podem ser iniciados pela ferramenta CLI ou REST APIs.
Distribuição
Disponibilização do aplicativo para testers, possibilitando o gerenciamento de grupo de usuários e download sem passar pela loja, notificando os envolvidos sempre que houver uma nova versão para ser validada. Vindo para substituir a utilização do HockeyApp.


Push Notifications [Preview]
Com o App Center Push é possível otimizar a experiência do usuário da sua aplicação com notificações push atualizadas e atualizações de dados.
A ideia é que em passos simples, criemos uma nova notificação de envio, adicionando um título, mensagem, público-alvo e pronto.
 

Monitoramento

Analytics
Permite entender melhor os usuários finais e os padrões de utilização do aplicativo. Através dele, pode obter informações como número de usuários diários/semanais/mensais, duração da sessão, principais dispositivos, versões de S.O. entre outras. Além disso, é possível ter eventos personalizados para coletar dados de análise comportamental.

Who? What? Where? When? Why? How?
Público-Alvo
Fornecer as principais métricas sobre os usuários que utilizam o aplicativo( dispositivo, localização, atividade, engajamento). Nos traz respostas para dúvidas como:

  • Devo traduzir meu aplicativo para outro idioma?
  • Meus usuários estão utilizando a última versão?
  • Posso remover o suporte da versão antiga?
Eventos Customizáveis
De acordo com a necessidade do negócio, nos auxilia em pontos como:

  • Quais são os conteúdos mais visualizados?
  • Quantas pessoas preenchem meu formulário e quantas desistem?
  • Qual a média de idade dos meus usuários?
Logs
Disponibilização de logs para garantir a integração com o App Center, loga início de sessões, crashes, eventos e suas propriedades. 
Tudo com refresh automático a cada 3 segundos.

Crash [Preview]
Integre o SDK do App Center para coletar automaticamente falhas que ocorrem no aplicativo.
Os crashes são agrupados por causa comum, ordenados pelos mais frequentes e informando o arquivo + número da linha que o erro ocorreu (full stack trace).


Conclusão

Bom, a ideia deste post foi apenas dar um overview sobre o que o Visual Studio App Center tem a oferecer e facilitar o nosso trabalho. Ele ainda possui mais serviços como identity, tables, testes de unidade e etc que não irei abordar no momento mas você pode dar uma olhada na documentação deles.
Vocês utilizam ou já chegaram a testar o App Center? O que acharam? 🙂
Leia mais sobre o Visual Studio App Center em nosso blog, clicando aqui.
Imagens utilizadas no post: App Center,  Pexels

quarta-feira, 26 de abril de 2017

Entendendo Xamarin.Forms

Em 26/04/2017 no site Lambda3

Há um tempo rolou aqui no blog um overview sobre Xamarin e como ele nos ajuda a desenvolver apps mobile nativas utilizando C#. Seguindo a ideia de apresentar as facilidades que ele traz no desenvolvimento, hoje irei focar em reaproveitamento de código de interface utilizando Xamarin.Forms.
Com ele é possível ter interfaces nativas utilizando os controles visuais de cada uma das plataformas escrevendo apenas um único código para a UI. De forma bem simples, criamos as views e o Xamarin se encarrega de mapear isso para cada componente de UI específico em cada plataforma.
O Xamarin.Forms traz vários recursos para auxiliar no desenvolvimento mobile, entre eles estão:
XAML ou C#
Podemos definir layouts, views, bindings utilizando C# ou XAML.
Fica a nosso critério decidir qual delas utilizar, conforme exemplo abaixo os dois códigos possuem a mesma finalidade:

XAML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" enconding="UTF-8"?>
<ContentPage x:Class="EntryTestLogin">
  <ContentPage.Content>
 
    <StackLayout WidthRequest="200" HorizontalOptions="Center"
     VerticalOptions="Center">
      <Entry Placeholder="Username"/>
      <Entry Placeholder="Password"/>
      <Button Text="Login"/>
    </StackLayout>
 
  </ContentPage.Content>
</ContentPage>
 
C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var page = new ContentPage
{
 Content = new StackLayout
 {
   WidthRequest = 200,
   HorizontalOptions = LayoutOptions.Center,
   VerticalOptions = LayoutOptions.Center,
   Children =
   {
     new Entry { Placeholder = "Username"}
     new Entry { Placeholder = "Password"}
     new Button { Placeholder = "Login"}
   }
 }
};
 
Controles
Não precisamos mais nos preocupar com os controles correspondentes de cada plataforma. Por exemplo, para criação de uma label nativa temos que saber o seguinte:

  • UILabel – iOS
  • TextView – Android
  • TextBlock – Windows Phone
Com o Xamarin.Forms, temos vários objetos de UI nativas prontinhos para utilizarmos. Dessa forma, para esse caso citado acima definimos apenas o controle LABEL.
Assim como esse caso, temos vários outros exemplos como DatePicker, Image, SearchBar, Map entre outros disponíveis que você pode ver aqui!

Vale ressaltar, que não há possibilidade de utilizarmos recursos específicosde cada plataforma dado que a ideia do Forms é justamente unificar o que há de comum na UI das plataformas. Mas pode ser que seja necessário criar um checkbox, por exemplo, que é comum apenas para usuários de android. Para esses casos podemos utilizar custom renderers para personalizar a aparência e/ou o comportamento de um controle.
Páginas
Através das páginas definimos como será o comportamento de navegação do aplicativo.

Com as opções disponíveis citadas acima, podemos ter telas com fluxo de navegação via menu lateral, botão voltar na parte superior, via tabs, carrossel etc. Para mais detalhes: Xamarin.Forms Pages.
Layout
O Forms disponibiliza maneiras de organizar o conteúdo na tela, podendo definir a posição e o tamanho dos elementos.

Você consegue alinhar seus elementos um abaixo do outro, em formato de grid, scroll entre outros de acordo com sua necessidade. Para mais detalhes:Xamarin.Forms Layout.
Customização
É possível realizar algumas customizações básicas no layout e oferecer valores específicos da plataforma. Como por exemplo, ajustar o padding de determinado elemento de uma plataforma:

1
2
3
4
5
6
7
8
9
10
11
12
13
<ContentPage.Padding>
 <OnPlatform x:TypeArguments="Thickness">
   <OnPlatform.iOS>
     0, 20, 0, 0
   </OnPlatform.iOS>
   <OnPlatform.Android>
     0, 0, 0, 0
   </OnPlatform.Android>
   <OnPlatform.WinPhone>
     0, 0, 0, 0
   </OnPlatform.WinPhone>
 </OnPlatform>
</ContentPage.Padding>
 
XAML Previewer
Quem mexe com Xamarin sabe como é cansativo ter que executar o projeto toda vez para visualizar a alteração realizada na UI. Agora com o Forms, podemos pré-visualizar o layout (XAML) em tempo real sem a necessidade de executar o projeto toda vez.

Deep Link
Cria uma navegação mais fluída, dado uma fonte externa (web/sms/e-mail) conseguir realizar buscas dentro do aplicativo através do sistema operacional. O aplicativo da Xamarin Evolve do ano passado, utilizou essa nova navegação de URL para vincular todas as sessões da conferência. Se procurar uma sessão na Pesquisa Google, na Pesquisa Spotlight ou na Web, a aplicação inicia automaticamente a página de detalhes da sessão!


Cenários de Utilização
Assim como qualquer outra tecnologia nova, temos que entender se ela realmente atenderá nossa necessidade e balancear quais os benefícios essa abordagem irá trazer.
 
Xamarin.Forms

  • Como o próprio nome “FORMS” já sugere, ele é indicado para formulários.
  • Aplicativos que exigem pouca funcionalidade específica da plataforma.
    • Se seu aplicativo precisa de muitas funções não comuns entre as plataformas, você terá trabalho para desenvolver isso e ainda mais para customizar a UI.
  • Compartilhamento de código mais importante que UI personalizada.
    • Se suas interfaces precisam ser 100% iguais do que foi definido pelo designer e a maior parte delas não são fidedignas aos componentes nativos, você terá muito trabalho no Forms.
  • Desenvolvedores confortáveis com XAML.
Exemplos: App de consulta de saldo, receitas culinárias e etc
 
Xamarin

  • Aplicativos que utilizam muitas APIs específicas da plataforma.
  • UI personalizada é mais importante que compartilhamento de código.
  • Desenvolver games.
Exemplos: App de fotos, filtros e etc
Algo bem legal que foi divulgado no evento Connect da Microsoft no ano passado, foi o app da Coca-Cola desenvolvido em Xamarin.Forms que auxiliava no marketing e nas vendas de distribuição de máquinas de refrigerante, quando a equipe de campo ia visitar seus clientes. Assista ovídeo.

Aqui eu apresentei algumas das diversas funcionalidades que o Forms nos proporciona. Você pode acompanhar todas as outras através do site deles.
Deixo algumas referências para aprofundar nos estudos:
Gratuito:
Online
Youtube
Podcast
Pagos:
Obs.: Possuem trial free! Aproveite 😉
E você já começou mexer com Xamarin.Forms ou ainda está em dúvida? Compartilhe sua experiência, impressões, dúvidas, referências para mais conteúdo! Vamos lá ;D