Executando código dinamicamente em .NET – Compilando Código C# em Runtime

Em um projeto recente do qual participei, tive a necessidade de alterar partes do codigo de forma extremamente rápida devido a mudanças na legislação.  Atualizar toda a aplicação não era uma opção a ser considerada, então decidi implementar uma funcionalidade que permitisse que a aplicação fizesse o download de trechos de código que eram alterados frequentemente e substituisse o trecho antigo, passando a utilizar o novo algoritmo.

A aplicação em questão realiza alguns cálculos de taxas que mudam mensalmente. Agora o aplicativo busca no servidor o código a ser utilizado para realizar os cálculos de forma dinâmica.

Para fazer isto utilizei a class CSharpCodeProvider do framework Dotnet, que permite que usemos código em C# como uma linguagem script.

Neste artigo mostro como criar uma aplicação simples que possui dois listbox, o primeiro possui uma relação de países, e o segundo será populado através de um código que deve ser informado pelo proprio usuario em um textbox..

(mais…)

Leia Mais

Componente: Card Library

O componente Card Library permite, de uma forma bem simples, utilizar a interface oficial do google CardView em sua aplicação Android.

É uma biblioteca muito boa que pode melhorar significativamente a interface de seu app permitindo a criação de views muito atraentes.

Pode ser utilizada a partir da versão 14 (4.0) da API. Infelizmente não pude utilizá-la em minha App porque tenho que suportar a partir da versão 10 (2.3.3) da API, entretanto em uma nova App com certeza irei utilizá-la.

Encontrei a Card Library no github em Card Library (Copyright Gabriele Mariotti).

Voce pode fazer o download de um aplicativo de demonstração em  CardsLib Demo

 

CardsLib

(imagem retirada do site do autor no githug)

Leia Mais

Polymer: Criando um novo componente de lista

Trecho extraído do website do Google Polymer:

Polymer é uma biblioteca pioneira que torna mais fácil e simples do que nunca a construção de aplicações bonitas na web. Polymer foi construído com base em um conjunto de novas primitivas para plataforma web conhecidas como Web Components. Web Components permitem um nível de interoperabilidade e composição para a nova plataforma web. O resultado é um aumento considerável na produtividade do desenvolvedor.

O conceito principal no Polymer é dar ao desenvolvedor a oportunidade de criar novas aplicações baseadas em componentes web. Desta forma, após o desenvolvimento de componentes, diversas aplicações podem ser desenvolvidas utilizando-se estes pequenos pedaços de funcionalidade que possuem, além do layout, código próprio. Você pode utilizar os mesmos componentes inúmeras vezes na mesma página, aplicativo ou até em aplicativos diferentes.

Polymer ainda está em desenvolvimento, porém está em uma versão bem estável, sendo que diversos pequenos já estão utilizando a biblioteca. Este pequeno tutorial utilizou a versão 0.5.1 do Polymer.

Neste artigo irei mostrar como construir um componente bem simples, que irá receber um object (ou uma string JSON) com dados de algumas pessoas e irá renderizar a lista destas pessoas. (mais…)

Leia Mais

Localização – Como traduzir um aplicativo Android

A tarefa de implementar a tradução de um aplicativo Android é bem simples de ser implementada, bastando criar os arquivos de recursos para cada língua a ser utilizada, e posteriormente o próprio Android se encarrega de apresentar a tradução correta.

Este artigo cobre o processo de criar os arquivos de recursos e a forma de se forçar a apresentação em um determinado idioma caso desejado. Preparei o exemplo com três idiomas, ingles, espanhol e português. Todos os passos apresentados foram realizados utilizando-se o Android Studio.

(mais…)

Leia Mais

Biblioteca: Butter Knife

Após desenvolver a primeira versão do meu app, encontrei a Butter Knife (Copyright 2013 Jake Wharton) que é uma biblioteca muito útil.

O objetivo principal dela é simplificar o processo de “inflate” das views e associações dos componentes de tela com as variáveis do programa, permitindo que voce se preocupe com o código que realmente faz parte da sua aplicação e não com código de gerenciamento de telas. Com o Butter Knife voce faz anotações em suas views e controles permitindo que a propria biblioteca faça o processo de “inflate” e de obtenção dos ponteiros para os controles da interface.

Sendo assim, ao invés de ter este código:

Voce teria algo semelhante a isso:

Diversas outras funcionalidades estão disponíveis na biblioteca, como a injeção opcional (para situações em que o controle pode ou não estar na tela)

Além disso voce pode associar automaticamente eventos para os controles:

Voce pode encontrar informações mais detalhadas das funcionalidades da biblioteca bem como instruções para instalação em developer website.

Outra ferramenta muito útil é Android ButterKnife Zelezny que voce pode adicionar ao Android Studio como um plugin e tornar automatico a geração do código para a injeção dos dados.

Leia Mais

Componente: Calendar

O Roboto Calendar View é um bom componente que provê um calendário razoavelmente customizável para uso geral. Em meu app preciso mostrar um calendário onde marco os dias em que existem compromissos. Uma funcionalidade bem simples atualmente.

Eu encontrei o Roboto Calendar View no github em RobotoCalendarView (Copyright 2014 Marco Hernaiz Cao).

Este componente possui algumas fontes interessantes para usar nos projetos (que entretanto removi para reduzir o tamanho do meu APK) que voce pode usar para alterar a interface de acordo com suas necessidades.

Voce pode encontrar mais informações sobre a utilização na própria página do projeto no github.

Em um futuro próximo irei precisar melhorar o componente ou encontrar outro que possua informações mais detalhadas para o usuário, entretanto por hora o atual me serve.

AdvogadoAG - RobotoCalendarView

Leia Mais

Olá

Olá, sou Leonardo Machado, desenvolvedor do aplicativo AdvogadoAg uma agenda para advogados. A princípio criei este aplicativo apenas para android, porém agora iniciei a conversão para Windows Phone e em breve para iOS (Swift). Minha inteção é abordar temas interessantes de desenvolvimento para estes ambientes bem como descreve os percalços encontrados na conversão do aplicativo para as outras plataformas.

Leia Mais