Desenvolvimento para Windows Phone 7 – Parte IV

Desenvolvimento para Windows Phone 7 – Parte IV

Criado por Pedro Simões em 1 de Abril de 2011 | 2 comentários

Por Helder Ferreira para o PPLWARE.COM

Utilização dos recursos do dispositivo

Após no último artigo termos analisado os principais controlos disponibilizados para esta plataforma de desenvolvimento, vamos neste artigo utilizar recursos do dispositivo.

Nos dispositivos Windows Phone 7, temos acesso a vários sensores que são incluídos de base nos mesmos, aqui a vantagem dada pela Microsoft é que do lado de quem desenvolve aplicações não é necessário preocupar com questões mais técnicas relativamente aos sensores visto existirem regras do lado dos fabricantes para que todos os dispositivos funcionem da mesma forma.

Deste modo a equipa de desenvolvimento pode focar os esforços nas regras de negócio das suas aplicações e não na criação de vários métodos para funcionarem em dispositivos distintos.

Introdução aos Launchers e Choosers

Nas aplicações Silverlight para Windows Phone são utilizadas estas duas opções para aceder a funcionalidades build-in dos dispositivos, quando executamos um destes métodos a aplicação é desactivada e a aplicação seleccionada é executada. Quando a aplicação termina a nossa aplicação é reactivada. Este processo é chamado de tombstoning em artigos futuros iremos falar mais sobre este processo e do impacto que pode ter nas nossas aplicações visto estarmos a falar de um sistema sem multitasking.

Os Launchers e Choosers estão no namespace Microsoft.Phone.Tasks, por isso temos que incluir uma directiva Using no nosso código para utilizar estes recursos.

Launchers

A forma de utilizar estas classes é comum, ou seja:

  1. Criar uma nova instância da classe;
  2. Atribuir as propriedades à mesma;
  3. Executar o método Show.

Vamos então ver alguns exemplos:

PhoneCallTask – Usado para efectuar chamadas indicando o número a ser marcado, ou podemos também exibir a lista de contactos a partir da qual o utilizador pode seleccionar o contacto para o qual deseja fazer a chamada.

Vamos adicionar no XAML um simples botão para efectuar a chamada,

<Button Name="ButtonDialer" Content="Efectuar chamada"   VerticalAlignment="Bottom" Click="ButtonDialer_Click"   Height="79" Margin="0,0,0,10" />

E no código vamos então adicionar o comportamento,

private void ButtonDialer_Click(object sender, RoutedEventArgs e)
{
// launcher.
PhoneCallTask phoneCallTask = new PhoneCallTask();
// Informação de contacto para o qual desejamos efectuar a chamada
phoneCallTask.PhoneNumber = "(352)-555-5555";
phoneCallTask.DisplayName = "pplware";
// Lançamento do objecto.
phoneCallTask.Show();
}

Corremos o projecto e quando o utilizador clicar no botão a chamada é efectuada.

SmsComposeTask – Assim como para efectuar uma chamada, temos também o launcher para enviar mensagens de texto.

XAML

<Button Name="ButtonSmsr" Content="Enviar sms"
VerticalAlignment="Bottom" Click="ButtonSms_Click"
Height="79" Margin="0,0,0,10" />

CODE

private void ButtonSms_Click(object sender, RoutedEventArgs e)
{
// launcher.
SmsComposeTask smsComposeTask = new SmsComposeTask();
// Informação de contacto para o qual desejamos enviar o sms
smsComposeTask.Body = "Mensagem";
smsComposeTask.To = "(352)-555-5555";
// Lançamento do objecto.
smsComposeTask.Show();
}

EmailComposeTask – Vamos terminar esta secção apresentando o Launcher de envio de email.

XAML

<Button Name="ButtonEmail" Content="Enviar email"
VerticalAlignment="Bottom" Click="ButtonEmail_Click"
Height="79" Margin="0,0,0,10" />

CODE

private void ButtonEmail_Click(object sender, RoutedEventArgs e)
{
// launcher.
EmailComposeTask emailComposeTask = new EmailComposeTask();
// Informação de contacto para o qual desejamos efectuar a chamada
emailComposeTask.To = "xpto@hotmail.com";
emailComposeTask.Subject = "Exemplo de email";
emailComposeTask.Body = "Corpo da mensagem";
// Lançamento do objecto.
emailComposeTask.Show();
}

De notar que se executarmos este launcher no emulador, o sistema vai apresentar uma mensagem indicando que a conta de correio electrónico não se encontra configurada. Mas no caso de estarmos a executar a aplicação directamente num dispositivo é apresentado um ecrã em que podemos seleccionar a conta de correio electrónico a utilizar e após isso a mensagem pronta a ser enviada.

Choosers

A principal diferença dos launchers em relação aos choosers prendesse no facto de neste último caso o sistema lança um evento quando o utilizador efectua uma intervenção.

Vamos ver o caso em que a aplicação não sabe o número para o qual deve efectuar uma chamada e pede a intervenção do utilizador para seleccionar um número da sua lista de contactos.

PhoneNumberChooserTask – Se pretendermos que o utilizador seleccione um contacto existente na sua lista, apenas temos que instanciar o chooser PhoneNumberChooserTask.

Neste caso já é lançado um evento quando o utilizador selecciona o contacto para o qual deseja efectuar a chamada. Nesse evento obtemos o número para o qual o utilizador deseja efectuar a chamada e lançamos o launcher PhoneCallTask da mesma forma que já fizemos anteriormente.

XAML

<Button Name="ButtonDialerChooser" Content="Lançar contactos"
VerticalAlignment="Bottom" Click="ButtonDialerChooser_Click"
Height="79" Margin="0,0,0,10" />

CODE

private void ButtonDialerChooser_Click(object sender, RoutedEventArgs e)
{
PhoneNumberChooserTask phoneNumberChooser = new PhoneNumberChooserTask();
phoneNumberChooser.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooser_Completed);
phoneNumberChooser.Show();
}   void phoneNumberChooser_Completed(object sender, PhoneNumberResult e)
{
if (e.TaskResult == TaskResult.OK)
{
// Chooser.
PhoneCallTask phoneCallTask = new PhoneCallTask();
// Informação de contacto para o qual desejamos efectuar a chamada
phoneCallTask.PhoneNumber = e.PhoneNumber;
// Lançamento do objecto.
phoneCallTask.Show();
}
}

CameraCaptureTask – Com este método podemos tirar proveito das capacidades da câmara fotográfica presente nos dispositivos. Por exemplo, com um simples botão na nossa aplicação invocamos a aplicação built in do sistema para tirar uma foto ou um vídeo e podemos logo de seguida efectuar o tratamento ou apresentação da mesma.

XAML

<Button Name="ButtonCamera" Content="Tirar foto"
VerticalAlignment="Bottom" Click="ButtonCamera_Click"
Height="79" Margin="0,0,0,10" />
<Image Height="400" x:Name="ContainerImagem" />

CODE

private void ButtonCamera_Click(object sender, RoutedEventArgs e)
{
// Chooser.
CameraCaptureTask cameraCaptureTask = new CameraCaptureTask();
cameraCaptureTask.Completed += new EventHandler<PhotoResult>(cameraCaptureTask_Completed);
// Lançamento do objecto.
cameraCaptureTask.Show();
}
void cameraCaptureTask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
//simply use the picture.
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(e.ChosenPhoto);
ContainerImagem.Source = bitmapImage;
}
}

De notar neste exemplo, que declaramos o evento cameraCaptureTask.Completed, o que faz com que após o utilizador tirar a foto um evento é lançado na nossa aplicação com o resultado que neste caso corresponde a uma foto.

Nesse evento apenas aplicamos a foto a um BitmapImage (using System.Windows.Media.Imaging;) e após este passo atribuímos a imagem ao controlo de imagem ContainerImagem para conseguirmos visualizar o resultado.

Nota: Caso estejam a utilizar o emulador, a câmara é substituída por uma Webcam instalada no vosso sistema para que seja mais fácil testar a nossa aplicação.

Estes são apenas alguns exemplos de como utilizar Launcher e Choosers, para uma referência completa de todos os métodos existentes podem aceder à ajuda do namespace tasks em namespace Microsoft.Phone.Tasks

Para terminar vamos verificar como utilizar um componente muito em voga nos dispositivos mais actuais e que pode marcar a diferença nas vossas aplicações.

Acelerómetro

Resumindo, não passa de um sensor que consegue detectar alterações à posição actual do dispositivo normalmente em 3 eixos, x,y e z.

A utilização deste tipo de sensores pode ser bastante interessante no âmbito de utilização da nossa aplicação, um dos exemplos mais típicos é por exemplo mudar a música em execução com um shake ao dispositivo.

Vamos ver um exemplo.

XAML

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="618*" />
</Grid.RowDefinitions>   <TextBlock Grid.Column="1" Grid.Row="0" Text="X" />
<TextBlock x:Name="txt_x"  Grid.Column="2" Grid.Row="0"/>
<TextBlock Grid.Column="1" Grid.Row="1" Text="Y" />
<TextBlock x:Name="txt_y"   Grid.Column="2" Grid.Row="1"/>
<TextBlock Grid.Column="1" Grid.Row="2" Text="Z" />
<TextBlock  x:Name="txt_z"  Grid.Column="2" Grid.Row="2"/>
<Button Content="Iniciar" x:Name="btnIniciar" Grid.Column="2" Margin="50,35,129,494" Grid.Row="3" Click="btnIniciar_Click" />
</Grid>

CODE

// Construtor
Accelerometer accelerometer = new Accelerometer();
public MainPage()
{
InitializeComponent();
}   private void btnIniciar_Click(object sender, RoutedEventArgs e)
{
accelerometer.Start();
accelerometer.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(accelerometer_ReadingChanged);
}   void accelerometer_ReadingChanged(object sender, AccelerometerReadingEventArgs e)
{
Deployment.Current.Dispatcher.BeginInvoke(() => ProcessAccelerometerReading(e));
}   private void ProcessAccelerometerReading(AccelerometerReadingEventArgs e)
{
// Actualiza os controlos
txt_x.Text = e.X.ToString("0.00");
txt_y.Text = e.Y.ToString("0.00");
txt_z.Text = e.Z.ToString("0.00");
}

Neste exemplo, colocamos algumas caixas de texto numa página e um botão para que o sistema inicie a captura dos dados do acelerómetro.

Quando clicamos no botão o sistema inicia a captura dos dados relativos à sua posição, x,y e z e no evento accelerometer_ReadingChanged delegamos o objecto AccelerometerReadingEventArgs e para a função ProcessAccelerometerReading que por sua vez trata de preencher as caixas de texto com os dados da posição do dispositivo.

Fazemos esta delegação, visto o processo de captura de dados estar a executar numa thread extra, e nestes casos não conseguimos efectuar o binding directo dessa thread à nossa camada de UI (caixas de texto).

Executando o projecto no dispositivo podemos observar a posição actual do mesmo sendo reflectiva nas caixas de texto no ecrã.

Espero que esta breve introdução à utilização dos recursos que são disponibilizados pelos dispositivos vos tenha dado algumas ideias para as vossas aplicações.

Uma vez mais, caso tenham alguma questão não hesitem em enviar mensagem.

Até à próxima e boa programação em Windows Phone 7.

Artigos relacionados:

ElectroDroid 2.0 – Electrónica é no Android

ElectroDroid 2.0 – Electrónica é no Android

Criado por Pedro Pinto em 17 de Fevereiro de 2011 | 44 comentários

Na sequência dos artigos que temos publicado sobre o fantástico mundo da electrónica, mais concretamente sobre a plataforma Arduino, tive a curiosidade de pesquisar no market do Android por aplicações a nível da electrónica.

A aplicação mais bem “cotada” neste segmento é o ElectroDroid (que recentemente foi actualizada para a versão 2.0), uma vez que disponibiliza um conjunto de ferramentas úteis para quem gosta e trabalha nesta área.

electro_000

ElectroDroid é a aplicação mais completa da área da electrónica para a plataforma Android. A aplicação encontra-se dividida em três partes: Calculadoras, Pinout e Recursos.

No separador Calculadoras podemos encontrar ferramentas de cálculo e informação sobre:

  • Código de cores das resistências
  • Código de cores das Bobines
  • Lei de Ohm
  • Calculadora de Reactância
  • Divisor de Tensão
  • Resistência equivalente
  • Resistência valor/série/paralelo
  • Carga do condensador
  • Amplificador operacional
  • Resistência para diodo LED
  • Calculadora LM317
  • Potência dissipada
  • Calcular vida da bateria

electro_02

No separador Pinout podemos encontrar informação sobre:

  • Pinout para porta USB
  • Pinout para porta Série
  • Pinout porta paralela
  • Pinout porta Ethernet
  • Pinout SCART
  • Pinout DVI
  • Pinout HDMI
  • Pinout VGA
  • Pinout S-Video
  • Pinout Jack
  • Pinout Firewire
  • Pinout RCA
  • Pinout XLR

electro_03

No separador Pinout podemos encontrar informação sobre:

  • Tabela de resistividade
  • Diâmetro de cabos AWG e SWG
  • Tabela de Amperagem
  • Tabela de resistências
  • Tabela de Condensadores
  • Códigos de marcação de condensação
  • Símbolos de circuitos esquemáticos
  • Símbolos e abreviações
  • Prefixos – Unidades SI

electro_01

Novidades da versão 2.0

  • Suporte para Android 2.3 Gingerbread;
  • Suporte para backups;
  • Base de dados PICmicro;
  • Grande parte do código reescrito para optimização
  • Correcção da UI para ecrã grande;
  • Opção para desactivar a confirmação ao sair;
  • Potência como variável na lei de Ohm;
  • Valor de pico (pF, pH,…) e pequena alteração no formulário
  • Mais ícones de alta resolução
  • Tabela de Amperagem
  • Símbolos de circuitos esquemáticos
  • Tradução para português

Como instalar o ElectroDroid 2.0  no Android?

Caso queiram experimentar esta aplicação, basta que apontem o vosso leitor de códigos QR para a imagem abaixo, e serão encaminhados para a aplicação no Android Market.

qr_electroou pesquise por “ElectroDroid ” no Android Market

Em Resumo…

A aplicação ElectroDroid disponibiliza informação bastante interessante para quem gosta da área da electrónica. Com o ElectroDroid passamos a ter muita da matéria que é leccionada em cursos/disciplinas de electrónicas reunida numa só aplicação. Experimentem e deixem o vosso feedback….e cuidado com os curto—circuitos!

Homepage: ElectroDroid

Desenvolvimento para Windows Phone 7 – Parte III

Desenvolvimento para Windows Phone 7 – Parte III

Criado por Vítor M. em 21 de Março de 2011 | 4 comentários

Por Helder Ferreira para o PPLWARE.COM
Depois de nos últimos artigos termos efectuado a instalação de todas as aplicações necessárias nas nossas máquinas, e agora que já temos todo o ambiente de desenvolvimento funcional, vamos começar a analisar alguns dos controlos que podemos utilizar nas nossas aplicações para Windows Phone 7.

Vou começar por apresentar os controlos específicos para o desenvolvimento em Windows Phone 7:

  • Controlos base;

Neste ponto estão presentes os controlos mais conhecidos do silverlight, para WP7 foi criado um subconjunto mas o comportamento e utilização são em tudo semelhantes.

Não me vou demorar muito neste ponto, se bem que são os controlos que provavelmente mais iremos utilizar no dia-a-dia, não trazem nada de novo em relação ao que já existe no silverlight.

  • Bing Maps;

Se bem que já não é uma novidade, é um controlo que com a utilização da geolocalização do WP7 se torna num controlo muito interessante, vamos ver um exemplo.

Vamos começar por adicionar o controlo a uma página do WP7, para isso basta aceder à toolbox do lado esquerdo e “arrastar” para a nossa página o controlo “Map”.

Caso não esteja disponível, temos que adicionar o controlo ao nosso projecto, para isso basta clicar com o botão direito do rato sobre a toolbox e seleccionar “Choose items”.

No ecrã seguinte basta seleccionar o item “Map”, ao seleccionar ok é adicionado um novo ícone à nossa toolbox com o controlo de mapas.

Neste momento basta correr o projecto e já temos o mapa na nossa aplicação, mas neste momento de pouco nos serve o mapa apresentado desta forma. Vamos lá adicionar mais algumas funcionalidades.

Começamos por adicionar mais alguns botões para responderem ao nosso imput:

Adicionando estes botões vamos criar o código que o sistema vai executar, para que o Visual Studio crie o método basta clicar duas vezes sobre cada um dos botões, de imediato o sistema cria o evento “_Click” e após isso basta adicionar o código de seguida.

Temos que ter em atenção que para que o sistema reconheça o nosso código temos que adicionar o using do namespace do controlo:

Feito, neste momento já conseguimos controlar pelos botões o nível de zoom assim como a vista aérea ou a vista de ruas. Como podem ver, é muito simples utilizar este controlo. Só uma atenção, é apresentada uma mensagem no emulador indicando que não temos as credenciais válidas ao utilizar este controlo. Esta situação é normal, para resolver esta situação é necessário efectuar um registo de desenvolvimento.

Em artigos futuros explicarei como efectuar esse registo e como utilizar as capacidades de geolocalização do dispositivo para sabermos a nossa localização actual e apresentar no mapa.

  • Controlo WebBrowser;

Não muito a dizer sobre este controlo, basta arrastar o controlo para uma página e atribuir o endereço da página a ser visualizada no tag source do mesmo.

E o resultado:

  • Controlo Pivot;

Este controlo pode ser utilizado para transição de páginas, apresentação de dados e tem como principal vantagem a utilização da navegação por defeito do sistema. Ou seja, ao aplicar este controlo nas nossas aplicações vamos herdar a navegação e optimização para utilização por toque do sistema, sem a necessidade de criar código para isso.
O utilizador apenas tem que usar os gestos reconhecidos pelo sistema (Pan, Flick ou swipe) para alternar pelos conteúdos de cada PivotItem.
Vamos ao exemplo.

Uma vez mais basta arrastar o controlo que está na toolbox com o nome de pivot, desta não estavam à espera :D , para a vossa página. Caso o ícone não esteja disponível basta efectuar o mesmo procedimento já explicado em cima e adicionar o controlo à vossa toolbox.
Podemos então criar os que necessitamos e adicionar o conteúdo a cada um dos mesmos.

Exemplo:

E para cada um dos itens vamos adicionar o conteúdo:

Usando este controlo como base de navegação da nossa aplicação é muito simples e conseguimos que o utilizador consiga navegar de uma forma muito simples por várias páginas na nossa aplicação.

  • Controlo Panorama;

Este controlo, utilizado em praticamente todo o sistema operativo, é uma forma de expandir o look and feel do mesmo à nossa aplicação. A grande diferença deste controlo para o Pivot é que, no caso do Pivot cada um dos itens é idealizado para ser visualizado nos limites do dispositivo enquanto no caso do Panorama a página não está limitada aos limites do smartphone e vai sendo apresentada por secções em que o utilizador pode navegar.

Para além disso as animações das várias camadas deste controlo (títulos/conteudo), são apresentadas a velocidades diferentes o que cria um impacto visual muito interessante e que vai informando o utilizador em que “secção” se encontra da página.

Não vou aprofundar mais sobre este componente neste artigo pois futuramente vamos usar este controlo na nossa aplicação.

Aqui fica esta breve apresentação dos controlos mais utilizados nas aplicações para Windows Phone 7, num próximo artigo vamos explorar algumas das capacidades dos dispositivos e do sistema operativo e como aceder às mesmas.

Como sempre o vosso feedback é muito importante. E caso tenham alguma questão não hesitem em enviar.

Artigos relacionados:

Mbot – Cliente da plataforma Moodle para Android

Mbot – Cliente da plataforma Moodle para Android

Criado por Pedro Pinto em 17 de Março de 2011 | 12 comentários

Em Portugal, quem é estudante Universitário e não só, certamente que conhece o Moodle. O Moodle é uma alternativa às soluções comerciais de ensino à distância como o Blackboard e WebCT, é gratuito sob uma licença Open Source. A aprendizagem através do Moodle está baseado nos princípios pedagógicos , com um desenho modular onde é fácil agregar conteúdos que motivam o aluno.

Como o Mbot, os estudantes têm acesso directo à plataforma Moodle da sua instituição, podendo aceder aos conteúdos e informações do curso no qual está inscrito.

mbot_00

O Moodle é um CMS (Course Management System), também definido como um LMS (Learning Management System) é uma plataforma de apoio à aprendizagem/ensino à distância.  Através desta plataforma, os professores/formadores podem facilmente criar disciplinas “online” e nela depositar conteúdos, criar fóruns, chats, criar testes, receber trabalhos dos alunos, criar wikis, etc,etc.

O Mbot é um cliente para Android que permite aceder facilmente aos conteúdos e informações no qual o utilizador está inscrito.

mbot_01

Principais características do Mbot

  • Acesso via smartphone/table ao Moodle
  • Apresentação das últimas páginas visitadas
  • Apresentação dos últimos conteúdos consultados
  • Apresentação de novos anúncios/conteúdos

Como instalar o Mbotno Android?

Caso queiram experimentar esta aplicação, basta que apontem o vosso leitor de códigos QR para a imagem abaixo, e serão encaminhados para a aplicação no Android Market.

mbot_qr

Considerações finais

O Moodle é uma excelente plataforma de conteúdos, desenvolvida em PHP,  e que é muito usada por Universidades/Politécnicos, escolas e até mesmo empresas de formação. Através desta plataforma é possível criar cursos online e disponibilizar conteúdos aos formandos. No entanto, o Moodle poderá servir para muitas outras finalidades. Para os docentes/formadores que muita das vezes procuram uma plataforma de gestão e disponibilização de conteúdos, o Moodle é sem dúvida uma excelente opção.

Android Market: Mbot

DroidStats – Controle os seus custos no Android

DroidStats – Controle os seus custos no Android

Criado por Pedro Pinto em 18 de Março de 2011 | 2 comentários

Os telemóveis/smartphones são hoje em dia equipamentos essenciais para comunicação entre pessoas.  Usámo-los para fazer chamadas, enviar SMS/MMS, aceder a Internet….enfim, uma panóplia de tarefas/acções que realizados todos os dias. No entanto estes serviços acarretam custos e por norma o utilizador não avalia esses mesmos custos (ie, se realmente os valores pagos estão em conformidade com a utilização dos serviços por parte do utilizador).

Num momento de total crise no nosso país, é necessário tentar poupar ao máximo e para isso hoje apresento-vos o DroidStats que permite controlar os custos associados aos serviços móveis.

droid_stats_000

Como utilizador frequente de serviços associados às comunicações móveis, devo confessar que às vezes não tenho noção do dinheiro gasto em chamadas e outros serviços….o valor apresentado pela operadora é o valor que pago!

Para controlar todos os custos associados às comunicações móveis, descobri recentemente o DroidStats, uma excelente aplicação para android que nos fornece custos estimados e estatísticas de utilização do serviços utilizados.

O DroidStats permite visualizar diversas estatísticas e custos associados (ver separador Overview). Relativamente às chamadas realizadas e recebidas (por mês/total) é apresentando a seguinte informação:

  • Nº total de minutos associado às chamadas efectuadas
  • Nº de chamadas realizadas
  • Nº de chamadas falhadas
  • Nº de minutos associado às chamadas recebidas
  • Nº de chamadas não atendidas

droid_stats_022

Por exemplo, se pretendermos saber as estatísticas sobre SMS, podemos abrir o separador SMS e visualizar:

  • Nº de SMS enviados
  • Nº de SMS pagos enviados
  • Nº de SMS recebidos
  • Nº médio de SMS enviados por mês/semana
  • Nº médio de caracteres enviados

droid_stats_03

Como os planos de preços variam de operador para operador, o DroidStats disponibiliza um conjunto de opções que permitem configurar a aplicação de acordo com o tarifário associado. É por exemplo possível definir limites de utilização (em minutos) e configurar notificações, assim como indicar o preço por chamada/sms/dados.

droid_stats_02

Como instalar o DroidStats Android?

Caso queiram experimentar esta aplicação, basta que apontem o vosso leitor de códigos QR para a imagem abaixo, e serão encaminhados para a aplicação no Android Market.

droid_stats_qrEm Resumo…

O DroidStats é uma excelente aplicação para Android, permitindo que o utilizador tenha consciência/noção das estatísticas e custos associados às comunicações moveis realizadas. O DroidStats disponibiliza ainda suporte para Widgets, sendo assim possível ter informações das estatísticas anteriormente referidas na homescreen.

Artigos relacionados

Market Android:  DroidStats

Desenvolvimento para Windows Phone 7 – Parte II

Desenvolvimento para Windows Phone 7 – Parte II

Criado por Vítor M. em 4 de Março de 2011 | 8 comentários

Por Hélder Ferreira para o PPLWARE.COM
Após o artigo introdutório, em que apresentei uma visão geral sobre o desenvolvimento para o Windows Phone 7, vamos neste artigo “meter as mãos na obra” e criar uma simples aplicação “Olá Mundo” para este sistema.

Ferramentas de desenvolvimento

Vamos considerar que as ferramentas de desenvolvimento já foram instaladas, caso ainda não o tenham feito, neste link tem todos os downloads necessários para a instalação.

Vamos de uma forma sumária percorrer este processo de instalação:

1 – Após o download, basta executar a aplicação para iniciar o processo de instalação;

2 – Aceitamos os termos de utilização e vamos optar pela instalação típica, o setup efectua o download de tudo o que necessita e efectua a instalação de seguida, este processo pode demorar algum tempo;

3 – Após a instalação basta seleccionar para correr de imediato o Visual Studio 2010 Express for Windows Phone.

4 – Após a instalação do Visual Studio 2010, devemos executar o update às ferramentas de desenvolvimento, segundo ponto apresentado no link indicado em cima. Este update disponibiliza várias correcções ao ambiente de desenvolvimento e adiciona algumas funcionalidades, sendo importante destacar o tão falado copy/paste.
Após a instalação do Windows Phone Developer Tools e seu update o nosso sistema já está preparado para iniciar o desenvolvimento de aplicações.

Vamos então iniciar o Visual Studio 2010.

A versão apresentada na imagem corresponde ao Visual Studio 2010 Professional, que uso diariamente, mas as diferenças quepossam encontrar serão poucas.

Criação de um novo projecto para Windows Phone 7

1 – No menu File, seleccionar New Project, é apresentado o seguinte ecrã;

2 – No lado esquerdo, são apresentados todos os templates de projectos que podemos criar, para este exemplo vamos seleccionar Visual C# e Silverlight for Windows Phone.

Do lado direito são logo apresentados os tipos de projectos para Windows Phone 7.

3 – Existem vários projectos disponíveis, alguns já com os controlos mais conhecidos já integrados na aplicação e outros com exemplos de ligação a dados. Nesta fase vamos seleccionar “Windows Phone Application”, podemos a este projecto adicionar qualquer tipo de controlo mais tarde.

Para terminar este passo, vamos seleccionar o nome da nossa aplicação e indicar a directoria onde queremos guardar o nosso projecto e seleccionamos ok.

4 – Neste momento é apresentado o ecrã de arranque da nossa aplicação, todo o projecto já está criado e pronto a ser compilado, mas antes vamos a algumas explicações.

Por defeito o Visual Studio apresenta 3 painéis (dependendo da versão e das configurações), à esquerda a vista de desenho, ao meio a vista de XAML e à direita a vista da solução. Neste caso, está visível a toolbox para que sejam visíveis os controlos que neste momento se podem incluir da página.

  • Vista de desenho, área onde visualmente podemos arrastar controlos a incluir na nossa página, ao seleccionar os controlos é apresentado no lado direito as propriedades do mesmo;
  • Vista de XAML, é uma linguagem baseada em XML usada para posicionar o layout onde os controlos são apresentados na página;
  • Vista da solução, área onde é apresentado todos os ficheiros que compõe o nosso projecto

5 – Vamos agora adicionar um botão para apresentar uma simples mensagem “Olá Mundo”. Para isso na toolbox no lado direito seleccionamos o controlo Button e depois basta desenhar na vista de desenho a área onde queremos que o botão seja apresentado. Podemos verificar que de imediato, na vista de XAML, é adicionado uma nova entrada com a informação desse mesmo botão. Alteramos a tag Name para “btnMensagem”, e colocamos a tag content para “Olá Mundo!” na entrada do botão que foi adicionada no XAML.

6 – Resta criar o método que este botão vai despoletar e adicionar o código para lançar a mensagem. Na vista da solução existe um item “MainPage.xaml” que corresponde à página onde estamos actualmente a trabalhar, nesse item podemos ver que existe um pequeno bullet. Se clicarmos nesse bullet é apesentado um novo ficheiro “MainPage.xaml.cs”.

Este ficheiro é chamado code-behind, é uma classe parcial da nossa página e é nele que está todo o código. Para criar o evento do clique basta clicar duas vezes sobre o botão, o evento é automaticamente gerado no code-behind, neste evento vamos simplesmente adicionar o código para que a mensagem seja apresentada ao utilizador.

private void btnMensagem_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Olá Mundo!!");
}

7 – Vamos então testar a nossa aplicação, para isso basta clicar em F5 ou escolher no menu Debug ->Start Debugging.

O emulador do Windows Phone 7 é automaticamente apresentado e arranca com a nossa aplicação, caso existam erros de compilação o Visual Studio notifica quais e onde se encontram.

Basta clicar no botão que adicionamos e a mensagem é apresentada ao utilizador. Para terminar a aplicação basta fechar o emulador (são apresentadas as opções no quanto superior direito do mesmo).

Como podem ver, é extremamente simples programar para este novo sistema, esta introdução foi apenas para iniciar o nosso projecto e começar a executar a aplicação.

Nos próximos artigos vamos adicionar funcionalidades a esta aplicação, por exemplo, acesso a serviços, acesso a dados, e muitas outras funcionalidades.

Caso tenham ideias sobre funcionalidades que gostariam que fossem apresentadas, não hesitem em enviar as vossas ideias.

Artigos relacionados:

OSMonitor – Monitorize facilmente o seu Android

OSMonitor – Monitorize facilmente o seu Android

Criado por Pedro Pinto em 23 de Fevereiro de 2011 | 7 comentários

Uma das tarefas que realizo com alguma frequência no meu PC é a monitorização do sistema. Costumo verificar se estão muitos processos carregados, estado da memória e processador (performance), estado da rede, entre outros parâmetros.

Para Android descobri recentemente o OSMonitor, uma pequena ferramenta que permite ao utilizador monitorizar o seu smartphone com Android.

osmonito_000

O OSMonitor é como o gestor de tarefas do Windows, onde podemos controlar os processos que estão a correr no sistema, verificar as ligações estabelecidas, estado do processador entre outras informações.

O OSMonitor encontra-se dividido em 5 separadores:

  • Process – onde podemos visualizar todos os processos que estão a correr na máquina. É ainda possível aceder a informação detalhada de cada processo;
  • Network – Permite ver todas as configurações físicas e lógicas e respectivas configurações IP;
  • Connection – Permite ver todas as ligações estabelecidas. Carregando nas ligações, é ainda possível realizar um Whois e obter o resultado através de um mapa
  • Misc – Informações sobre o processador, bateria e sistema de ficheiros
  • Message – dmesg ou logcat em tempo real (mensagens do sistema)

osmonito_01

Como instalar o OSMonitor no Android?

Caso queiram experimentar esta aplicação, basta que apontem o vosso leitor de códigos QR para a imagem abaixo, e serão encaminhados para a aplicação no Android Market.

os_qr

Agora já não há desculpas para não controlar o que está a correr no seu Android. O OSMonitor é uma aplicação que fornece informações bastante úteis e possui já suporte para o protocolo IPv6. Todas as funções disponibilizadas podem ser facilmente personalizadas no menu de configurações.

Últimos artigos sobre Android

Homepage: OSMonitor

Webkey–controlar o Android via browser

WebKey – Controlo total do Android via browser

Criado por Pedro Pinto em 24 de Fevereiro de 2011 | 2 comentários

No seguimento dos nossos artigos par Android, o nosso leitor Valter Fernandes enviou-nos um excelente artigo sobre o WebKey.

O WebKey é uma aplicação que permite o total controlo do Android através de um qualquer browser. Apesar de, nem a aplicação, nem o “site” onde acedemos ao Android, terem um aspecto agradável, esta ferramenta permite uma grande quantidade de operações.

web_key_00

Em primeiro lugar, após instalação, é possível arrancar o serviço ou ainda coloca-lo a arrancar sempre que o Android é iniciado.

clip_image001

Arrancando o serviço podemos ver o ip a partir do qual podemos aceder a todas as funcionalidades, bastando para isso, colocar na barra de endereço o ip indicado. Entrando será pedidas as credenciais também indicadas na aplicação:

clip_image003

Esta password varia de cada vez que o serviço arranca, para melhor segurança. No entanto, é possível a definição de users e passwords respectivas. Isto proporciona um fácil controlo do telemóvel num caso de esquecimento do smartphone em casa, num dia de trabalho, pois já definimos a password. Caso não se saiba o ip, basta ir a androidwebkey.com e fazer login com o user e pass definidos.

Numa situação de partilha de smartphone (caso de uma empresa que necessite de partilhar um dispositivo) é, ainda, possível que, a cada um dos users definidos, sejam atribuídas permissões sobre o que podem aceder e fazer.

Uma vez o login feito, na página principal teremos o ecrã do nosso dispositivo sendo possível configurar a qualidade da imagem (consoante a velocidade da nossa ligação). Este “ecrã” permite, com o rato, controlar o smartphone como se com o dedo fosse.

clip_image005

Principais funcionalidades/características:
  • Controlo de todo o dispositivo através do ecrã acima mostrado
  • Verificação da posição GPS e de Rede do dispositivo sendo, ainda, possível ver esta localização em Google maps.
  • Um menu rápido de envio de mensagens (sem usar o ecrã) em que é carregada a lista de contactos, e, ao lado, o top dos contactos mais usados. É possível o envio de mensagens para vários contactos em simultâneo
  • Lista de Chamadas
  • Definição de várias ´tipos de notificações
  • Acesso à linha de comandos do smartphone
  • Export de contactos, Mensagens e Lista de chamadas
  • Acesso ao sistema de ficheiros
  • Suporte para chat
  • Suporte SSL
  • Ajuste da intensidade do brilho do smartphone
  • Ver logs de utilização
  • Definição de permissões
  • Abrir páginas Web
  • Fazer screenshots do ecrã

Lista de chamadas – Escolhendo um mês é-nos mostrado um gráfico com as chamadas que duraram mais que 30 segundos (por dia e se é efectuada ou recebida e de quem) e ainda uma listagem completa, por contacto, dos tempos de chamada efectuada e recebida e, finalizando, a lista completa de chamadas:

clip_image007

clip_image009

Definição de várias notificações podendo, até, escolher o tipo de vibração para o alerta:

clip_image011Acesso à linha de comandos do smartphone

clip_image013

Export de contactos, Mensagens e Lista de chamadas

clip_image015

Acesso ao sistema de ficheiros – tanto aos ficheiros do sistema como do cartão de memória sendo possível uso, download e upload de ficheiros:

clip_image017

Definição de permissões

clip_image019

Escrita no smartphone via teclado do PC

clip_image021

Como instalar o WebKey no Android?

Caso queiram experimentar esta aplicação, basta que apontem o vosso leitor de códigos QR para a imagem abaixo, e serão encaminhados para a aplicação no Android Market.

clip_image023

Nota: Chamamos a atenção aos leitores que esta aplicação apenas funcionará correctamente em telefones Android que tenham sido Rooted (permite que passemos a ter acesso completo a todas as funcionalidades que o equipamento tem para oferecer e que me muitos casos foram barrados pelos operadores ou pelos fabricantes do Hardware).

O Pplware não se responsabiliza por quaisquer instruções disponibilizadas nos comentários, que podem resultar no bloqueio total do equipamento ou perda da garantia.

Homepage: AndroidWebkey

Android Walkie-Talkie

Transforme o seu Android e iPhone num Walkie-Talkie

Criado por Vítor M. em 29 de Janeiro de 2011 | 59 comentários

Há uns largos anos atrás, quando frequentava os escuteiros, os Walkie-Talkies eram gadgets de extrema utilidade para estabelecer comunicação nos acampamentos e nas actividades de exterior. Depois veio o hype dos ‘bips’ que permitiam trocar mensagens entre equipamentos, até que se deu o “boom” dos telemóveis .

Mas os Walkie-Talkie continuam a ser uma prática e barata solução de comunicação entre pessoas distantes. Não é comum por cá estas duas tecnologias coabitarem no mesmo equipamento, mas existem alguns países onde um telemóvel tem também a opção walkie-talkie.

Foi então que me lembrei de pesquisar para verificar se existia alguma aplicação para iPhone ou Android que transformasse o smartphone um Walkie-Talkie. Afinal, parece que existe algo muito interessante, oHeyTell.

HeyTell Voice Messenger é uma aplicação multi-plataforma que permite estabelecer uma conversa em modo instantâneo com amigos e familiares. É simples e rápida de utilizar pois evita qualquer registo ou conta, assim, basta instalar, escolher o contacto e clicar no botão para começar a falar!

O serviço baseia-se na identificação de ambos os lados deste “circuito”, dando a conhecer quem dos nossos contactos já instalou a aplicação.

Para “ajudar” a propagar este serviço, podemos escolher a pessoa que gostaríamos de conversar e, caso ela nao tenha instalada esta aplicação, enviaremos uma mensagem por SMS e/ou por email. Nessa mensagem está o link para descarregarem e instalarem o HeyTell.

Depois de instalada, esta ferramenta permite enviar e receber mensagens de voz, imitando assim a comunicação unidireccional dos walkies-talkies.

Premimos o botão, falamos e largamos o botão. De imediato a mensagem de voz será enviada ao outro extremo da conversa e será reproduzida. Deste modo podem ser trocadas mensagens de som entre smartphones a custo zero!

Assim podemos enviar…

  • Mensagens de voz mais rápidas de produzir do que um SMS e gratuitamente!
  • Dados em pacotes muito pequenos, como se estivéssemos a enviar mail
  • Mensagens que podem ser enviadas via 3G, EDGE ou Wi-Fi
  • Som com qualidade áudio superior: cada pacote de som entregue a 16 kHz, tem duas vezes mais qualidade do que uma chamada de telemóvel
  • Uma mensagem de resposta quando somos alertados por notificações Push (os alertas deverão estar activos para receber em tempo real a notificação que alguém o está a contactar).

Conforme podemos ver no primeiro screen da aplicação, acima, esta permite que o estado de acessibilidade seja personalizado, conforme a preferência de cada pessoa. Isto evita que sejamos importunados por alguém que não queremos contactar ou que em determinados locais alguém nos interrompa.

A aplicação permite alguns outros pormenores “de classe”. Podemos criar uma lista de pessoas que usualmente contactamos por este meio, são os Favoritos.

Quando utilizamos este serviço, as mensagens enviadas e recebidas são guardadas no smartphone, constituindo um “histórico” de conversação. Essa funcionalidade é muito interessantes pois assemelha-se ao histórico de conversas tidas nos IM’s e que podem ser enviadas ou partilhadas vias email ou Facebook! Como medida de segurança e de privacidade, apenas podem ser exportadas as falas que o próprio utilizador faz. As falas dos seus contactos não podem ser exportadas.

Além destas funcionalidades, podemos “mostrar” ao nosso contacto onde estamos e qual é a nossa posição geográfica actual. Este recurso é muito comum mas também pode ser interessante para geo-referenciar alguma mensagem nossa importante e que seja guardada no tempo. Esta função pode ser desligada para omitir a nossa localização, se for este o nosso desejo.

As mensagens enviadas e recebidas são encriptadas no trânsito das mesmas, recorrendo a um serviço de encriptação da empresa que promove esta ferramenta. Podemos posteriormente apagá-las.

Em resumo…

Esta aplicação tem apenas um senão: o consumo de energia. Não é nada de extravagante mas a aplicação está sempre “à espera”, estando em segundo plano a consumir. No iPhone não foi nada de extraordinário, no entanto no Android notou-se esse consumo.

Se tivermos em conta que podemos gravar a mensagem e enviar, e que podemos por voz ser muito mais rápidos do que por texto… tudo de forma gratuita… (não sendo nada de especial usando sobre 3G), então poderá ser a melhor forma de comunicar offline. Use e deixe a sua opinião!

Licença: Freeware
Sistemas Operativos: iOS/Android
Download [ios]: HeyTell 2.1.2 [2.5 MB]


Download [android – .apk]: HeyTell 1.0.16.149 [1.06 MB]
Homepage: HeyTell

ChromeMarks–os favoritos do Chrome no Android

ChromeMarks – Os favoritos do Chrome no Android

Criado por Pedro Pinto em 3 de Janeiro de 2011 | 5 comentários

Os smartphones são equipamentos que, nos dias de hoje, conseguem substituir em parte as funções de qualquer PC. Consultar e-mails, ver notícias, ver e editar documentos, são operações que qualquer smartphone permite realizar facilmente.

Considerando que o browser é um elemento fundamental tanto nos smartphones como nos PC’s, nada melhor que manter os nossos favoritos sempre sincronizados entre equipamentos. Para esse efeito apresentamos o ChromeMarks.

chrome_sync

Apesar dos smartphones serem hoje equipamentos importantes na vida de qualquer utilizador, é também verdade que existem muitas tarefas que são árduas de realizar em equipamentos de pequena dimensão.

Já tentou, por exemplo, adicionar vários favoritos no browser do smartphone? …É algo demorado e chato. Nesse sentido, foi criado o ChromeMarks que permite facilmente sincronizar os favoritos entre PC e smartphone com Android. O ChromeMarks é muito simples de usar, uma vez que um smartphone com Android tem já associada a nossa conta do Google (para sincronização de contactos, e-mail, etc). Além de permitir a sincronização dos favoritos, o ChromeMarks permite ainda criar novas entradas e editar/apagar os favoritos existentes.

Android_000

Como instalar o ChromeMarks Lite no Android?

Caso queiram experimentar esta aplicação, basta que apontem o vosso leitor de códigos QR para a imagem abaixo, e serão encaminhados para a aplicação no Android Market.

qr_chrome

Carregue aqui do seu smartphone

Existe ainda uma versão mais completa (paga) que pode ser encontrada no site do projecto (aqui).

Como principal desvantagem do  ChromeMarks (ou não, uma vez que torna o browser mais leve), para acedermos à lista de favoritos temos de abrir sempre o ChromeMarks uma vez que esta informação não é sincronizada com o browser do sistema Android.