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:

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:

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:

Desenvolvimento para Windows Phone 7 – Introdução

Desenvolvimento para Windows Phone 7 – Introdução

Criado por Vítor M. em 24 de Janeiro de 2011 | 13 comentários

Por Helder Ferreira para o PPLWARE.COM
Como Developer por profissão, mais orientado às plataformas de desenvolvimento Microsoft nomeadamente ASP.Net, Silverlight e mais recentemente em Windows Phone 7, tracei o objectivo de dinamizar uma nova secção sobre “desenvolvimento para Windows Phone 7″. Vamos debruçar na configuração do sistema para dar início a esse desenvolvimento e criação de aplicações para o mesmo.

Visão Geral

Muitos consideram o Windows Phone 7 como sendo o sucessor do Windows Mobile 6.5, e mesmo que o seja em termos de ciclo de vida do produto, são fundamentalmente completamente distintos do ponto de vista operativo.

No “velhinho” Windows Mobile tínhamos a vantagem do sistema ser extremamente personalizável mas em muitos casos isso criava instabilidade obrigando-nos muitas vezes ao conhecido “soft reset”.

No extremo oposto temos agora o Windows Phone 7, um sistema WYSIWYG “what you see is what you get”, que por si torna o sistema menos flexível mas ganha em termos de estabilidade e velocidade desde o momento que ligamos o dispositivo e mesmo após várias horas de uso intensivo do mesmo. Esta questão é um ponto de viragem com o passado, o facto de aplicação após aplicação o sistema mantém a velocidade sempre a um nível espantoso.

É claro que muitos podem afirmar que o sistema está limitado a uma resolução, a um interface, a um teclado, e a requisitos de hardware estabelecidos pela empresa de Seattle, mas ao fazer isto a Microsoft acaba por controlar a experiência do utilizador e manter um nível de utilização uniforme e controlado.

As ferramentas de desenvolvimento

Neste ponto a Microsoft investiu bastante na criação de um ambiente integrado para o desenvolvimento de aplicações para o novo sistema, para além de serem ferramentas que a maior parte dos programadores. Net já estarem perfeitamente ambientados.

Existe mesmo um pack, gratuito, que instala todas as ferramentas necessárias para o início do desenvolvimento, “The Windows Phone Developer Tools” inclui o seguinte:

  • Visual Studio 2010 Express for Windows Phone
  • Windows Phone Emulator Resources
  • Silverlight 4 Tools For Visual Studio
  • XNA Game Studio 4.0
  • Microsoft Expression Blend for Windows Phone

Estas ferramentas permitem desde a criação, codificação, testes e até um tratamento do aspecto gráfico da aplicação com o “Expresion Blend”. Estão disponíveis em inglês, francês, Italiano, alemão, e espanhol, infelizmente neste momento ainda não estão disponíveis em português.

Todos os links para o download destas ferramentas encontram-se no final do artigo.

Tecnologia de programação

A plataforma de programação permite a utilização de duas plataformas para o desenvolvimento de aplicações:

  • Silverlight – Ideal para a criação de Rich Internet Applications, ideal para a criação de aplicações mais rapidamente, com controlos disponibilizados pela framework que assegura a integração com o sistema a nível visual.
    Suporta a criação de aplicações em C# ou VB.
  • XNA Framework – mais vocacionada para a criação de jogos para a plataforma gaming da Microsoft.

É de notar que esta nova plataforma não é compatível com a plataforma Windows mobile 6.x, ou seja, quem já tinha desenvolvido aplicações para a versão anterior tem que efectuar a migração.

Este ponto é controverso, pois quem já tinha investido na criação de aplicações para a plataforma móvel Windows, tem agora que disponibilizar mais tempo para as adaptar a estas novas plataformas.

Conclusão

A Microsoft renova assim a sua proposta a nível móvel, introduzindo conceitos completamente novos em comparação com a entrega anterior, mudando até completamente, o rumo seguido até agora.

A utilização de ferramentas de desenvolvimento já muito conhecidas na criação de aplicações para a plataforma Windows faz com que a curva de aprendizagem seja bastante pequena, permitindo o foco na idealização e maturação das aplicações. A utilização nas aplicações dos novos conceitos disponibilizados pelos equipamentos mais recentes, geolocalização por exemplo, é efectuada de uma forma muito mais simplificada relativamente à proposta anterior.

Nos próximos artigos irei aprofundar alguns destes conceitos falados anteriormente, e após uma breve apresentação das ferramentas de desenvolvimento, vamos colocar as “mãos na massa” e começar a desenvolver aplicações para esta nova plataforma.

Não hesitem a enviar sugestões e as vossas opiniões.

Links

Ferramentas de programação: App Hub Tools
Página do portal de desenvolvimento: App Hub