Windows Phone Navigation

WINDOWS PHONE NAVIGATION

HISTÓRICO

O Windows Phone, desenvolvido pela Microsoft, é um sistema operacional móvel sucessor da plataforma Windows Mobile. Lançado inicialmente na Europa, Austrália e Cingapura em outubro de 2010, posterioermente nos EUA, Canadá e México em novembro de 2010. Ao contrário do objetivo de mercado empresarial do seu predecessor, o Windows Phone vem focado no mercado de consumo.
Comparado com a antiga versão da sua plataforma móvel Windows Mobile, a Microsoft traz com o Windows Phone uma nova interface gráfica denominada “Metro”, não permitindo portanto interfaces personalizáveis como acontecia até então, sendo todo o hardware em que o sistema operacional funciona controlado rigorosamente. Evidenciando que não funcionam no novo sistema nenhuma das aplicações para as antigas plataformas.

DESENVOLVIMENTO DO SISTEMA OPERACIONAL

Em 2004 começou o trabalho para uma grande atualização no Windows Mobile, sob o nome de projeto “Photon” devido ao seu desenvolvimento lento, foi cancelado. Com a equipe de desenvolvimento reorganizada em 2008, a Microsoft começou a trabalhar em um novo sistema operacional. Este novo produto deveria ser lançado em 2009 como Windows Phone, mas inúmeros atrasos fizeram com que o Windows Mobile 6.5 servisse como um lançamento intermediário.
A rapidez com que o Windows Phone foi desenvolvido trouxe algumas conseqüências, uma delas foi a não possibilidade de executar os programas do Windows Mobile no novo sistema.

APLICATIVOS PARA WINDOWS PHONE NAVIGATION

Os aplicativos da Silverlight utilizados para navegação no Windows Phone apresentam um modelo de página muito similar aos da web onde os usuários finais navegam entre as páginas. Existe um botão Voltar no hardware dedicado que facilita retornar a páginas anteriores (sem consumo de espaço na tela) e o registro em histórico da navegação possui integração com a plataforma para aumentar a facilidade ao navegar ou transição entre diferentes aplicativos.

1.JPG

Pode-se criar quantas páginas forem necessárias, elas serão armazenadas através do controle frame. Apenas um único frame está disponível para cada aplicativo, entre algumas de suas características podemos citar as seguintes:
- Determina a área de cliente do aplicativo;
- Reserva espaço para barra de status e barra de aplicativos.

O Windows Phone oferece dois botões importantes na navegação de sua app. O primeiro é o botão Voltar, quando pressionado o usuário retorna a página anterior, caso essa página seja a inicial do aplicativo, essa ação fará com que o usuário saia da aplicação. O segundo, é o botão Iniciar, que desativa o aplicativo que está sendo executado e retorna a tela inicial do Sistema. A partir daí o usuário poderá iniciar outro aplicativo ou retornar ao anterior utilizando o botão Voltar.
Dois métodos importantes são utilizados para a navegação das páginas. São eles:
Navigate: Navega até uma nova página especificada pelo parâmetro URI. Este método é utilizado pelo PhoneApplicationFrame.
GoBack: Navega até a entrada mais recente na pilha.
Abaixo verificamos a seqüência de eventos que ocorrem quando navega-se entre as páginas:

image2.png

À medida que navegamos da Pagina1 para Pagina2, as páginas não são armazenadas como lixo até o método GoBack da página ser chamado. As páginas inativas são armazenadas em uma pilha "voltar".
O sistema operacional mantém uma pilha "voltar" para páginas às quais você pode retornar. Assim elas não são imediatamente destruídas ou coletadas como lixo, quando ocorre navegação de uma página para outra. Em vez disso, são movidas para a pilha "voltar" e mantidas ativas (na memória) e, quando o usuário clica em voltar para acessar a página em questão, ela é exibida novamente. A página não é recriada (a menos que o aplicativo tenha sido desativado e marcado para exclusão entre o momento em que o usuário saiu da página e clicou em voltar).
Apesar de não ser coletada como lixo quando você sai de uma página, ela não fica mais visível ou ativa até você retornar, por isso deve-se fazer qualquer limpeza e liberar quaisquer recursos quando o usuário sair de uma página.

MODELO DE NAVEGAÇÃO DO WINDOWS PHONE

O modelo de navegação do Windows Phone é formado por um quadro (PhoneApplicationFrame) e uma ou mais páginas (PhoneApplicationPage) que armazenam o conteúdo carregado no quadro.
A maioria dos eventos de navegação é exposto pelo PhoneApplicationFrame e também através do método Navigate usado para percorrer as páginas. A área de cliente, área do aplicativo e reserva do espaço para a barra de aplicativo e a bandeja do sistema é também visualizados pelo PhoneApplicationFrame.
No PhoneApplicationPage existem notificações específicas de página quando a mesma é acessada e quando ocorre a saída de uma página. Os eventos relacionados ao botão Voltar do hardware também são processados por essa aplicação.
Tanto o PhoneApplicationFrame e o PhoneApplicationPage compartilham um serviço para realizar a navegação chamado NavigationService. No Windows Phone é permitido o registro em diário (controlar o histórico de páginas carregadas para que você possa voltar a uma página anterior) e expõe APIs para que você possa retornar. Não existe portanto o suporte para navegação progressiva no telefone.

APIs DO WINDOWS PHONE

A Windows Phone Application Plataform, permite que os desenvolvedores explorem toda a capacidade do Windows Phone sem muita dificuldade. Foi elaborado com base em ferramentas existentes e consolidadas pela Microsoft, tais como Visual Studio, Expression Blend, Silverlight e XNA Framework.
Os principais componentes da navegação do windows phone 7 são PhoneApplicationFrame e PhoneApplicationPage.
O PhoneApplicationFrame funciona como um rootvisual para o aplicativo. Ele é instanciado na classe app como app.xaml.cs(a extensão xaml, é gerada pelo Silverligth).

O código abaixo mostra uma Instanciação de RootFrame em App.xaml.cs

1. private void InitializePhoneApplication()
2. {
3. if (phoneApplicationInitialized)
4. return;
5.
6. // Create the frame but don't set it as RootVisual yet; this allows the splash
7. // screen to remain active until the application is ready to render.
8. RootFrame = new PhoneApplicationFrame();
9. RootFrame.Navigated += CompleteInitializePhoneApplication;
10.
11.
12. // Handle navigation failures
13. RootFrame.NavigationFailed += RootFrame_NavigationFailed;
14.
15. // Ensure we don't initialize again
16. phoneApplicationInitialized = true;
17. }

O tempo de execução navega de forma automática até a instancia do PhoneApplicationPage, que é específicado como padrão pelo atributo NavigationPage que se encontra no manifesto de aplicativo WMAppManifest.xml.

O quadro abaixo mostra os metodos, propriedades e eventos do PhoneApplicationFrame

Nome Tipo Descrição
Navigate Método Navega até um novo PhoneApplicationPage especificado pelo parâmetro URI. O parâmetro é um Uri, por isso uma chamada a Navigate efetivamente instancia a nova página e navega até ela (você não o passa em uma página já instanciada).
CanGoBack Propriedade somente leitura Retorna true se a pilha voltar do aplicativo (o histórico do registro em diário) não está vazia. Isso significa que os usuários fizeram navegação progressiva pelo menos uma vez no aplicativo. Se o aplicativo estiver na primeira página carregada no aplicativo, CanGoBack retornará false e você não poderá chamar GoBack por programação, mas o usuário final ainda poderá pressionar o botão Voltar do hardware e o aplicativo sairá porque está voltando ao aplicativo que estava em execução.
CanGoForward Propriedade somente leitura Não aplicável ao Windows Phone. Sempre retorna false porque não há suporte para navegação progressiva.
UriMapper Propriedade Obtém/define um UriMapper. Está além do escopo deste artigo, mas vale mencionar que há suporte para o mapeamento de Uri.
GoBack Método Navega até a entrada mais recente na pilha voltar. Este método emitirá uma exceção se não houver nenhuma entrada na pilha voltar; sempre verifique CanGoForward antes de chamar este método.
GoForward Método Sem suporte no Windows Phone; emitirá InvalidOperationException
Navigating Evento Ocorre quando é solicitada uma nova navegação. Neste momento, ainda é possível cancelá-lo; para isso, defina a propriedade Cancel no parâmetro NavigatingCancelEventArgs como true. Consulte mais adiante as observações sobre por que você não deve cancelar navegações regressivas neste evento.
Navigated Evento Ocorre quando uma navegação foi executada. Isso não significa que o conteúdo da página navegada foi carregado. Ele simplesmente ocorre quando o conteúdo foi localizado e acessado.
NavigationFailed Evento Ocorre quando um erro é encontrado.
NavigationStopped Evento Ocorre quando a navegação é interrompida chamando o método StopLoading ou mais comumente quando uma nova navegação é solicitada e uma navegação estava em andamento.

A figura abaixo mostra a sequencia dos eventos a medida que o usuário navega pelas paginas.

gg650662.KirRod_Figure3_hires(en-us,MSDN.10).jpg

PhoneApplicationFrame é o responsável pelo uso da área de cliente que o aplicativo precisará e o espaço na barra de aplicativo e bandeja do sistemna.

O PhoneApplicationPage, tem dois papeis importantes na navegação:

  • controle de botão voltar do hardware
  • Controla o tempo de vida das paginas determinando quando ela é ativa ou não

O PhoneApplicationPage utiliza um evento chamdo BackKeyPress, que monitora o hardware esperando o pressionamento do botão voltar. Pode-se utilizar um método virtual chamado OnBackKeyPress que manipula e pode até mesmo cancelar o pressionamento do botão voltar.
O PhoneApplicationPage, fecha o ciclo de vida navegação com a chamada dos métodos pertencente ao PhoneApplicationFrame.

INTERFACE DO UTILIZADOR

A nova interface do utilizador apresentada pelo Windows Phone é baseada no sistema de design operativo denominado “Metro”. A tela inicial é feita de “tiles” (("telhas", em português).Os tiles são atalhos para aplicações, funções, recursos e itens individuais (como contatos, páginas da Internet, aplicações ou itens de multimídia), que os utilizadores podem adicionar, rearranjar ou remover. Eles são dinâmicos e atualizam-se em tempo real – por exemplo, o tile de uma conta de email mostra o número de mensagens por ler ou um tile mostra uma atualização em tempo real do tempo.
A tecnologia utilizada pelo sistema operativo é multi-toque. E a interface tem preto como tema padrão para prolongar a duração da bateria.

NAVEGAÇÃO NA INTERNET

A versão do Internet Explorer Mobile vem embutido no Windows Phone com um motor de renderização que se encontra entre o Internet Explorer 7 e o Internet Explorer 8.
O Internet Explorer no sistema operativo móvel permite ao usuário manter uma lista de favoritos e mostrar um tile de atalho para uma página Web no ecrã inicial. São suportados até 6 separadores pelo navegador e que podem ser todos carregados em simultâneo. Inclui-se também gestos multi-toque, interface racionalizada, suaves animações de zoom e possibilidades de guardar imagens presentes na página Web.

EMAIL

Apresenta suporte para Hotmail, Outlook, Yahoo Mail, Gmail e demais serviços de email, assim como suporte para contas POP e IMAP. Existe uma sincronia dos contatos e calendários automaticamente com o email. Os usuários podem realizar buscas por palavras chaves por conteúdos de email, temas, remetentes e receptores.

COMPILADORES x WINDOWS PHONE NAVIGATION

A grande jogada da Microsoft com o Windows Phone, foi a facilidade no processo de programação. As ferramentas foram desenvolvidas com base em linguagens como C#, Visual Studio, dotnet, Silverlight e XNA Framework. Com isso, a Microsoft fez uma espécie de aproveitamento do front-end facilitando a portabilidade dos aplicativos existentes e colocando o Windows Phone na concorrência imediata contra os sistemas operacionais móveis que já tem mais tempo no mercado.

REFERÊNCIAS BIBLIOGRÁFICAS

http://msdn.microsoft.com/pt-br/magazine/gg650662.aspx
http://devbrasil.net/profiles/blogs/modelo-de-navegacao-de-paginas
http://silverlightbrasil.ning.com/profiles/blogs/navegacao-de-paginas-no
http://blog.sandrobatista.com/2010/11/11/aplicaes-para-windows-phone/
http://www.tiinside.com.br/07/04/2011/android-e-windows-phone-devem-liderar-mercado-nos-proximos-anos/ti/220015/news.aspx
http://pt.wikipedia.org/wiki/Windows_Phone_7

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License