Gamificação: Como tornar seu aplicativo mais atrativo

Atualmente é cada vez mais difícil capturar a atenção de uma pessoa em um aplicativo, pois existem diversos fatores que tiram a atenção do usuário quando ele está usando algum aplicativo que não o engaje, não pegue a atenção plena do usuário, alguns exemplos são as notificações de outros aplicativos, como por exemplo alguma marcação em publicação em redes sociais, se o usuário não estiver engajado no aplicativos em questão ele sairá para ver a notificação.

O que é Gamificação / Gamification?

Gamificação ou Gamification são técnicas, estratégias, designs e mecânicas de jogos utilizadas para trazer engajamento, aumento de produtividade, foco dentre outros fatores para tarefas, aulas ou até mesmo aplicativos que não são voltados para jogos.

Um bom exemplo de gamificação é o Nike Plus, onde ao atingir metas pré-estipuladas o usuário ganha troféus e status dentro da ferramenta, criando assim uma competitividade entre os usuários.

Outro termo utilizado é ludificação, onde ele tem seu uso no marketing com o significado de incentivar o envolvimento com o produto ou serviço.

Qual o ganho do uso de gamificação?

Nada melhor do que o usuário utilizado o aplicativo que lhe foi ofertado correto? Por isso a gamificação se torna algo com grande valor, pois com o uso de frameworks de gamificação, pode-se fazer sistemas de pontuações, nomeações, avatares dentre outras ferramentas que farão o usuário ficar cativado e utilizar mais vezes o aplicativo.

Um exemplo de framework é o Octalysis que foi desenvolvido por Yu-Kai Chou (foto ao lado) e lançado em 2010, onde este se tornou referência mundial, pois Chou já estava trabalhando em “gamificação” antes da mesma ser reconhecida pelo termo.

Octalysis: Conceito e Funcionalidades

O framework Octalysis trouxe como princípio 8 Cores Drives que motivam as pessoas a fazerem suas tarefas ou utilizar algo da melhor forma, usando a diversão como um mecanismo para engajá-los, são eles:

  • Significado Épico (Meaning)

Este Core tem significado de dar importância ao usuário, lhe dar título, fazendo ele se sentir como “O escolhido” se sentir especial.

  • Criatividade e Feedback (Empowerment)

O feedback dentro do octalysis diz respeito a mostrar para o usuário que ele está avançando, crescendo, um exemplo são plataformas de línguas como a Pearson, onde está presente o leveling (Nivelação).

  • Influência Social (Social Influence)

O Core Social e de afinidade fala sobre motivar as pessoas por meio do sentimento de nostalgia, competitividade e inveja, ou seja, mostrar os status de outros usuários para que se possa ter uma certa rivalidade.

  • Imprevisibilidade (Unpredictability)

Para os curiosos esse é um ponto a ser explorado, pois a vontade de saber o que irá acontecer em seguida, como por exemplo temos a vontade de assistir mais de um episódio de séries, ler mais uma página, jogar mais uma partida.

  • Perda (Avoidance)

A perda ou prevenção é o progredir com cuidado, pois há um certo risco de perder uma parte do progresso ou até perder tudo, isso causa tensão e fazendo com que o usuário fique mais preso à aquilo que está fazendo.

  • Escassez (Scarcity)

A Impaciência e Escassez é uma tática muito usada em jogos para deixar as pessoas ansiosas para poder jogar, a aplicação da mesma fora do mundo dos jogos não é diferente, um exemplo é a exclusividade, para ter funções a mais o usuário deverá pagar para ter.

  • Propriedade (Ownership)

A propriedade nada mais é do que a liberdade de ser diferente, como a criação de um avatar personalizado para cada pessoa, isso vai fazê-la se sentir única, outra é a posse, que pode ser tratada como acumulo de troféus/insígnias.

  • Realização (Accomplishment)

A realização está ligada com praticamente todos os outros Cores, onde nessa temos a questão dos desafios que darão recompensas / conquistas para o usuário, porém o desafio não pode ser algo fácil de ser conquistado, pois perderá o significado, deve ser algo desafiador onde no início será fácil, porém conforme ir avançando vá se tornando mais difícil para que o usuário crie vontade de crescer dentro da ferramenta.

Conclusão

A Gamificação está se tornando cada vez mais uma ferramenta presente no dia a dia das pessoas, pois como comprovado em pesquisas como a da TalentMS a gamificação de coisas tornou as pessoas mais produtivas (89%) e felizes (88%) no trabalho. Outro ponto é o mercado de gamificação, onde ele aumenta em cada dia, em 2018 movimentou cerca de 5,5 bilhões de dólares, sendo procurado pela maior parte das empresas mundiais.

Referências:






* https://www.youtube.com/watch?v=CK_4JfDZIjA&ab_channel=VIDDIA-Educa%C3%A7%C3%A3oOnline 



 * https://www.youtube.com/watch?v=26DaeUOijZE&ab_channel=Fant%C3%A1sticaF%C3%A1bricaCriativa  



* https://www.youtube.com/watch?v=eT5Jgt0jr1o&ab_channel=UILab



* https://www.orcestra.com.br/post/octalysis-o-framework-de-gamifica%C3%A7%C3%A3o-que-voc%C3%AA-precisa-conhecer



* https://posdigital.pucpr.br/blog/yu-kai-chou



* https://sambatech.com/blog/insights/gamification/ 



* https://neilpatel.com/br/blog/gamification-o-que-e/ 

Autor: Guilherme Oliveira Mota

Autenticação

A Autenticação em sistemas computacionais consiste em confirmar a autenticidade de uma pessoa dentro de um determinado contexto e está relacionado diretamente à segurança do sistema verificando a permissão e os limites de acesso do usuário.

Há diversas formas de autenticação dentro de um sistema como por exemplo: os Smart Cards conhecidos como tokens, a biometria e a mais difundida e aceita que é o uso de senha.

Framework e Autenticação

Dentro do universo JavaScripts temos diversos frameworks e bibliotecas que utilizamos como ferramentas para desenvolvimento visando o uso das ferramentas Node.js e React.js, temos alguns frameworks que auxiliam no processo de criação dessas autenticações tais como o Passport.js, cujo download está estimado em mais de 905 mil segundo o site (openbase.io/packages/top-nodejs-authentication-libraries).

Passport.js é um framework que utiliza a teoria de middlewares e dispõe de mais de 500 estratégias de autenticação, contando com as estratégias de autenticação através da conta do Facebook, Twitter, Google e muito mais, uma das estratégias mais usadas e que também está disponível é o JWT (JSON WEB Token).

Exemplo de Autenticação com Passport.js em uma estrutura já cirada:

routes.post('/login', async (request, response, next)=>{
    passport.authenticate(
      "login",
      async(err,user,info)=>{
          try {
              if(err || user){
                  const error = new Error('Erro ao autenticar usuário');
                  return next(error);
              }

              request.login(user, {session:false}, async (err)=>{
                  if(err) return next(err);
                    const body = {id:user.id, email:user.email}

                    const token = jwt.sign({user: body}, 'top_secret');
                    
                    return response.json({ token });
              })
          } catch (e) {
              retun next(e);
          }
      });
})

Explicando o JWT

O JWT consiste em métodos abertos e padrões da indústria que representam as solicitações entre as partes com segurança utilizando objeto JSON, permitindo a codificação e decodificação de informações através de assinaturas digital usando um segredo com o algoritmo HMAC(Hash-Based Message Authentication Code, é utilizado especificamente para calcular um MAC ) ou um par de chaves pública / privada usando RSA ou ECDSA.

A estrutura do JWT consiste em:

  • Cabeçalho – formado por duas aparte: o tipo de token, que é JWT, e o algoritmo de assinatura usados, como HMAC SHA256 ou RSA.
  • Carga útil – As declarações são declarações sobre uma entidade (normalmente, o usuário) e dados adicionais. Existem três tipos de reivindicações: registradas, públicas e privadas.
    • Declarações registradas: trata-se de um conjunto de declarações predefinidas que não são obrigatórias, mas recomendadas, para fornecer um conjunto de declarações úteis e interoperáveis. Alguns deles são: iss (emissor), exp (prazo de validade), sub (assunto), aud (público) e outros.
    • Reivindicações públicas: podem ser definidas à vontade por aqueles que usam JWT. Mas, para evitar colisões, eles devem ser definidos no IANA JSON Web Token Registry ou como um URI que contém um namespace resistente a colisões.
    • Reivindicações privadas: são as reivindicações personalizadas criadas para compartilhar informações entre as partes que concordam em usá-las e não são reivindicações registradas ou públicas.
  • Assinatura – Para criar a parte da assinatura, você deve pegar o cabeçalho codificado, a carga útil codificada, um segredo, o algoritmo especificado no cabeçalho e assiná-lo.

Comparando o JWT

Em comparação do JWT com outras formas de autenticação, como o SWT (Simple Web Tokens) e o SAML (Security Assertion Markup Language Tokens), percebemos que o JSON ganha em tamanho e menor verbosidade tornando o JSON uma boa opção para transmissão de dados em HTML e HTTP.

  • SWT – somente pode ser assinado simetricamente por um segredo compartilhado usando o algoritmo HMAC.
  • SAML e o JWT – além do uso já mencionado também pode usar os pares de chaves pública / privada na forma de um certificado X.509 para assinatura.

Em comparativo do SAML que utiliza o XML nas suas estruturas e o JWT que utiliza JSON temos o JWT com a maior simplicidade e menor verbosidade dificultando a criação de brecha de segurança pela complexidade de estrutura, quanto aos analisadores JSON são comuns na maioria das linguagens de programação, mapeando diretamente para objetos já por outro lado, XML não possui um mapeamento natural de documento para objeto tornando mais simples e fácil trabalhar com JWT do que com asserções SAML.

Figura 1 – JWT utilizando o corpo JSON

VS

Referências

https://www.tecmundo.com.br/seguranca/1971-o-que-e-autenticacao-.htm

https://openbase.io/packages/top-nodejs-authentication-libraries

https://www.devmedia.com.br/como-o-jwt-funciona/40265

Autor: Alexandre de Oliveira

O que é e como funciona o React e o Redux?

Bibliotecas são um conjunto de funções, métodos e objetos que tem como objetivo facilitar e tornar mais rápido o desenvolvimento de aplicações, não sendo necessário recriar as funções todas as vezes que estas forem necessárias, é importante lembrar que uma biblioteca normalmente é menos complexa, e mais flexível que um framework.

React

O React é “uma biblioteca JavaScript declarativa, eficiente e flexível para a criação de interfaces de usuário (UI)”, como foi definido pelos seus criadores, surgiu em 2011, no Facebook, no ano seguinte, passou a integrar também a área de tecnologia do Instagram e de várias outras ferramentas da empresa. Em 2013, a biblioteca tornou-se de código aberto, isto fez com que a popularidade da biblioteca aumentasse.

A biblioteca foi pensada para facilitar a criação da interface de usuário, ela só se preocupa com o que é exibido, ela funciona como uma junção do HTML e do JavaScript, ela utiliza o conceito de componentes para maximizar a reutilização de código. Exemplo:

class HelloMessage extends React.Component {
  render() {
    return (
      <div>
        Olá, {this.props.name}!
      </div>
    );
  }
}

ReactDOM.render(
  <HelloMessage name="Taylor" />,
  document.getElementById('hello-example')
);

O React renderiza o HTML e CSS, a partir do arquivo do React, exibindo para o usuário, inclusive sem recarregar a página, este processo é exibido no diagrama abaixo. A biblioteca possui um método de atualização da página que atualiza apenas os componentes que foram alterados fazendo com que o site possua uma eficiência muito grande.

Uma importante característica do React é que ele é uma linguagem de programação declarativa, isto é, ele se preocupa com o que o programador quer fazer enquanto que a imperativa quer saber como atingir o objetivo desejado. Por exemplo:

Imperativa:

if( usuario.curtiu() ) {
  if( botaoEstaAzul() ) {
    removeAzul();
    adicionaCinza();
  } else {
    removeCinza();
    adicionaAzul();
  }
}

Declarativa:

if( this.state.curtido ) {
  return <curtidaAzul />;
} else {
  return <curtidaCinza />;
}

Outra grande vantagem do React é que, com os mesmos conhecimentos utilizados para criar sites, também é possível criar aplicativos móveis nativos através do React Native.

Redux

Redux é uma biblioteca JavaScript para gerenciar o estado da aplicação é similar e inspirada pela arquitetura Flux do Facebook, ela pode ser utilizada com o React ou outras bibliotecas JavaScript, foi criada por Dan Abramov e Andrew Clark em 2015.

O estado da aplicação é composto pelos dados da API e dados da interface do usuário o Redux cria um local centralizado para armazenar estes dados na aplicação.

A biblioteca é indica quando a aplicação possuir diversos componentes que possuem seus próprios estados e atualizam os estados dos outros componentes, como podemos ver na imagem a baixo ao atualizar um componente, em um cenário sem Redux, as atualizações ficam confusas, já com a biblioteca todo estado é gerenciado pelo Redux ficando muito mais simples.

O Redux possui três princípios:

  • O estado do aplicativo é armazenado em um JavaScript.
  • O estado somente pode ser lido, mas podemos alterá-lo utilizando um objeto, que descreve a mudança, chamado Action.
  • Alterações são realizadas por função chamadas de Reducers.

Possuímos três partes na biblioteca, as actions, o store e os reducers.

Actions

Actions são eventos, é o único jeito de enviar dados da sua aplicação para o Store do Redux, estas são objetos e devem possuir uma propriedade de tipo, que indica o tipo de ação que está sendo executado e um payload que contém os dados que serão utilizados na action. Para enviar uma action é utilizado o método store.dispatch().

Reducers

O Reducers recebe o estado atual da aplicação e Action e retorna um novo estado ou o mesmo.

Store

Armazena o estado da aplicação, existe somente um objeto do tipo store em uma aplicação Redux. Você pode acessar o estado armazenado, atualizar e registrar ou desregistrar listeners através de métodos de suporte.

Com o aumento da utilização de APIs para desenvolvimento web as bibliotecas se tornaram uma fermenta muito útil e poupam tempo, o React vem para atender esta demanda de forma simples e eficiente. O Redux vem como um complemento ao React cuidando da parte do armazenamento da aplicação.

Autor: João Pedro Bodaneze Reva.

Fonte de referências:

https://dev.to/voralagas/first-day-to-redux-531

https://bognarjunior.wordpress.com/tag/react-redux/

https://pt-br.reactjs.org/

https://redux.js.org/

https://medium.com/leanjs/introduction-to-redux-redux-explained-with-very-simple-examples-b39d7967ceb8

https://medium.com/byte-sized-react/what-is-react-41a885e51454

https://www.edureka.co/blog/what-is-react/

6 Frameworks para aplicações distribuídas (Server side)

Frameworks são modelos que implementam ferramentas, funções e padrões em um projeto de software, que podem abranger projetos web, mobile e desktop, tanto referente ao front-end quanto o back-end, para as mais variadas aplicabilidades do mercado. Para a definição de um framework em um projeto, é necessário principalmente a boa definição do objetivo do software e as utilidades e facilidades que o framework pode-lhe prover durante todo o ciclo de vida do produto. 

Frameworks Back-end 

Com o objetivo de auxiliar a definição de um framework na criação de um projeto de software, abaixo será listado alguns dos mais reconhecidos Frameworks do mercado para o desenvolvimento Back-end, para as mais variadas linguagens. 

Django

Django 

Django é um framework open source baseado na linguagem python que tem um intuito de criar rapidamente aplicações web altamente escaláveis com o máximo de segurança possível, provendo uma arquitetura semelhante ao mvc, o mtv(model-template-view), hoje ele é um dos frameworks mais populares em desenvolvimento phyton junto com o Flask. 

Spring Framework

Spring

O Spring é um framework da linguagem Java desenvolvido inicialmente para abstrair a usabilidade do kit de desenvolvimento JEE(Java-enterprise-Edition), focado principalmente na abstração da criação de objetos, conexões(como banco de dados) ou arquivos de sistema, proporcionando um melhor gerenciamento dessas questão deixando o foco do desenvolvedor para o desenvolvimento da regra de negócio. 

Ruby on Rails

Rails 

Ruby on Rails é um framework Open Source para linguagem Ruby, foi um dos pioneiros no ambiente de frameworks web mudando os padrões do desenvolvimento web e inflamando da participação da comunidade, focado para desenvolver sistemas do zero ajudando principalmente na parte de configuração e na criação de interfaces como CRUD.  

ASP .Net Core

Asp .Net core

Asp .net core é o framework da Microsoft que está integrada á plataforma open source .net core, que traz versatilidade e agilidade para o desenvolvimento e implementação por herdar a estrutura de multiplataforma do .net core, aprimorando ainda mais essa característica por trazer opções como gerar o código binário para outro sistema, por exemplo, gerar o código binário para um sistema Linux a partir de um sistema Windows com a mesma facilidade e eficácia se estivesse gerando para o mesmo sistema Windows.

Express Js

Express

Express é um framework para o ambiente nodeJs, com o foco de facilitar tratamento de requisições e gerenciamento de rotas, o framework base do Express é bastante minimalista e simples porem é possível adquirir pacotes de middlewares (Tratativas de requisição) de terceiros para as mais variadas funcionalidades.

Resultado de imagem para laravel logo
Laravel Framework

Laravel

Laravel é um framework de desenvolvimento rápido para PHP, livre e de código aberto. Cujo o principal objetivo é permitir que você trabalhe de forma estruturada e rápida facilitando o gerenciamento de rotas e criação de templates, porem como outros frameworks ele não é considerado muito flexível.

Conclusão

Todo framework tem suas qualidades e possíveis defeitos porem para ver o valor e usabilidade de um framework todo o ambiente e a situação atual deve ser analisada, mas como pontos gerais o benefício de um framework e a simplificação na codificação e uma curva possivelmente menor de aprendizado, contra os defeitos de depender do framework de uma maneira geral e se o framework não for o ideal para sua aplicação, ela poderá perder um desempenho considerável em seu funcionalidade.

Links Relacionados

Autor: Matheus Maciel

APIs para trabalhar com interfaces de voz

O recurso mais atraente das interfaces de conversação é a facilidade em que o usuário possui ao utilizar computadores, smartphones, smartv entre outras inúmeras tecnologias onde a Inteligência Artificial de conversação pode ser implementada. Para estas interfaces deverão ser criados modos de interação de fácil operação, já que por meio do recurso de fala o usuário poderá ter maior liberdade para execução de outras tarefas que exijam a manipulação de entradas de dados de forma convencional e ainda, com o uso de sistemas de síntese de fala o usuário poderá receber informações de forma direta e objetiva.

Uma interface de API de voz oferece o privilégio de interagir com as máquinas em termos humanos. Pode- se dizer que é uma mudança de paradigma das comunicações anteriores. Ela permite que o usuário diga ao software o que fazer, assim, trazendo uma maior inclusão para pessoas com deficiência sendo elas visuais, locomotoras, dentre outras e até mesmo para quem busca uma maior automação dos seus aparelhos.

A área de IA com interface de conversação tem estado em constante alta, nas últimas cinco décadas, sendo considerada uma tecnologia auxiliar de importante avanço com uma melhor comunicação Homem-Máquina. Entretanto, anteriormente não era vista como uma forma confiável de comunicação. Isto porque a capacidade de processamento existente não era suficiente para fazer reconhecimento de fala em tempo real.

As APIS com interface para comando de voz

Com o grande avanço da tecnologia de IA de conversação, pode-se citar algumas APIs principais.

Alexa Voice Service (AVS)

Dispositivos com a Alexa

O Alexa é o serviço de voz criado pela Amazon em 2014 com base em nuvem que se conecta com o Amazon Echo, uma nova categoria de dispositivo da varejista online que foi projetado para se adequar a comandos da sua voz. O Alexa Voice Service (AVS) é o conjunto de serviços da Amazon construído em torno de seu assistente de IA controlado por voz para uso doméstico e outros ambientes. O AVS foi introduzido pela primeira vez com o Echo, o alto-falante inteligente da empresa, que permite a interação por voz com vários sistemas no ambiente e online. O Alexa está disponível para um número cada vez maior de outros dispositivos, incluindo smartphones, tablets e controles remotos.

Ele fornece um conjunto de recursos internos, chamados de habilidades, sendo elas, tocar músicas de vários provedores, responder perguntas, fornece previsões do tempo e consultar a Wikipedia. O Hurricane Center, por exemplo, é uma habilidade do Alexa que fornece informações constantemente atualizadas sobre sistemas de tempestades, com base em dados de agências governamentais. Existe também Virtual Librarian é essencialmente um mecanismo de recomendação que sugere livros, com base em indicações de prêmios, listas de best-sellers e análises de usuários. O Alexa Skills Kit , um kit de desenvolvimento de software ( SDK ), é disponibilizado gratuitamente para desenvolvedores e as habilidades estão disponíveis para download instantâneo na Amazon.com

Sendo totalmente integrado ao ambiente de comércio eletrônico da Amazon, o que significa que torna as compras rápidas e simples. O sistema pode operar como um hub de automação residencial, permitindo ao usuário controlar sistemas de aquecimento e iluminação, por exemplo. O Alexa também se conecta a serviços de mídia de streaming on-line e suporta If This Then That ( IFTTT ).

O sistema de inteligência artificial está disponível no Brasil a partir desse ano de 2019, onde possui 3 tipos de caixas de som com os recursos da Alexa.

Cloud Speech-to-Text

Cloud Speech-to-Text

O Cloud Speech-to-Text permite a fácil integração das tecnologias de reconhecimento de fala do Google nos aplicativos do desenvolvedor. Com ele os desenvolvedores convertem áudio em texto ao aplicar modelos de rede neural avançados em uma API fácil de usar. A API reconhece 120 idiomas e variantes para oferecer suporte à sua base de usuários global. Ele permite ativar o comando e o controle de voz, transcrever áudio de call centers e muito mais. Com a tecnologia de machine learming do Google essa API processa streaming em tempo real ou de áudios pré gravados, ou seja, ela retorna o texto no momento em que ele é reconhecido. Sendo possível a analise de áudios de curta ou longa duração

O Speech-to-Text tem três métodos principais para realizar o reconhecimento de fala. Eles estão listados abaixo:

O reconhecimento síncrono (REST e gRPC): envia dados de áudio para a API Speech-to-Text, executa o reconhecimento nesses dados e retorna os resultados depois que todo o áudio foi processado. As solicitações de reconhecimento síncrono são limitadas a dados de áudio de até um minuto de duração.

O reconhecimento assíncrono (REST e gRPC): envia dados de áudio para a API Speech-to-Text e inicia uma operação de longa duração. Usando essa operação, é possível pesquisar periodicamente resultados de reconhecimento. As solicitações assíncronas para dados de áudio de qualquer duração de até 480 minutos.

O reconhecimento de streaming (somente gRPC): realiza reconhecimento em dados de áudio fornecidos em um stream gRPC bidirecional. As solicitações de streaming são projetadas para fins de reconhecimento em tempo real, como captura de áudio ao vivo de um microfone. O reconhecimento em streaming oferece resultados provisórios enquanto o áudio está sendo capturado, permitindo que o resultado apareça, por exemplo, enquanto um usuário ainda está falando.

Siri

Logo Siri

A Siri é um aplicativo inteligente que auxilia o usuário a realizar tarefas em um aparelho por meio do recurso de voz. Trata-se de um aplicativo no estilo assistente pessoal utilizando processamento de linguagem natural para responder perguntas, executar tarefas e outras atividades. Por possuir uma tecnologia mais refinada, a Siri não necessita que o usuário diga palavras predeterminadas ou comandos específicos, já que a assistente consegue compreender frases de forma precisa.

Fundada por Dag Kittlaus, Cheyer Adam, Tom Gruber e Norman Winarsky, a Siri teve seus primeiros testes realizados em 2007, foi adquirida pela Apple em abril de 2010, porém, apenas começou a funcionar em 2011.  A Siri agora conta com o aplicativo de atalhos embutido no IOS 13. A visualização aprimorada da galeria permite fornecer atalhos pré configurados, esses atalhos também podem ser combinados com ações de outros aplicativos.

Cortana

Inicialização Cortana

A Cortana é um assistente pessoal digital que promete auxiliar os usuários de um sistema computacional a realizar diversas atividades. Não se pode visualizar a Cortana como um simples assistente que permite a realização de atividades através do comando de voz, apesar de essa parecer ser sua principal finalidade. Usado corretamente, esse assistente pode ajudar seu usuário a se manter sempre bem informado, permitindo-o realizar diversas atividades através de dispositivos e plataformas distintas.

Muito além do que serviços de lembrete, ou até mesmo uma interface interativa de pesquisa, a Cortana fornece uma arquitetura que permite facilmente a incorporação de outras atividades ou serviços, melhorando assim sua experiência. Trata-se de um recurso capaz de aprender com o usuário para melhor servi-lo.

Ela permite que o usuário interaja com o computador por qualquer uma de suas interfaces. Caberá ao desenvolvedor, dependendo do contexto, determinar qual ação será desencadeada, ou seja, o usuário pode interagir via texto ou voz e o desenvolvedor decidirá como irá tratar cada uma das interfaces de entrada. Além de prático e fácil de utilizar, a Cortana é compatível com qualquer versão do Windows 10 ou superior, além do Android.

Para o desenvolvedor, é possível a integração das funcionalidades da Cortana às suas aplicações, podendo essa interação ocorrer através de solicitações explícitas ou até mesmo com base no contexto do usuário (análise de seu comportamento).

Ao desenvolvedor, a Cortana oferece também suporte a uma série de ações pré-determinadas, sendo necessário somente fornecer à API uma ligação capaz de indicar como sua aplicação deve responder/completar a ação. O desenvolvedor pode, entretanto, a qualquer momento personalizar uma ação pré-definida (se julgar necessário), buscando assim atender às necessidades de sua aplicação.

Watson Text-to-Speech e Speech To Text

Watson

O Watson possui alguns serviços para integrar texto e voz como o Text to Speech e o Speech to Text.

Onde o Text to Speech transforma um texto em voz, o Speech to Text transforma voz em texto. Esses serviços são basicamente simples e diretos de utilizar e não necessitando de nenhum treinamento adicional. Para a utilização basta instanciá-los no Bluemix (plataforma em nuvem desenvolvida pela IBM) e escolher o idioma. No caso do Text to Speech, dependendo do idioma, também é possível escolher a voz do interlocutor (se masculino ou feminino). Está disponível em 27 vozes (13 neurais e 14 padrão) em 7 idiomas. As vozes selecionadas agora oferecem recursos de Síntese expressiva e transformação de voz. O uso geral desses serviços conta com um vocabulário baseado no diálogo cotidiano. Para alguns tipos de aplicação, esse vocabulário pode não ser suficiente e requerer refinamentos que o ajustem ao domínio da aplicação. Nesse caso, é possível ajustar o modelo de acordo com os termos e pronúncias utilizados naquele domínio.

Com isso pode se verificar a importância que as APIs vem possuindo nos últimos anos, onde podemos ver essa inteligência tomando amplamente destaque no mercado. Com este artigo foi possível identificar algumas das principais e mais desenvolvidas APIs de Voz, mais utilizadas em equipamentos do dia a dias como smartphones e smartvs.

O reconhecimento de voz contínuo é o mais complexo e difícil de ser implementado, pois deve ser capaz de lidar com todas as características e vícios de linguagem, como regionalidade e gírias tão utilizadas frequentemente, de forma natural. Vale ressaltar que as APIs citadas acima trabalham de forma online, sendo assim, para trabalhos futuros estarão direcionadas as pesquisas para APIs que utilizam o reconhecimento de voz de forma offline, para assim, trazer uma maior automação dos equipamentos mesmo desprovidos de internet no momento.

Autora: Laís Fochezatto Sabedot

Referências

Y. Dong and L. Deng, Automatic Speech Recognition. London: Springer-Verlag, 2015.

V. F. S. Alencar. 2005. Atributos e Domínios de Interpolação Eficientes em Reconhecimento de Voz Distribuído. Master’s thesis. Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, Brasil.l

https://developer.apple.com/siri/

https://docs.microsoft.com/pt-br/cortana/skills/

https://conversation-demo.ng.bluemix.net/

https://cloud.google.com/speech-to-text/

https://alexa.github.io/avs-device-sdk/

Flutter Framework: O que é e como funciona

O presente artigo aborda uma breve introdução sobre o que é, e como funciona o Flutter Framework, com o objetivo de demonstrar essa ferramenta de desenvolvimento de aplicativos mobile que está sendo utilizada por alguns desenvolvedores na indústria de software atualmente. Ao longo do trabalho será apresentado a história, funcionalidades e também a arquitetura do Flutter Framework.

Palavras-chave: Flutter. Framework. Mobile. Android. IOS

INTRODUÇÃO

Os aplicativos móveis estão tornando-se cada vez mais populares e presentes na vida das pessoas. O número de downloads desses aplicativos tem apresentado forte crescimento e é notável o aumento do interesse das pessoas por mobilidade. Isso está ligado principalmente à constante evolução dos dispositivos móveis, que tem apresentado capacidade de processamento e armazenamento cada vez maiores. Android e iOS predominam no mercado de sistemas operacionais para smartphones, os dispositivos móveis mais utilizados atualmente. A Tabela 1 demonstra que as vendas globais de smartphones equipados com Android no primeiro trimestre de 2018 representaram a imensa maioria, chegando a 85,9% do total, segundo dados da Gartner (2018). Os outros 14,1% são de smartphones equipados com iOS. Todos os outros sistemas operacionais somados registraram vendas pouco significativas.

Tabela 1Relação de compra de celulares

Fonte: GARTNER, 2018

Com a ascensão na venda de smartphones e a consolidação do Android e iOS como sistemas operacionais predominantes, há uma necessidade cada vez maior no desenvolvimento de aplicativos para atender a demanda das pessoas nas mais diferentes áreas, devido a isso ferramentas de desenvolvimento de software cada vez mais modernas estão sendo criadas e utilizadas pelos programadores ao redor do mundo, como exemplo temos o presente tema desse artigo o Flutter Framework.

FLUTTER FRAMEWORK

O Flutter2 é o SDK de código aberto do Google que permite o desenvolvimento de aplicativos que executem tanto no Android quanto no iOS a partir de uma única base de código. Seu objetivo é permitir que os desenvolvedores criem aplicativos de alta performance com uma experiência nativa em ambas as plataformas.

Seu fluxo de desenvolvimento é orientado ao design e os widgets são os blocos básicos da interface de usuário de um aplicativo Flutter. Assim, existem widgets para definir elementos estruturais como botões, menus e etc. Elementos de estilo como fontes, cores e formatos de texto. Aspectos de layouts como margens e espaçamentos, além de widgets com design específico para a plataforma e iOS. Além disso, o Flutter foi projetado para facilitar a criação de novos widgets e a personalização dos existentes. Os widgets formam uma hierarquia baseada na composição onde cada um herda propriedades de seu superior. A Figura 1 demonstra essa hierarquia.

Figura 1 – Hierarquia dos Widgets

Fonte: https://flutter.io/technical-overview/

O que torna o Flutter diferente da maioria das outras opções para criar aplicativos móveis, é que ele não utiliza os widgets fornecidos com o dispositivo. Em vez disso, utiliza o seu próprio mecanismo de renderização de alto desempenho para desenhar widgets. A Figura 2 representa a arquitetura do Flutter, que é composta pela engine, uma camada fina de código C/C++, e pelo framework, organizado em uma série de camadas, cada uma construída sobre a anterior e onde está implementada a maior parte de seu sistema (composição, gestos, animação, estrutura, widgets). Essa implementação é feita em Dart3, uma linguagem de programação moderna, concisa e fortemente tipada e orientada a objetos.

Figura 2 – Arquitetura do Flutter

Fonte: https://flutter.io/technical-overview/

Autor: Vinicíus Braga

REFERÊNCIAS

ANDROID. Android Platform Architecture. Disponível em: <https: //developer.android.com/guide/platform/>.

GARTNER. Worldwide Sales of Smartphones Returned to Growth in First Quarter of 2018. Disponível em: <https://www.gartner.com/en/newsroom/pressreleases/2018-05-29-gartner-says-worldwide-sales-of-smartphones-returned-to-growthin-first-quarter-of-2018>.

FLUTTER. Editor. 2018. Disponível em: <https://flutter.io/docs/get-started/editor>.

Aplicativos Nativos ou Multiplataforma? Eis a questão…

Neste artigo você vai entender o que são Aplicativos Nativos e Multiplataforma, quais suas vantagens e desvantagens no universo do desenvolvimento mobile.

Todos os dias, inúmeros apps surgem com a finalidade de resolver problemas, atender necessidades ou de simplesmente divertir seu público.

Os aplicativos móveis já são uma mania, com eles podemos realizar tarefas de forma muito ágil, como a de pedir comida, um táxi, controlar nossos gastos, acessar nossa conta bancária, realizar compras, vendas, enviar mensagens e muitas outras funcionalidades que deixam nossa vida mais prática.

Os smartphones e os tablets foram os responsáveis por nos tornar dependentes dessa tecnologia. Eles são os propagadores dos aplicativos “ferramentas” mais utilizados atualmente no mundo digital. Com certeza, permanecerão por muito tempo no topo dos itens mais desejados pelo público em geral.

Devido a popularização dos tablets e smartphones, as empresas foram obrigadas a criar aplicativos mais “inteligentes” e de uma maneira mais rápida. A fim de resolver esse problema, cada empresa criou seu próprio sistema operacional, loja de aplicativos e canais de desenvolvimento tentando obter uma maior fatia desse mercado.

“Afinal, se cada empresa tem seu sistema operacional, podemos dizer que o desenvolvimento, neste caso, será de Aplicativos Nativos?”

A resposta para essa pergunta é: “Sim”, pois os sistemas nativos são os que são criados para uso exclusivo da plataforma determinada pela empresa do ramo móvel.

Os apps nativos necessitam de desenvolvedores especialistas em cada plataforma ou até desenvolvedores que conhecem várias plataformas.

A principal vantagem é que neste caso, o desenvolvedor possui acesso a todos os recursos do dispositivo (acelerômetro, giroscópio, geolocalização, etc..) além de obter um bom desempenho da aplicação.

Como o desenvolvimento é voltado especificamente para cada plataforma, explora muito bem toda UX/UI seguindo a padronização de interface do usuário.

A principal desvantagem dos apps nativos corresponde ao custo do desenvolvimento que é bastante elevado, pois necessita de um desenvolvedor específico para cada plataforma. Além disso, o tempo de desenvolvimento e o prazo de entrega final se tornam maiores, pois todo trabalho terá que ser feito novamente para cada plataforma.

Exemplos de aplicativos nativos: Facebook Messenger, foi desenvolvido para atender recursos dos sistemas operacionais Android e IOS. WhatsApp, famoso aplicativo de mensagens instantâneas, foi vendido ao Facebook por US$ 16 bilhões e faz parte da vida de quase todas as pessoas do mundo todo.

 “E quanto ao desenvolvimento multiplataforma, para que serve?”

Quanto mais sistemas operacionais diferentes, maior será o esforço, tempo e custo necessários para desenvolver um app que atenda a todas as plataformas existentes. Nestes casos, os aplicativos Multiplataformas se destacam.

Os apps Multiplataforma tem uma grande vantagem para o desenvolvedor que é a de escrever em um único código fonte para várias plataformas. Isto é, tem um maior controle sobre o código fonte, qualquer alteração será realizada simultaneamente em todas as plataformas.

Eles acessam recursos nativos do dispositivo através de programas como o Cordova e Phonegap que servem basicamente para criar um app nativo.

Respeita também a UX/UI do sistema operacional do dispositivo, porém tem a desvantagem de utilizar um navegador embutido no aplicativo para demostrar ao usuário a aplicação.

Outra desvantagem é de que as API´s nativas demoram a ser integradas nos apps multiplataformas, portanto, as aplicações têm uma demora maior no quesito da utilização dos novos recursos dos dispositivos.

O custo do desenvolvimento dos apps multiplataforma é bem reduzido, bem como o tempo de desenvolvimento, pois em um único código é possível gerar um app nativo para diferentes plataformas.

Já que o código fonte é único, o desenvolvedor não precisa se especializar em cada plataforma, pois nessa forma não é necessário a utilização de IDE específica.

Exemplos de aplicativos Multiplataforma: Untappd, é uma rede social e de check-in para cervejeiros, onde os usuários encontram cervejarias e bares pelo mundo todo. MarketWatch oferece aos usuários notícias comerciais e informações sobre o mercado financeiro.

 Conclusão

O desenvolvimento Multiplataforma está cada dia mais evoluído, a ponto de já apresentar mais vantagens do que desvantagens. Não quer esta tecnologia seja mais vantajosa que a nativa, pois cada uma delas tem particularidades distintas. Antes de começar um desenvolvimento, deve-se analisar com maior rigor se a mesma atenderá todas as exigências da aplicação, pesar os objetivos futuros bem como a disponibilidade de recursos financeiros da empresa.

Autor Jean Carlos Wieczorek

Artigo do Seminário de Engenharia de Software – 2018/2

 

Material Design – O que é e para que serve esse sistema Google

Material Design nasceu da coleta de informações e conhecimentos que se transformaram em diretrizes para aprimorar a relação homem-máquina, isso tornou-se em um sistema de desenvolvimento para interface do usuário, definido por um conjunto de propriedades que qualquer objeto dentro do sistema deve aderir.

É chamado Material, pois a ideia é trazer um material sólido para a interface virtual, todos os objetos têm uma altura definida, essa altura ajuda na interação com o usuário dando dicas visuais e também é responsável pelas sombras geradas, assim dando um efeito mais natural aos olhos.

As diretrizes do material design não só criam uma experiência prazerosa visualmente, mas também proveem consistência através dos dispositivos e aplicações e dicas do que virá a acontecer na tela.

Pense como um Engine de um jogo, onde toda a física, texturas, iluminação, animações são delimitadas pelas propriedades da Engine. O mesmo vale para o Material Design. Existe um ambiente 3D onde todos os elementos funcionam de formas restringidas pelas propriedades e diretrizes definidas pela Google.

No Material Design existem as propriedades físicas, propriedades de transformação e propriedades de movimento, estas propriedades são combinadas para temos componentes com um comportamento parecido com papel que pode mudar dinamicamente dependendo do seu uso.

Limitações:

Existem algumas limitações impostas pela Google que devem ser respeitadas:

  • Materiais são sólidos e não podem atravessar um ao outro
  • Materiais não podem ser curvados ou dobrados
  • Todos os materiais tem a mesma espessura, definida pelo Google como 1DP (medida utilizada no desenvolvimento Android, que diferente do pixel, vai apresentar o mesmo resultado em diferentes resoluções).

Sombra:

A Sombra é uma das maneiras mais rápidas de identificarmos onde um objeto se localiza num espaço 3D, ou seja, a distância relativa entre eles. A sombra também nos ajuda a identificar movimento, que como estamos em um ambiente 3D pode ser relacionada a altura do material.

Movimentos:

No Material Design movimentos nos trazem um senso de objetivo. Objetos podem ser movidos livremente, e especialmente em relação a altura como mencionado acima. Essa altura é bastante utilizada como uma dica visual para indicar o local de interação do usuário. Isso é implementado usando “Dynamic Elevation Offset“, que é a posição de destino do objeto relativo a posição de repouso dele mesmo.

Por exemplo todos os componentes que sobem num clique, tem a mesma mudança de elevação relativos aos suas posições de repouso. O objetivo é que todos os movimentos do mesmo tipo possam ser agrupados, gerando consistência.

Animações:

O Google identificou que mudanças abruptas de velocidade ou direção são brutas e causam distrações indesejadas. Com isso muitas das animações contam com um processo de aceleração, e para se tornar mais próxima ao mundo real se faz uso de aceleração assimétrica.

Aceleração assimétrica pode indicar o ‘peso’ de um objeto. Objetos menores ou mais leves podem se movimentar mais rápido porque eles precisam de menos “força”, e objetos mais pesados podem demorar um pouco para acelerar porque precisam de mais “forca”.

A transição entre dois estados visuais deve ser clara, suave e de pouco esforço. Uma transição bem feita indica ao usuário onde ele deve focar a sua atenção. O Google chama isso de “Visual Continuity”, tem as seguintes diretrizes para ser consideradas:

  • Onde o usuário deve focar, quais elementos e movimentos apoiam esse objetivo.
  • Transições devem estar conectadas visualmente, através de elementos persistentes e cor.
  • Usar os movimentos com precisão, isso traz clareza e suavidade pra transição.

Quando fazendo uma transição o Material Design considera a ordem o timing dos elementos, isso transmite qual conteúdo é mais importante, criando um caminho para o olho do usuário seguir, o Google chama isso de ” Hierarchical Timing” e deve ser sempre usado para direcionar a atenção do usuário e não deixar todas as transações ocorrerem ao mesmo tempo sem indicativos do que é mais importante.

Quando as transações de elementos são coordenadas, isso cria uma facilidade para o usuário entender o aplicativo, os destinos dos elementos na transação devem fazer sentido e ser o mais ordenados possível, isso é chamado de “Consistent Choreography”. Para obter esse resultado é indicado evitar movimentos conflitosos ou caminhos sobrepostos, a altura em que os objetos de movimentam e porquê fazem isso e indicam até visualizar se o traçando o caminho de todos os objetos movimentados obtemos uma imagem limpa e organizada.

Material Design imita a realidade, traz um sistema de design simples para um ambiente digital 3D com parâmetros e diretrizes bem definidos. Intuitivamente transmite como uma interface deveria funcionar se fosse feita de papel digital. Essa intuição auxilia no rápido entendimento e reconhecimento da interface, com o menor esforço do usuário.

Para saber mais sobre o Material Design e começar a utilizado segue o site oficial, que conta com uma vasta documentação e representações visuais para melhor entender alguns destes conceitos: https://material.io/

Também interessante ver dos próprios criadores alguns comentários da criação e desenvolvimento, segue vídeo de apresentação do Google sobre o tema: https://www.youtube.com/watch?v=rrT6v5sOwJg

Autor: Mauricio Calgaro

Rest API

A Representational State Transfer (REST), em português Transferência de Estado Representacional, é um estilo de arquitetura que define um conjunto de restrições e propriedades baseados em HTTP. Neste artigo, abordaremos alguns conceitos básicos sobre esta arquitetura:

 

O QUE É API?

O acrônimo API que provém do inglês Application Programming Interface (Em português, significa Interface de Programação de Aplicações), trata-se de um conjunto de rotinas e padrões estabelecidos e documentados por uma aplicação A, para que outras aplicações consigam utilizar as funcionalidades desta aplicação A, sem precisar conhecer detalhes da implementação do software.

Desta forma, entendemos que as APIs permitem uma interoperabilidade entre aplicações. Em outras palavras, a comunicação entre aplicações e entre os usuários.

 

O QUE É REST?

REST significa Representational State Transfer. Em português, Transferência de Estado Representacional. Trata-se de uma abstração da arquitetura da Web. Resumidamente, o REST consiste em princípios/regras que, quando seguidas, permitem a criação de um projeto com interfaces bem definidas. Desta forma, permitindo, por exemplo, que aplicações se comuniquem com clareza.

 

ORIGEM DO REST

O HTTP é o principal protocolo de comunicação para sistemas Web, existente há mais de 20 anos, e em todo esse tempo sofreu algumas atualizações. Nos anos 2000, um dos principais autores do protocolo HTTP, Roy Fielding, sugeriu, dentre outras coisas, o uso de novos métodos HTTP. Estes métodos visavam resolver problemas relacionados a semântica quando requisições HTTP eram feitas.

Estas sugestões permitiram o uso do HTTP de uma forma muito mais próxima da nossa realidade, dando sentido às requisições HTTP.

 

EM RESUMO

  • REST é abreviatura de Representational State Transfer;
  • É uma outra forma de desenvolver WebServices
  • REST é um conjunto de princípios que definem como Web Standards como HTTP devem ser usados
  • Aderindo aos princípios REST, teremos um sistema que explora a arquitetura da Web nosso beneficio

 

MÉTODOS HTTP

Abaixo, os métodos padrões para a execução de requisições HTTP, em consumo de serviços REST:

 

  • PUT (INSERIR)

Semelhante ao método POST, a ideia básica do método PUT é permitir a atualização de um recuso no servidor.

 

  • DELETE (EXCLUIR)

Como você já deve estar imaginando, o método DELETE é utilizado com o intuito de remover um recurso em um determinado servidor.

 

  • GET (CAPTURAR)

O método GET é utilizado quando existe a necessidade de se obter um recurso. Ao executar o método GET sob um recurso, uma representação será devolvida pelo servidor.

 

  • POST (ATUALIZAR)

Utilizamos o método POST quando desejamos criar algum recurso no servidor a partir de uma determinada representação. Exemplo disso é quando fazemos a submissão de algum formulário em uma página Web.

 

O QUE SIGNIFICA RESTFUL

Existe uma certa confusão quanto aos termos REST e RESTful. Entretanto, ambos representam os mesmo princípios. A diferença é apenas gramatical. Em outras palavras, sistemas que utilizam os princípios REST são chamados de RESTful.

 

REST: conjunto de princípios de arquitetura

RESTful: capacidade de determinado sistema aplicar os princípios de REST.

 

CONCLUSÃO

Neste artigo, eu procurei oferecer um rápida introdução sobre os conceitos por trás do REST, a arquitetura da Web. É extremamente importante entender o conceito da arquitetura Restful para evitar perda de tempo na construção da API, facilitando a vida de outros usuários que podem estar do outro lado do mundo tentando consumir a sua API. É muito importante evitar que suas APIS sofram alterações constantes e mudam de versão a todo momento, assim dificultando ainda mais a comunicação. Por isso é bom planejar e projetar bem antes de disponibilizá-la.

 

Autor Jonatan Maicon da Costa

 

Referências:

Baseado em,

https://imasters.com.br/front-end/entendendo-como-funciona-o-restful-de-verdade/

https://www.infoq.com/br/articles/rest-introduction

https://becode.com.br/o-que-e-api-rest-e-restful/

http://blog.algaworks.com/4-conceitos-sobre-rest-que-qualquer-desenvolvedor-precisa-conhecer/

UX Design

Uma mudança na forma da visão fornecedor-cliente pode definir futuro de crescimento ou fechamento de um empresa.

Muitas pessoas acreditam que UX Design está ligado diretamente a TI, mas esse é um mito que deve ser quebrado, a UX Design eleva o padrão de experiencia do usuário, podendo ser de um simples uso de um fósforo ou de um complexo sistema web.

O que é UX ?

User Experience, em português, experiência do usuário. Essa sigla referência o motivo, quem, como  e onde é utilizado um sistema ou objeto, que pode ser qualquer coisa.


“User Experience é tudo! É a forma com que você sente o mundo, é a forma como você experiencia a sua vida, é a forma como você experiencia um serviço, um aplicativo, um sistema de computador. Mas é um sistema. É tudo!”

— Don Norman, criador do termo “UX (User Experience)”

O objetivo principal é melhorar de forma continua a usabilidade e a experiencia que o usuário tem com o produto.

É importante ressaltar que UX Experience é uma área multidisciplinar que engloba conhecimentos de áreas diversas, então é muito comum ter conceitos de psicologia atrelado a tecnologia no momento da análise e da melhoria do produto que dever ser algo feito de forma continua.

UI Design ou UX Design?

Esses dois termos são suscetíveis a enganação e erros, acreditar que UX Design e a Interface do sistema estão ligados esta em partes correto, pois para ter uma boa experiencia, é necessário uma interface amigável.

Mas achar que UX Design é relacionado só a interface é um erro, quando falamos de interface, precisamos falar também de UI Design, que é responsável por toda a lógica visual do projeto. Como os elementos de interface são de fato algo muito importante para a experiência do usuário, podemos afirmar com propriedade que o UI Design é um dos muitos elementos que compõem o UX Design.

Usabilidade

A usabilidade é um ponto muito importante na UX, diferentemente do que as pessoas acreditam, ela não está só relacionada com a facilidade que o sistema traz, de fato esse é o ponto menos importante. O foco principal é como ele pode ser usado. Todo produto no mercado hoje em dia precisa de um motivo para existir, logo se ele não tem motivo ele desaparece.

Para ter um sistema de sucesso, o desenvolver ou engenheiro de software precisa usar a empatia para entender o usuário, o desenvolvedor precisa saber que o sistema é feito para uso do usuário. Uma técnica que pode ser usada é definir um avatar, que seria o tipo de usuário que vai usar o sistema, qualificações, idade, conhecimento. A partir dos dados coletados é possível criar um sistema de acordo com o perfil do usuário.

É importante ressaltar mais um vez que a interface também é importante, criar algo simples e intuitivo, que mostre onde o usuário está através de breadcrumbs ou um título que cada página é muito importante.
Mesmo após o sistema criado as melhorias nunca devem acabar, começar com o que tem é o indicado, mas aos poucos ir percebendo em qual nível está a experiencia do usuário,  e criar novas funções para facilitar o acesso a informação e a usabilidade do sistema.

Conclusão

User Design chegou a mercado como uma forma de reunir informações de todos os aspectos  entre a interação do usuário com a empresa, sistema ou produto. Ele sem dúvida estuda todas as maneiras de como deixar o usuário satisfeito de uma forma que atenda todas as necessidades e interesses do mesmo. Ressalto que a verdadeira experiência do usuário não é somente oferecer ao cliente o que ele quer, muito pelo contrário, o cliente normalmente não sabe o que procura, então é responsabilidade da empresa perceber da melhor maneira as necessidades reais do usuário e deixa-los satisfeitos com a experiência obtida.

Esse conceito de perceber a necessidade do cliente, sem que ele fale, ou mesmo saiba o que precise, deve ser feito levando em consideração aspectos como a facilidade de uso, eficiência e utilidade para propor a melhor solução para um determinado problema. Para resolver e criar soluções para o problema, é necessário que a empresa tenha uma visão ampla de todas as possibilidades e disciplinas que envolvem o problema.

Portanto, seguindo todas essas diretrizes, é possível trabalhar o lado emocional do usuário, melhorar a sua experiência com o sistema, e assim garantir o sucesso do projeto.

Fonte: https://www.raffcom.com.br/blog/o-que-e-ux-design/

Autor: Felipe Tartarotti

 

Utilizando a API do Google Maps em Aplicativos Android

Maps

Neste artigo irei explicar como podemos utilizar e algumas funções básicas da API do Google Maps. Irei mostrar como preparar o ambiente para utilização do mesmo, neste caso utilizaremos o Android Studio. Também aprenderemos como conseguir uma chave para utilização da API.

Sem sombra de dúvidas a Google é uma das empresas pioneiras em tecnologia e uma das mais lembradas no assunto. Em 2005 a Google lançou sua primeira versão do que conhecemos hoje como Google Maps, que é considerado a ferramenta de mais utilizada nos dias atuais. E a cada atualização a ferramenta tem se mostrado cada vez mais poderosa para os usuários. Hoje mostrarei os pequenos passos para implementação e uma breve introdução da utilização da sua API para dispositivos Android. Continue lendo “Utilizando a API do Google Maps em Aplicativos Android”

Firebase: O Que é e Como Funciona

Criar um aplicativo de sucesso não é fácil. Além de fazer o aplicativo funcionar da forma desejada em vários tipos de dispositivos diferentes, o desenvolvedor deve pensar na infraestrutura, possíveis falhas, atualizações que não causem novos problemas, segurança nas transferências de dados, e tudo isso enquanto tenta alcançar o maior número de usuários possível e garantir uma experiência satisfatória para os mesmos. Pensando nisso, foi construído o Firebase, uma solução que possuí todas as ferramentas necessárias para a construção de um aplicativo de sucesso.

Continue lendo “Firebase: O Que é e Como Funciona”

IDE’s Apache Cordova: Intel XDK, PhoneGap e Evothings

Devido ao crescimento do uso de smartphones e outros dipositivos móveis, a demanda de desenvolvimento nesse seguimento cresceu enormente, logo programadores habituados a softwares e sistemas para desktops foram migrando aos poucos para essa categoria. O apache cordova acabou facilitando essa transição, com desenvolvimento nas linguagens web (HTML, CSS e Javascript) diversos programadores viram nele uma boa saída para programar para os novos dispositivos.

Continue lendo “IDE’s Apache Cordova: Intel XDK, PhoneGap e Evothings”