Rescaldo do Windows Phone App Code Camp

3 dias no Palmela Village Golf Resort, cerca de 60 pessoas de todas as idades (estudantes, programadores profissionais e amadores, designers, etc.), 30 projectos de aplicações Windows Phone, vários equipamentos Windows Phone para usarem (e abusarem!), algumas sessões técnicas à mistura e o acompanhamento meu e do Nuno Silva nos seus projectos…

Resumindo numa só palavra: Sucesso!!!

Pessoalmente, foi o evento mais desgastante e simultaneamente mais gratificante que tive o prazer de colaborar!!!

No final, o espírito de missão cumprida e saber que existem agora mais 60 pessoas impressionadas com a facilidade que é desenvolver para Windows Phone, e o enorme potencial disso! :)

Ficam ainda os parabéns à organização do Nuno Silva, do André Malico e do Miguel Vicente, e a esperança de serem realizados novos Windows Phone App Code Camp num futuro próximo! ;)

Nokia Lumia 800 skin

O emulador do Windows Phone apresenta uma skin muito básica de um dispositivo genérico, mas pela internet podemos encontrar várias skins alternativas, nomeadamente a do Nokia Lumia 710 disponibilizada pela Telerik, e a do Samsung Focus pelo Jeff Wilcox.

Nesse sentido, procurei por uma do Nokia Lumia 800, mas as (várias!) que encontrei tinham todas baixa qualidade, sendo resultado de imagens de fraca definição…

Nesse sentido, tratei de criar a minha própria skin do Nokia Lumia 800 para o emulador do Windows Phone, e o resultado pode ser visto ao lado! :)

Esta é uma skin com imagens de alta resolução, com os seguintes botões totalmente funcionais:

  • Back/App switcher
  • Start/Speech
  • Search
  • Volume Up
  • Volume Down
  • Camera

Nota: apesar de o botão “Power” estar também presente e fazer a devida animação(!), este parece não funcionar com o Windows Phone!

Podem fazer download da skin aqui! ;)

Candidaturas ao WP App Code Camp terminam dentro de 2 dias…

… por isso não percam tempo e tratem de enviar já a vossa! :D

Relembro: 3 dias (de 16 a 18 de Dezembro), no Palmela Village Golf Resort com tudo pago(!), para terem todo o tempo e apoio para concretizarem aquela ideia que tiveram para uma aplicação no Windows Phone!

Para quem não viu anteriormente o anúncio do evento, aqui tem a informação sobre o registo:

O registo no WP7 App Code Camp é gratuito (yup!), e porque as vagas são muito, muito limitadas, para assegurar o teu lugar deverás enviar um e-mail até 9 de Dezembro para t-andma@microsoft.com e provar que tu, ou a tua equipa, merecem uma vaga. Como? Basta que no e-mail incluas as seguintes informações:

  • dados pessoais individuais ou da tua equipa (até 2 elementos) – nome, telefone, e-mail;
  • numa frase, explicar qual a ideia de app que vais/vão desenvolver no Camp;
  • numa frase, porque deves/devem ser o(s) escolhido(s)? 

Iremos, então, notificar quais os seleccionados até ao dia 12 de Dezembro!

Posso desde já confirmar que em resposta a um convite que me foi feito pela Microsoft, estarei presente no evento para juntamente com o Nuno Silva dar apoio a todos os presentes na criação das suas aplicações! :)

I Love Windows Phone

O Windows Phone ganhou um novo logótipo quando o “Mango” foi conhecido, algo que já tinha antes reportado.

Juntamente com este novo logótipo (simples, plano, monocromático, mais “Metro”) apareceu uma imagem diferente do emblema “I Love Windows Phone”; a primeira vez que o vi foi num artigo do wpcentral, com a imagem abaixo reproduzida.

Quando vi esta imagem, tentei de várias formas encontrar a original na Internet, sempre sem grande sucesso!

Como parecia que ninguém conhece a origem deste emblema (nem a própria Microsoft, que cheguei até a contactar), tentei então vectorizar o mesmo, chegando ao resultado que podem ver se seguida.

É a cópia mais fiel que consegui fazer da foto do wpcentral, e que está agora aqui disponível para download, nos formatos vectoriais PDF, SVG, Expression Design e num simples PNG transparente! :)

I Love Windows Phone (25.47 kB)
Downloaded 172 times

Nota: quem esteve presente no Windows Phone Design Day que decorreu em Outubro passado na Microsoft Portual, deve estar recordado de ter vindo para casa com uma t-shirt vermelha com este emblema em branco, certo? Pois então aqui tem a imagem original a partir da qual essas t-shirts foram criadas! ;)

Cimbalino Windows Phone Toolkit: ApplicationBarBehavior

ApplicationBar disponível para utilização no desenvolvimento de aplicações para Windows Phone foi desde o primeiro dia uma grande dor de cabeça para os programadores, pelo simples facto de este controlo não ser um FrameworkElement.

Quer isto dizer que não é possível aplicar Styles ou Templates à ApplicationBar, e mais importante ainda, não é possível fazer Binding das suas propriedades, algo que complica e muito quem quer utilizar uma arquitectura baseada em MVVM!

É certo que a arquitectura MVVM não é completamente fechada e limitada, e como tal existem alternativas para ultrapassar este problema (por exemplo, esta e esta)!

No meu caso, de forma a poder utilizar a Application Bar nas minhas aplicações de uma forma mais “MVVM’ed”, criei o ApplicationBarBehavior que podem encontrar no Cimbalino Windows Phone Toolkit!

Este Behavior, quando aplicado no elemento LayoutRoot de uma PhoneApplicationPage, permite criar e manter uma Application Bar com propriedades Bindable de forma a manter uma arquitectura MVVM mais consistente.

Para melhor explicar, nada como um exemplo:

<!-- Restante código -->

<Grid x:Name="LayoutRoot" Background="Transparent">
    <i:Interaction.Behaviors>
        <cimbalino:ApplicationBarBehavior>
            <cimbalino:ApplicationBarIconButton Command="{Binding AddItemCommand, Mode=OneTime}" IconUri="/Images/appbar.add.rest.png" Text="add" IsVisible="{Binding IsSelectionDisabled}" />
            <cimbalino:ApplicationBarIconButton Command="{Binding EnableSelectionCommand, Mode=OneTime}" IconUri="/Images/appbar.manage.rest.png" Text="select" IsVisible="{Binding IsSelectionDisabled}" />
            <cimbalino:ApplicationBarIconButton Command="{Binding DeleteItemsCommand, Mode=OneTime}" CommandParameter="{Binding SelectedItems, ElementName=ItemsMultiselectList}" IconUri="/Images/appbar.delete.rest.png" Text="delete" IsVisible="{Binding IsSelectionEnabled}" />
        </cimbalino:ApplicationBarBehavior>
    </i:Interaction.Behaviors>

    <!-- Restante código -->

</Grid>

<!-- Restante código -->

No excerto de código acima podemos ver o ApplicationBarBehavior com uma série de controlos ApplicationBarIconButton (tal como seria feito normalmente), e rapidamente nos apercebemos de algumas novas propriedades como o Command, CommandParameter, e IsVisible (algo que não encontramos de base na ApplicationBar do Windows Phone); apesar de neste exemplo isso não ser visível, também as propriedades Text e IconUri são Bindable!

Para melhor explorarem o ApplicationBarBehavior, proponho que façam download do código completo do Cimbalino Windows Phone Toolkit do GitHub, e depois executem a solução BindableApplicationBar que encontram na pasta “samples”, ou como alternativa mais rápida, acedam ao seguinte link para a MSDN Code Gallery:

BindableApplicationBar (link externo)
Downloaded 11 times

Windows Phone App Code Camp

A Microsoft Portugal está a preparar para o fim de semana de 16 a 18 de Dezembro o primeiro Windows Phone App Code Camp!

Esta é sem dúvida uma oportunidade única para implementar aquela ideia para uma aplicação de Windows Phone que tem, mas que por falta de oportunidade, conhecimento, ou mesmo outra razão, ainda não o fez.

Estamos a falar de 3 dias no Palmela Village Golf Resort com tudo pago(!), com o acompanhamento do Nuno Silva para fazer essas aplicações realidade!

Podem ver o anuncio oficial deste evento com mais informações importantes no link em baixo.

Windows Phone App Code Camp (469.62 kB)
Downloaded 630 times

Truques & Dicas no Desenvolvimento para Windows Phone @ NetPonto

No passado sábado estive em Coimbra para mais um evento do NetPonto (aquela que considero já ser actualmente a melhor comunidade técnica Microsoft em Portugal), onde apresentei uma sessão sobre alguns Truques & Dicas no Desenvolvimento para Windows Phone que eu próprio utilizo no dia a dia nas minhas aplicações!

Os slides da minha sessão já se encontram publicados no SlideShare do NetPonto, e estão também aqui reproduzidos:

A nível de código, tudo o que apresentei colocarei sob o formato de aplicações de demonstração no Cimbalino Windows Phone Toolkit, disponível aqui! :)

Cimbalino Windows Phone Toolkit

Está disponível desde ontem o Cimbalino Windows Phone Toolkit, as minhas ferramentas pessoais no desenvolvimento de aplicações para Windows Phone!

O toolkit está dividido por projectos, cada um específico às capabilities disponíveis nas aplicações de Windows Phone.

Disponibilizei este toolkit em código aberto sob licença MIT no GitHub; a escolha do GitHub neste caso tem a ver com o facto que este me garante uma plataforma colaborativa superior ao disponibilizado actualmente no CodePlex!

Podem ainda instalar o toolkit via NuGet, utilizando as seguintes handles:

Nos próximos dias irei incluir aplicações de demonstração ao projecto e alguma documentação.

Entretanto quem quiser pode colaborar reportando bugs, dando sugestões e mesmo fazendo fork do projecto e alterando directamente o código! :)

Silverlight for Windows Phone Toolkit – Nov 2011

Já se encontra disponível a versão de Novembro do Silverlight for Windows Phone Toolkit!

A lista completa de novidades e correcções é relativamente extensa, e está disponível num artigo do Jeff Wilcox (Senior Software Developer na Silverlight Phone & Devices team).

Como de costume, o toolkit está disponível para download directo do MSI, package através do NuGet, e código fonte no Codeplex!

Nota: pessoalmente já detectei alguns problemas com esta versão, nomeadamente uma situação com o ListPicker que remove todas as transições das páginas após ter sido aberto; este bug já foi aqui reportado, e pretendo brevemente disponibilizar um patch aqui no blog para este problema!

Windows Phone Development @ Instituto Politécnico da Guarda

Ontem tive o prazer de apresentar um Workshop sobre Windows Phone Development no Instituto Politécnico da Guarda (IPG), aceitando com todo o gosto o convite que me foi feito pelo Prof. Carlos Carreto, coordenador do Mestrado em Computação Móvel leccionado nesta instituição.

Os slides que utilizei na minha sessão estão já publicados no SlideShare, e aqui reproduzidos:

Fica o meu agradecimento ao Prof. Carlos Carreto e ao IPG pelo convite.