Silverlight 5

Depois de meses com rumores (infundados) de que a Microsoft ia largar o Silverlight em prole do HTML5, heis que é chegado finalmente o dia de lançamento oficial do Silverlight 5!

As novidades são muitas, mas estas são as que mais se destacam:

Podem encontrar na página oficial do Silverlight uma série de vídeos introdutórios com Pete Brown, Developer Division Community Program Manager na Microsoft.

@Silverlight SDK

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.

CTT Objectos – Reloaded!

Dados os problemas que tenho vindo a ter com a certificação e aprovação de aplicações multi-língua no Marketplace (já aqui anteriormente escrevi sobre o assunto), resolvi tratar do problema simplesmente submetendo as minhas aplicações apenas e só em Português de Portugal!

Assim, resubmeti o CTT Objectos, de forma que a versão anteriormente publicada não terá novas actualizações.

Quer isto dizer que quem pretender continuar a utilizar esta aplicação e ter acesso a futuras actualizações e melhoramentos, deverá desinstalar a que actualmente tem e instalar de novo através do seguinte botão:

Para facilitar, podem utilizar a funcionalidade Bing Vision presente no Search do vosso Windows Phone, e apontar a câmara para a imagem seguinte:

Dado que se trata de uma nova submissão, todos os comentários e avaliações dadas à aplicação anteriormente não poderão ser aproveitadas, pelo que agradeço a quem quiser ajudar, avaliando a aplicação! ;)

Peço desculpa de todo este incómodo, mas é algo a que sou praticamente alheio, dado que não existe qualquer documentação dada pela Microsoft sobre esta situação… :-|