porLuis Augusto Moretto

Insights e controle de erros com o Firebase Crash Reporting

bugs firebase crash

Uma das grandes problemáticas no desenvolvimento de aplicativos Android é a gama de fornecedores e versões disponíveis no mercado. Esse cenário faz com que um APP que foi testado e desenvolvido em um MotoG Xt-1078 por exemplo, apresente problemas em um outro dispositivo como Sansumg, Nexxus, Asus….. Um pesadelo para o processo de desenvolvimento!

Ou seja é necessário testar o APP no maior número possível de dispositivos e versões do Android. Como coletar os dados dos incidentes de erros em dispositivos não testados?

Para tratar essa questão, foi implementado no Citywatch.com.br o Firebase Crash Reporting. Com a ferramenta é fácil ter insights sempre que seu aplicativo apresentar uma falha.

O Crash Reporting cria relatórios de bugs detalhados no aplicativo. 

Os bugs são agrupados em conjuntos similares . São organizados de acordo com a gravidade (fatal ou não fatal).

Além dos relatórios automáticos, você pode registrar eventos personalizados. Isso ajuda a capturar os defeitos.

Insights no Citywatch

dashboard Firebase Crash ReportNa imagem do Crash Report do Citywatch.com.br, é possível visualizar que ocorreram 507 erros e 45 usuários afetados.

Os erros são agrupados em 74 tipos diferentes. Pode-se filtrar ainda quais os erros são fatais, ou seja fazem o APP no Android parar de rodar.

Além disso o dashboard fornece métricas para priorizar de forma ágil a correção dos erros. Basta analisar qual o erro fatal impactou mais usuários e em que parte da navegação e das funcionalidades do app ocorreu o incidente.

Sem o Firebase Crash Analytics, o desenvolvedor Android depende do usuário relatar o erro para saber do incidente. Assim os bugs são coletados automaticamente a cada incidente.

Com isso a equipe de desenvolvimento pode analisar o erro, reproduzir e corrigir. Fica muito mais ágil e da uma maior confiabilidade, reproduzir o erro em um emulador com a mesma característica registrada no incidente.

Implementação no Android Studio

Para capturar os erros dentro do APP é necessário adicionar as dependências da API do Firebase.

Na figura abaixo um exemplo de um método com a chamada ao Firebase Crash dentro do Android Studio.Firebase crash

Deixe seu like, cadastre seu email para receber novidades norodapé! Namastê!

porLuis Augusto Moretto

Agilidade no desenvolvimento de Software com o Google Appengine na Arquitetura do Citywatch.com.br

Visão geral do Google Appengine

O Google Appengine é uma plataforma para criação de aplicações nas nuvens adotada na Arquitetura de Software do Citywatch APP. Tal decisão foi embasada na produtividade, qualidade e agilidade que a plataforma propicia ao desenvolvimento de um projeto inovador como o Citywatch.

Permite a hospedagem de sistemas codificados nas linguagens Java, Phyton e PHP.  Tem alta escalabilidade sem a necessidade de gerenciar infraestruturas de alto tráfego. A plataforma oferece rapidez, confiabilidade, escalabilidade, controle de versão e a robustez da infraestrutura do Google no seu projeto!

Ambiente de Desenvolvimento, Homologação e Produção

A ITIL – Information Tecnology Infrastructure Library recomenda como boa prática em projetos de Tecnologia da Informação e Comunicação que a organização disponha de um ambiente de desenvolvimento, homologação e produção.  Os três ambientes devem ter a mesma configuração para que o processo de desenvolvimento, testes e implantação sejam realizados de forma consistente.

appengine escalonamento

Um cenário comum é a necessidade de se ter máquinas distintas (ou virtualizações) para cada um dos ambientes. Em cada estágio, a equipe de projeto implanta a versão correspondente no ambiente destino.

Isso é extremamente complexo, porque requer o conhecimento específico de cada ambiente e sua infraestrutura. Além disso requer um checklist de todas as alterações realizadas no código fonte do projeto para realizar a implantação.

Eu mesmo já cometi erros porque na hora de colocar em produção esqueci um campo do banco de dados… ou faltou um arquivo… sobrescreveu o arquivo errado…. parecia um dia sem fim.. sentimento de angustia começando a bater, gerente com a pergunta clássica: tá pronto?? 😛 Affz :X !#%%EDITORCONTENT%%amp;

Com a plataforma do Google Appengine é extremamente simples para criar estes três ambientes. Basta alterar as configurações do descritor xml dentro do projeto chamado de appengine-web.xml. A propriedade application é o nome do microserviço que vai rodar na plataforma.

Quando não é possível utilizar a mesma base de dados para realizar os testes e o ambiente de produção, deve-se criar um microserviço para cada ambiente. Caso contrário cada ambiente pode ser administrado como múltiplas versões rodando em paralelo na plataforma.

Escalonando e Clusterizando o Serviço

O escalonamento do microserviço dentro da plataforma do Google Appengine é feita no mesmo arquivo descritor da aplicação e da instância. Existem três opções possíveis para o escalonamento:

  1. Escalonamento automático;
  2. Escalonamento básico e;
  3. Escalonamento manual;

Para cada projeto deve ser avaliado os recursos necessários e configurar a infraestrutura de acordo com os requisitos e atributos da qualidade esperados.Na figura acima especifica-se que a instância do microserviço roda em uma infraestrutura b8, com o número máximo de instâncias concorrentes igual a 100 e o tempo de idle é de 10 minutos.

Para ver como funciona a clusterização e balanceamento de carga veja o exemplo do microserviço do Citywatch, assistindo ao video abaixo:

Faturamento

Para utilizar todos os recursos do Google AppEngine é necessário informar o cartão de crédito vinculado a sua conta.  Em estágio de encubação, as Startups não dispões de muitos recursos financeiros para investir em uma infraestrutura robusta, então o Appengine é uma excelente escolha. Você só paga quando começar a ter escala no seu projeto. E pode escalar sob demanda conforme seu público cresce!

Uma funcionalidade bem interessante do sistema de faturamento da infra é a possibilidade de estabelecer um orçamento máximo diário do serviço na nuvem.  Como exemplo abaixo configurei o projeto para um faturamento máximo diário de $0,25 dólares.

faturamento appengine

Gostou? deixe seu like, cadastre seu email e receba novidades. Até a próxima! Namastê!

porLuis Augusto Moretto

Scrum como metodologia de gerenciamento de projetos para gerar valor na sua empresa com agilidade!


scrum

O Scrum é uma metodologia de gerenciamento de projetos de software baseado na premissa ágil. Sua adoção soluciona a questão de longos ciclos de desenvolvimento e incompatibilidades entre os requisitos de um produto e a sua implementação.

Assim a Morettic, buscando entregar software funcionando e que, em curto espaço de tempo gere valor para o cliente, adotou a metodologia Scrum. Neste sentido dentro de nossos processos e em todos os estágios dos projetos valorizamos e promovemos a comunicação e o compartilhamento de informações e do conhecimento.

O objetivo é ter o feedback contínuo do cliente, validando assim nossos deliverables. A cada entrega estamos ajustando as necessidades e melhorando continuamente a qualidade dos produtos e serviços ondemand.

Assista ao vídeo com depoimentos de Luis Augusto Machado Moretto Founder da Morettic e Luiz Fernando Gamba  Diretor da Genimo e compreenda como o Scrum potencializa a geração de resultados e valor.


Para atingir estes resultados, adotamos algumas práticas como:

  1. Stories: Identifica quem é o usuário e o que ele deseja em uma única sentença;
  2. Sprint: Curto ciclos de desenvolvimento com “time box” de 2 a 4 semanas;
  3. Daily Meetings: Reuniões diárias para rever regularmente as melhorias incrementais feitas pela equipe de cada Sprint. Isso aumenta o nível de comunicação entre a equipe desenvolvimento, o cliente e reforça uma visão compartilhada para cada incremento feito;
  4. Dashboard: Painel ou quadro onde todos os stakeholders visualizem e compartilham diariamente as atividades do Sprint;

Junto com estas práticas temos um conjunto de valores que direcionam as pessoas e os processos:

“Indivíduos e interação entre eles mais que processos e ferramentas
Software em funcionamento mais que documentação abrangente
Colaboração com o cliente mais que negociação de contratos
Responder a mudanças mais que seguir um plano”

Como visto o Scrum como metodologia é fácil de aprender mas sua maestria é complexa. Uma característica da metodologia é o sentimento de evolução do projeto que percebido por todos os stakeholders;

Ocorre que no primeiro Sprint de qualquer novo projeto falando de maneira metafórica, é como ter um novo carro. Ele é ótimo tem muitas características novas mas o motorista ainda está aprendendo o que todos os botões fazem. Neste estágio do projeto devem ser definidos elementos arquiteturais, comportamentais do produto ou serviço. Ainda assim o product owner está levantando todos os requisitos para o novo Sprint e ainda comunicando a equipe das demandas do Sprint atual.

Um indicador de acompanhamento do projeto é o Burndown chart. Usar o Burndown chart ao longo da Sprint, permite mensurar os pontos das histórias finalizadas ao longo dos dias e ter uma visibilidade do ritmo de trabalho da equipe, verificando se o ritmo está adequado para atingir a meta da Sprint, cumprindo com o que foi planejado.

Exemplo de um burndown chart. A linha vermelha é o planejado. A linha Azul é o como foi realizado o sprint.

Exemplo de um burndown chart. A linha vermelha é o planejado. A linha Azul é o como foi realizado o sprint.

Para dar suporte a metodologia e criar uma base de conhecimento, gerando assertividade por parte da Morettic, foi criado um ambiente de projetos ágeis. Este ambiente é baseado na ferramenta Mantis BT que possúi plugins para o Scrum. Além disso a ferramenta permite integrar o repositório de códigos como o GitHub, Svn etc. Assim todas as informações históricas são armazenadas permitindo ao final de cada Sprint gerar lições aprendidas e assim reconhecer as falhas e os acertos.

Gostou? Cadastre seu email no rodapé, curta nossa página no facebook, receba nossos boletins e aguarde novidades!

porLuis Augusto Moretto

CityWatch – Agora disponível para download em GetJar.com

getjarGetJar é maior loja de aplicativos mobile independente fundada na Lituânia em 2004, com escritórios em Vilnius, na Lituânia e San Francisco, Califórnia.

GetJar começou por desenvolvedores para desenvolvedores como uma plataforma de testes app beta e, em seguida, tornou-se a distribuição app tornando-se primeiro e maior loja aberta mercado de aplicativos e aplicativo gratuito no início de 2005. Por isso, pode-se dizer que GetJar é pioneira na distribuição de aplicativo móvel.

Assim para obter maior visibilidade em outros territórios, favorecer a busca do APP através dos mecanismos de indexação, expandir a rede de usuários e aprimorar continuamente o Citywatch.com.br, publicou-se uma versão na loja do GetJar .

O procedimento para publicação do Citywatch na loja foi relativamente simples. Após customizar o tamanho das imagens para o GetJar e  formatar os textos, seleciona-se as versões do APP as quais são compatíveis e para finalizar, ativa-se o APP. Todo o processo leva em torno de 1 hora. A loja possui ainda uma ferramenta de análise para avaliar as estatísticas de downloads e regiões.

Atualmente o Citywatch encontra-se em fase Beta e em estágio de implementação de uma parceria no estado de Santa Catarina. Essa parceria irá fomentar e desenvolver o APP reforçando a atuação. O segmento desta parceria é o imobiliário e a perspectiva é de lançar no dia 19/10/2016 o piloto do sistema. Em breve notícias da parceria!

http://www.getjar.com/categories/social-and-messaging-apps/more-social-apps/Citywatch-APP-900709

Citywatch.com.br – GetJar App Store

Gostou?

http://www.getjar.com/categories/social-and-messaging-apps/more-social-apps/Citywatch-APP-900709

http://citywatch.com.br

porLuis Augusto Moretto

Tappx – Rede de promoção para desenvolvedores de APP no Citywatch.com.br

untitled-1

Na última versão BETA do Citywatch.com.br, foi implementada a rede de promoção TAPPX. Esta ação foi resultado das seguintes necessidades identificadas no desenvolvimento da versão BETA do Citywatch APP:

  1. Expandir a rede de usuários do APP;
  2. Verificar a robustez do APP em diversos dispositivos e versões do Android;
  3. Coletar dados de erros com o Firebase crash Analytics;
  4. Avaliar a aceitação do APP em outros países;
  5. Validar a internacionalização do APP;

Para isso após análise das alternativas com base no custo benefício, chegou-se ao TAPPX, uma comunidade de desenvolvedores que fazem intercambio de propagandas entre os APPS publicadas na rede.

O processo de instalação das bibliotecas é simples com Android Studio e a chamada da promoção foi implementada em apenas 5 linhas de código. Toda a implementação no Android Studio, levou cerca de 30 minutos.  Abaixo alguns exemplos:

Biblioteca do TAPPX incorporada no Android Studio
Gradle do projeto para compilar a biblioteca TAPPX
Gradle do projeto para compilar a biblioteca TAPPX

Resultados

Os resultados obtidos foram satisfatórios. Quando a número de conversões obtidas no período de 7 dias chegou aos  1,81%. Este número representa  os usuários que clicaram no anúncio para fazer o download com base na promoção do APP.


Uma informação bem relevante foi que o país onde mais se obteve visualizações e cliques foi na Itália somando 213 visualizações. Apesar de ter o maior número de visualizações o APP não dispõe do idioma italiano em sua base de traduções.  O segundo mais visualizado foi na França com o total de 120. Durante o período de uma semana obteve-se visibilidade para o APP em países do continente Europeu, África, Oceania, America do Norte, Central e do Sul. Isto nos da evidência do potencial de expansão que a rede representa para Startups e ainda da Insights de estrátégias e ações a serem implantadas para desenvolver a rede do APP.

Considerações

A rede permite que você obtenha pontos extras para acelerar a promoção de seu app. Uma das formas utilizadas por nossa equipe foi a divulgação no twitter que resultou em 15.000 pontos para a promoção do Citywatch.com.br. A publicação no twitter consiste em divulgar o seu APP adicionando HASHTAGS como no tweet que incorporamos.

Gostou?
google-play-badge

porLuis Augusto Moretto

Lauching Next – Citywatch Release

1024_500_play

Submissão do APP – Lauching Next

Foi submetido nesta semana o release do Citywatch.com.br para o LAUCHING NEXT. Para quem não conhece  LAUCHING NEXT apresenta todos os dias mais promissoras  e novas startups do mundo.

Para que o processo de publicação de nosso APP o Citywatch seja acelerado e ganhe visibilidade, criamos uma campanha no Twitter.  Nosso objetivo é divulgar o APP, ampliando a rede de usuários e serviços ofertados.

Estamos no beta e em breve estaremos fazendo um pré lançamento! Contamos com sua participação. Compartilhe e curta! Muito Obrigado!
Em breve publicaremos o endereço de nosso release no site da LAUCHING NEXT para você!

 

 

porLuis Augusto Moretto

Novo portal da FETAESC

Nosso novo projeto para a FETAESC – Federação Catarinense dos Trabalhadores da Agricultura foi recentemente publicado.

A proposta deste site é ser responsivo aos usuários mobile um publico crescente da Federação. Através de uma coleta e análise de dados do Google Analytics, foi identificado que mais de 60% dos usuários acessavam o portal através de um dispositivo móvel.

O site possui ferramenta de Maillist para que sejam enviados semanalmente boletins informativos da Imprensa Fetaesc.

Nesse projeto foi implementado um sistema de geolocalização dos sindicatos do estado, usando o google maps e outras inovações para melhor atender ao publico da Fetaesc.

Sem título

porLuis Augusto Moretto

CityWatch APP – Nova versão (Build Capsule-Corp 43)

Versão do app Capsule-Corp 43 foi lançada essa semana nas lojas.

Com ela um novo site para demonstrar todo o potencial e utilidade do APP.

Nesta versão:
1) Correção de erros e bugs;
2) Serviço de push para notificar as pessoas sobre ocorrências de interesse na proximidade;
3) Atualiza a posição do mapa a cada 3 KM ou a cada 30 minutos.
4) Adds

Faça o download e compartilhe conosco! Chamou tua atenção? Compartilhe!

oms_badge_dark_v2google-play-badge

 

 

http://citywatch.com.br/
1024_500_play

porLuis Augusto Moretto

City Watch (beta01) – Registro de ocorrências municipais!

  • Registrar Conta


City Watch APP é um aplicativo disponível para Android que combina dados abertos para tornar as cidades mais fáceis e seguras de navegar e explorar.
City Watch foi desenvolvido para reinventar a experiência urbana, fornecendo informações de:

  • segurança
  • esporte
  • saúde
  • transporte
  • meio ambiente
  • política

em tempo real, informações meteorológicas, alertas e basicamente tudo o que um cidadão precisa para navegar sua cidade.

Os usuários City Watch tem mais informações sobre a sua posição geográfica em tempo real.

A integração dos tweets e do facebook permite que os usuários recebam uma imagem mais completa do que está acontecendo dentro de suas posições geográficas em tempo real.

Cada ocorrência filtrada é partir destas fontes e dos relatos de ocorrência das pessoas, deixando você informado dos acontecimentos e serviços em um raio de até 200km.

Video

Eula

Leia o contrato de licença final do usuário antes de fazer o download.

Download

play-storegoogle-play-storeOpera Mobile Store

Patrocinadores

As promoções de nossos patrocinadores são divulgadas dentro do APP gerando visibilidade para os turistas locais. Os banners podem ser apresentados de forma local ou global. isso quer dizer que o patrocinador escolhe se deseja apresentação de seu banner apenas para usuários próximos ou para qualquer usuário do APP. Publicamos seu banner toda terça feira.

Valores 03 meses: 50 reais (15 dólares)

Doações

download

Transporte

Transporte

Esportes

Esportes

Segurança

Segurança

Política

Política

Ambiente

Ambiente

Saúde

Saúde

Educação

Educação

Download!

Download!








porLuis Augusto Moretto

Smartcities Framework – Serviço de compartilhamento de informações ubíquos

“Como seria viver numa sociedade onde todas as informações estivessem disponíveis e compartilhadas para geração de produtos e serviços mais inteligentes, agregando valor e unificando órgãos públicos e empresas privadas em benefício de todos?”
Integrar sistemas e tecnologias sempre foi considerada uma barreira intransponível, mas com o Framework, agora todos podem trabalhar de forma conjunta para criar Cidades, Empresas e Serviços realmente Inteligentes para promover o compartilhamento de informações e conhecimentos ubíquos*.

Oportunidade / Desafio

Os municípios brasileiros estão em rápido processo de informatização motivado por mudanças Legislativas, processo que se acelerou com a introdução da Lei de Acesso à Informação e recentes manifestações.

O cenário exige investimentos e esforços significativos nas cidades com capacitação de equipes e introdução de tecnologias para adaptar seus procedimentos à nova realidade, o que marginaliza várias administrações pelo impeditivo em tempo e recursos. Abre-se assim oportunidade de criação de serviços privados, voltados ao suporte ao cidadão, a partir da disponibilização de dados públicos padronizados e balizados.

Hoje, tais serviços enfrentam grande burocracia para obter acesso aos dados públicos, sendo formatados individualmente para cada município, aumentando custos de implantação e reduzindo a velocidade, capilaridade e potencial benefício da introdução de instrumentos de TIC, que penalizam as administrações públicas, o setor privado e o cidadão com perda de eficiência.

Solução / Diferencial

Redução de custos, agilização de processos e desoneração de serviços internos das Administrações Públicas Municipais. Fomento a criação de novos serviços e negócios.

Transparência da Adm. Pública e melhoria dos serviços ao cidadão. Criação de ambiente ubíquo e colaborativo na geração e tratamento de dados de Bigdata segmentados para diversos fins.

Introdução de modelo M2M. Alinhado a modelos de Smart Cities para Cidade Ubíqua. Ampliação da percepção de cada município sobre sua dinâmica pela extração de dados primários de uso e interação dos cidadãos.

Ambiente seguro, criptografado e acessível apenas via identificação da conexão do serviço de terceiros. Implantação no ambiente interno da administração e em ambiente externo. Possível implantação em outras áreas, como Saúde, para integração de sistemas locais. Mapeamento de campos dinâmicos com geração automática de metadados e webservice.

Modulo Perfil do Usuário

Modulo Importação de XML

Modulo Círculos

Modulo Importação de Banco de Dados

Apoio


header-sds
header-fapesc
logo1
header-sebrae