O padrão MVVM é o padrão de desenvolvimento recomendado para aplicações Windows Phone. E para ajudar na implementação desde padrão existem vários toolkits que facilitam o processo de desenvolvimento.
Nesta sessão a Sara irá mostrar como usar o toolkit MVVM Light e o Cimbalino Windows Phone Toolkit, dois toolkits muito poderosos para a implementação do padrão MVVM. Para tal irá construir alguns exemplos durante a sessão como:
- obter a localização;
- lançar a aplicação da câmara que permitirá tirar fotografias;
- lançar a aplicação do telefone que permitirá efetuar chamadas;
- obter o identificador univoco do telefone;
- escrever texto e images no isolated storage.
Como não entalar os dedos nas janelas: Finger-based apps no Windows 8
MVVM WP
1. 44ª Reunião Lisboa - 18/01/2014
http://netponto.org
MVVM Light e Cimbalino Toolkit
para Windows Phone
Sara Silva
2. Sara Silva
Windows 8 & Windows Phone Developer
MCPD: Windows Developer 3.5
MCTS: WPF 3.5/4.0 e Windows Forms 3.5
Lic. Matemática: Especialização em Computação - DMUC
Comunidades:
4. Introdução
MVVM – model view view model é o padrão de desenvolvimento recomendado para aplicações
Windows Phone.
Os elementos do padão MVVM são:
• Views - representa as páginas (está relacionado com a UI).
• ViewModel - representa as classes que serão usadas para conectar a interface com o
modelo de dados.
• Model - representa as classes que definem as entidades e a lógica de negócio.
5. Introdução
MVVM – model view view model é o padrão de desenvolvimento recomendado para aplicações
Windows Phone.
6. MVVM Light Toolkit
MVVM Light – é um toolkit para ajudar na implementação do padrão de desenvolvimento MVVM.
Classes mais relevantes:
• ObservableObject
• ViewModelBase
• ViewModelLocator
• RelayCommand
• Messenger
8. Cimbalino Toolkit
Cimbalino é um conjunto de itens uteis e poderosos para ajudar na implementação de aplicações
Windows Phone.
O toolkit divide-se em várias componentes:
• Cimbalino.Phone.Toolkit
• Cimbalino.Phone.Toolkit.Background
• Cimbalino.Phone.Toolkit.Camera
• Cimbalino.Phone.Toolkit.Controls
• Cimbalino.Phone.Toolkit.DeviceInfo
• Cimbalino.Phone.Toolkit.Location
• Cimbalino.Phone.Toolkit.MediaLibrary
• Cimbalino.Phone.Toolkit.PhoneDialer
• Cimbalino.Phone.Toolkit.UserInfo
9. Cimbalino Toolkit
Cimbalino é um conjunto de itens uteis e poderosos para ajudar na implementação de aplicações
Windows Phone.
O toolkit divide-se em várias componentes:
• Cimbalino.Phone.Toolkit - Projeto base do toolkit contendo serviços para implementação
do padrão de MVVM, conversores, classes auxiliares, métodos de extensões;
• Cimbalino.Phone.Toolkit.Background
• Cimbalino.Phone.Toolkit.Camera
• Cimbalino.Phone.Toolkit.Controls
• Cimbalino.Phone.Toolkit.DeviceInfo
• Cimbalino.Phone.Toolkit.Location
• Cimbalino.Phone.Toolkit.MediaLibrary
• Cimbalino.Phone.Toolkit.PhoneDialer
• Cimbalino.Phone.Toolkit.UserInfo
10. Cimbalino Toolkit
Cimbalino é um conjunto de itens uteis e poderosos para ajudar na implementação de aplicações
Windows Phone.
O toolkit divide-se em várias componentes:
• Cimbalino.Phone.Toolkit
• Cimbalino.Phone.Toolkit.Background - Projeto do toolkit contendo serviços para
implementação do padrão de MVVM compatível com “background agents”.
• Cimbalino.Phone.Toolkit.Camera
• Cimbalino.Phone.Toolkit.Controls
• Cimbalino.Phone.Toolkit.DeviceInfo
• Cimbalino.Phone.Toolkit.Location
• Cimbalino.Phone.Toolkit.MediaLibrary
• Cimbalino.Phone.Toolkit.PhoneDialer
• Cimbalino.Phone.Toolkit.UserInfo
11. Cimbalino Toolkit
Cimbalino é um conjunto de itens uteis e poderosos para ajudar na implementação de aplicações
Windows Phone.
O toolkit divide-se em várias componentes:
• Cimbalino.Phone.Toolkit
• Cimbalino.Phone.Toolkit.Background
• Cimbalino.Phone.Toolkit.Camera - Projeto do toolkit contendo serviços para
implementação do padrão de MVVM que faz uso da câmera.
• Cimbalino.Phone.Toolkit.Controls
• Cimbalino.Phone.Toolkit.DeviceInfo
• Cimbalino.Phone.Toolkit.Location
• Cimbalino.Phone.Toolkit.MediaLibrary
• Cimbalino.Phone.Toolkit.PhoneDialer
• Cimbalino.Phone.Toolkit.UserInfo
12. Cimbalino Toolkit
Cimbalino é um conjunto de itens uteis e poderosos para ajudar na implementação de aplicações
Windows Phone.
O toolkit divide-se em várias componentes:
• Cimbalino.Phone.Toolkit
• Cimbalino.Phone.Toolkit.Background
• Cimbalino.Phone.Toolkit.Camera
• Cimbalino.Phone.Toolkit.Controls - biblioteca de controlos
• Cimbalino.Phone.Toolkit.DeviceInfo
• Cimbalino.Phone.Toolkit.Location
• Cimbalino.Phone.Toolkit.MediaLibrary
• Cimbalino.Phone.Toolkit.PhoneDialer
• Cimbalino.Phone.Toolkit.UserInfo
13. Cimbalino Toolkit
Cimbalino é um conjunto de itens uteis e poderosos para ajudar na implementação de aplicações
Windows Phone.
O toolkit divide-se em várias componentes:
• Cimbalino.Phone.Toolkit
• Cimbalino.Phone.Toolkit.Background
• Cimbalino.Phone.Toolkit.Camera
• Cimbalino.Phone.Toolkit.Controls
• Cimbalino.Phone.Toolkit.DeviceInfo Projeto do toolkit contendo serviços para
implementação do padrão de MVVM com acesso a informação do dispositivo
• Cimbalino.Phone.Toolkit.Location
• Cimbalino.Phone.Toolkit.MediaLibrary
• Cimbalino.Phone.Toolkit.PhoneDialer
• Cimbalino.Phone.Toolkit.UserInfo
14. Cimbalino Toolkit
Cimbalino é um conjunto de itens uteis e poderosos para ajudar na implementação de aplicações
Windows Phone.
O toolkit divide-se em várias componentes:
• Cimbalino.Phone.Toolkit
• Cimbalino.Phone.Toolkit.Background
• Cimbalino.Phone.Toolkit.Camera
• Cimbalino.Phone.Toolkit.Controls
• Cimbalino.Phone.Toolkit.DeviceInfo
• Cimbalino.Phone.Toolkit.Location - Projeto do toolkit contendo serviços para
implementação do padrão de MVVM com acesso a informação da localização GPS.
• Cimbalino.Phone.Toolkit.MediaLibrary
• Cimbalino.Phone.Toolkit.PhoneDialer
• Cimbalino.Phone.Toolkit.UserInfo
15. Cimbalino Toolkit
Cimbalino é um conjunto de itens uteis e poderosos para ajudar na implementação de aplicações
Windows Phone.
O toolkit divide-se em várias componentes:
• Cimbalino.Phone.Toolkit
• Cimbalino.Phone.Toolkit.Background
• Cimbalino.Phone.Toolkit.Camera
• Cimbalino.Phone.Toolkit.Controls
• Cimbalino.Phone.Toolkit.DeviceInfo
• Cimbalino.Phone.Toolkit.Location
• Cimbalino.Phone.Toolkit.MediaLibrary - Projeto do toolkit contendo serviços para
implementação do padrão de MVVM com acesso à biblioteca de imagens, músicas e vídeos.
• Cimbalino.Phone.Toolkit.PhoneDialer
• Cimbalino.Phone.Toolkit.UserInfo
16. Cimbalino Toolkit
Cimbalino é um conjunto de itens uteis e poderosos para ajudar na implementação de aplicações
Windows Phone.
O toolkit divide-se em várias componentes:
• Cimbalino.Phone.Toolkit
• Cimbalino.Phone.Toolkit.Background
• Cimbalino.Phone.Toolkit.Camera
• Cimbalino.Phone.Toolkit.Controls
• Cimbalino.Phone.Toolkit.DeviceInfo
• Cimbalino.Phone.Toolkit.Location
• Cimbalino.Phone.Toolkit.MediaLibrary
• Cimbalino.Phone.Toolkit.PhoneDialer - Projeto do toolkit contendo serviços para
implementação do padrão de MVVM com acesso ao telefone.
• Cimbalino.Phone.Toolkit.UserInfo
17. Cimbalino Toolkit
Cimbalino é um conjunto de itens uteis e poderosos para ajudar na implementação de aplicações
Windows Phone.
O toolkit divide-se em várias componentes:
• Cimbalino.Phone.Toolkit
• Cimbalino.Phone.Toolkit.Background
• Cimbalino.Phone.Toolkit.Camera
• Cimbalino.Phone.Toolkit.Controls
• Cimbalino.Phone.Toolkit.DeviceInfo
• Cimbalino.Phone.Toolkit.Location
• Cimbalino.Phone.Toolkit.MediaLibrary
• Cimbalino.Phone.Toolkit.PhoneDialer
• Cimbalino.Phone.Toolkit.UserInfo - Projeto do toolkit contendo serviços para
implementação do padrão de MVVM com acesso à informação do utilizador.
19. Conclusão
•
Separação da UI da lógica da aplicação aplicando o padrão MVVM.
•
Fácil implementação do padrão MVVM;
•
A injeção de dependência permite encapsular especificidades da plataforma.
26. Próximas reuniões presenciais
18/01/2014 – Janeiro (Lisboa)
01/02/2014 – Hackathon! (Lisboa)
22/02/2014 – Fevereiro (Lisboa)
22/03/2014 – Março (Lisboa)
12/04/2014 – SQL Saturday! (Lisboa)
19/04/2014 – Abril (Lisboa)
Reserva estes dias na agenda! :)
27. 1º Hackathon da Comunidade NetPonto
Dia 1 de Fevereiro de 2014 das 9h às 19h!
Serão distinguidas 3 equipas vencedoras, sendo cada uma receberá um dispositivo da Nokia
1º Prémio 1 Nokia Lumia 1020
2º Prémio 1 Nokia Lumia 925
3º Prémio 1 Nokia Lumia 625
A todos os membros das equipas vencedoras, serão atribuídos pontos e XP no portal
www.DVLUP.com:
1º Prémio 3000XP e 1500PTS
2º Prémio 2000XP e 1000PTS
3º Prémio 1000XP e 500PTS
28. 1º Hackathon da Comunidade NetPonto
Inscreve-te!
http://netponto.org/evento/1o-hackathon-da-comunidade-netponto/
Cimbalino.Phone.Toolkit - the base project of the toolkit, containing base MVVM services, some very usefull converters, helper classes and extension methods, and the bindable Application Bar behaviorCimbalino.Phone.Toolkit.Background - MVVM compatible services for background agentsCimbalino.Phone.Toolkit.Camera - MVVM compatible services for camera accessCimbalino.Phone.Toolkit.Controls - Controls library (requires Windows Phone Toolkit)Cimbalino.Phone.Toolkit.DeviceInfo - MVVM compatible services for device information accessCimbalino.Phone.Toolkit.Location - MVVM compatible services for location accessCimbalino.Phone.Toolkit.MediaLibrary - MVVM compatible services for media library accessCimbalino.Phone.Toolkit.PhoneDialer - MVVM compatible services for phone dialer accessCimbalino.Phone.Toolkit.UserInfo - MVVM compatible services for user information access
Cimbalino.Phone.Toolkit - the base project of the toolkit, containing base MVVM services, some very usefull converters, helper classes and extension methods, and the bindable Application Bar behaviorCimbalino.Phone.Toolkit.Background - MVVM compatible services for background agentsCimbalino.Phone.Toolkit.Camera - MVVM compatible services for camera accessCimbalino.Phone.Toolkit.Controls - Controls library (requires Windows Phone Toolkit)Cimbalino.Phone.Toolkit.DeviceInfo - MVVM compatible services for device information accessCimbalino.Phone.Toolkit.Location - MVVM compatible services for location accessCimbalino.Phone.Toolkit.MediaLibrary - MVVM compatible services for media library accessCimbalino.Phone.Toolkit.PhoneDialer - MVVM compatible services for phone dialer accessCimbalino.Phone.Toolkit.UserInfo - MVVM compatible services for user information access
Cimbalino.Phone.Toolkit - the base project of the toolkit, containing base MVVM services, some very usefull converters, helper classes and extension methods, and the bindable Application Bar behaviorCimbalino.Phone.Toolkit.Background - MVVM compatible services for background agentsCimbalino.Phone.Toolkit.Camera - MVVM compatible services for camera accessCimbalino.Phone.Toolkit.Controls - Controls library (requires Windows Phone Toolkit)Cimbalino.Phone.Toolkit.DeviceInfo - MVVM compatible services for device information accessCimbalino.Phone.Toolkit.Location - MVVM compatible services for location accessCimbalino.Phone.Toolkit.MediaLibrary - MVVM compatible services for media library accessCimbalino.Phone.Toolkit.PhoneDialer - MVVM compatible services for phone dialer accessCimbalino.Phone.Toolkit.UserInfo - MVVM compatible services for user information access
Cimbalino.Phone.Toolkit - the base project of the toolkit, containing base MVVM services, some very usefull converters, helper classes and extension methods, and the bindable Application Bar behaviorCimbalino.Phone.Toolkit.Background - MVVM compatible services for background agentsCimbalino.Phone.Toolkit.Camera - MVVM compatible services for camera accessCimbalino.Phone.Toolkit.Controls - Controls library (requires Windows Phone Toolkit)Cimbalino.Phone.Toolkit.DeviceInfo - MVVM compatible services for device information accessCimbalino.Phone.Toolkit.Location - MVVM compatible services for location accessCimbalino.Phone.Toolkit.MediaLibrary - MVVM compatible services for media library accessCimbalino.Phone.Toolkit.PhoneDialer - MVVM compatible services for phone dialer accessCimbalino.Phone.Toolkit.UserInfo - MVVM compatible services for user information access
Cimbalino.Phone.Toolkit - the base project of the toolkit, containing base MVVM services, some very usefull converters, helper classes and extension methods, and the bindable Application Bar behaviorCimbalino.Phone.Toolkit.Background - MVVM compatible services for background agentsCimbalino.Phone.Toolkit.Camera - MVVM compatible services for camera accessCimbalino.Phone.Toolkit.Controls - Controls library (requires Windows Phone Toolkit)Cimbalino.Phone.Toolkit.DeviceInfo - MVVM compatible services for device information accessCimbalino.Phone.Toolkit.Location - MVVM compatible services for location accessCimbalino.Phone.Toolkit.MediaLibrary - MVVM compatible services for media library accessCimbalino.Phone.Toolkit.PhoneDialer - MVVM compatible services for phone dialer accessCimbalino.Phone.Toolkit.UserInfo - MVVM compatible services for user information access
Cimbalino.Phone.Toolkit - the base project of the toolkit, containing base MVVM services, some very usefull converters, helper classes and extension methods, and the bindable Application Bar behaviorCimbalino.Phone.Toolkit.Background - MVVM compatible services for background agentsCimbalino.Phone.Toolkit.Camera - MVVM compatible services for camera accessCimbalino.Phone.Toolkit.Controls - Controls library (requires Windows Phone Toolkit)Cimbalino.Phone.Toolkit.DeviceInfo - MVVM compatible services for device information accessCimbalino.Phone.Toolkit.Location - MVVM compatible services for location accessCimbalino.Phone.Toolkit.MediaLibrary - MVVM compatible services for media library accessCimbalino.Phone.Toolkit.PhoneDialer - MVVM compatible services for phone dialer accessCimbalino.Phone.Toolkit.UserInfo - MVVM compatible services for user information access
Cimbalino.Phone.Toolkit - the base project of the toolkit, containing base MVVM services, some very usefull converters, helper classes and extension methods, and the bindable Application Bar behaviorCimbalino.Phone.Toolkit.Background - MVVM compatible services for background agentsCimbalino.Phone.Toolkit.Camera - MVVM compatible services for camera accessCimbalino.Phone.Toolkit.Controls - Controls library (requires Windows Phone Toolkit)Cimbalino.Phone.Toolkit.DeviceInfo - MVVM compatible services for device information accessCimbalino.Phone.Toolkit.Location - MVVM compatible services for location accessCimbalino.Phone.Toolkit.MediaLibrary - MVVM compatible services for media library accessCimbalino.Phone.Toolkit.PhoneDialer - MVVM compatible services for phone dialer accessCimbalino.Phone.Toolkit.UserInfo - MVVM compatible services for user information access
Cimbalino.Phone.Toolkit - the base project of the toolkit, containing base MVVM services, some very usefull converters, helper classes and extension methods, and the bindable Application Bar behaviorCimbalino.Phone.Toolkit.Background - MVVM compatible services for background agentsCimbalino.Phone.Toolkit.Camera - MVVM compatible services for camera accessCimbalino.Phone.Toolkit.Controls - Controls library (requires Windows Phone Toolkit)Cimbalino.Phone.Toolkit.DeviceInfo - MVVM compatible services for device information accessCimbalino.Phone.Toolkit.Location - MVVM compatible services for location accessCimbalino.Phone.Toolkit.MediaLibrary - MVVM compatible services for media library accessCimbalino.Phone.Toolkit.PhoneDialer - MVVM compatible services for phone dialer accessCimbalino.Phone.Toolkit.UserInfo - MVVM compatible services for user information access
Cimbalino.Phone.Toolkit - the base project of the toolkit, containing base MVVM services, some very usefull converters, helper classes and extension methods, and the bindable Application Bar behaviorCimbalino.Phone.Toolkit.Background - MVVM compatible services for background agentsCimbalino.Phone.Toolkit.Camera - MVVM compatible services for camera accessCimbalino.Phone.Toolkit.Controls - Controls library (requires Windows Phone Toolkit)Cimbalino.Phone.Toolkit.DeviceInfo - MVVM compatible services for device information accessCimbalino.Phone.Toolkit.Location - MVVM compatible services for location accessCimbalino.Phone.Toolkit.MediaLibrary - MVVM compatible services for media library accessCimbalino.Phone.Toolkit.PhoneDialer - MVVM compatible services for phone dialer accessCimbalino.Phone.Toolkit.UserInfo - MVVM compatible services for user information access
Cimbalino.Phone.Toolkit - the base project of the toolkit, containing base MVVM services, some very usefull converters, helper classes and extension methods, and the bindable Application Bar behaviorCimbalino.Phone.Toolkit.Background - MVVM compatible services for background agentsCimbalino.Phone.Toolkit.Camera - MVVM compatible services for camera accessCimbalino.Phone.Toolkit.Controls - Controls library (requires Windows Phone Toolkit)Cimbalino.Phone.Toolkit.DeviceInfo - MVVM compatible services for device information accessCimbalino.Phone.Toolkit.Location - MVVM compatible services for location accessCimbalino.Phone.Toolkit.MediaLibrary - MVVM compatible services for media library accessCimbalino.Phone.Toolkit.PhoneDialer - MVVM compatible services for phone dialer accessCimbalino.Phone.Toolkit.UserInfo - MVVM compatible services for user information access