Publicação em Diário da República: Aviso n.º 12718/2016 - 19/10/2016
6 ECTS; 2º Ano, 1º Semestre, 60,0 PL + 30,0 TP , Cód. 620016.
Docente(s)
            
(1) Docente Responsável
(2) Docente que lecciona
Pré-requisitos
          Conhecimentos aprofundados da linguagem de programação C#.
Conhecimentos básicos de XAML/XML não são obrigatórios, mas são uma mais valia
Objetivos
          Aprender e dominar o desenvolvimento de aplicações, com e sem persistência e de dados, para dispositivos móveis em plataformas Android e iOS, utilizando a framework Xamarin.Forms.
Programa
          Cap. 1  Conceitos básicos sobre Xamarin.Forms
     - Desenvolvimento Xamarin nativo vs Xamarin.Forms
     - Desenvolvimento Multi-Plataforma
     - Código partilhado
     - Ambientes de desenvolvimento integrados
     - Emuladores e Simuladores
     - Portable Class Library (PCL) Apps vs Shared Asset Project (SAP) Apps
     - Estrutura de ficheiros de uma solução Xamarin.Forms
Cap. 2  Os projetos Android e iOS
     - A view Label
     - Padding 
Cap. 3  Utilização de Texto
     - Parágrafos
     - Cores do Texto e do Fundo
     - A Estrutura Color
     - Esquema de cores padrão
     - Tamanho e atributos da Fonte
     - Formatação de Texto
Cap. 4  StackLayout e Scrolling
     - O modelo de apresentação de views
     - Conteúdo deslizante (Scrolling)
     - Frame e BoxView
     - ScrollView sobre uma StackLayout
Cap. 5  Dimensões
     - Pixeis, Points,dps, DIPs e DIUs
     - Unidades métricas
          - Tamanho estimado da Fonte
          - Ajustar tamanho do texto
Cap. 6  Botões e Evento Clicked 
     - Evento Clicked nos Botões
          - Partilha do Evento Clicked em botões distintos
          - Event Handlers Anónimos
          - Diferenciação de Views através de IDs
          - Salvaguarda de informação pendente
Cap. 7  Utilização de XAML 
     - Propriedades e Atributos
     - Adicionar código XAML ao projeto
     - Formatação de Texto
     - Passagem de argumentos
     - x: Nome do Atributo
     - Views personalizadas baseadas em XAML
     - Events e Handlers
     - Gestos
Cap. 8  Chamadas a API dependentes da plataforma
     - Pré-processamento em SAP
     - Classes Paralelas e SAP
     - DependencyService e PCL
     - Produção de sons dependente da plataforma
Cap. 9  Markup Extentions do XAML 
     - Estrutura do código
     - Acesso a membros estáticos
     - Dicionário para acesso a objectos
     - Outras markup extentions
Cap. 10  A estrutura da classe Bindable 
     - A hierarquia das classes do Xamarin.Forms
     - BindableObjects e BindableProperty
     - Definir propriedades bindable
Cap. 11  Estilos (Styles)
     - O estilo básico
     - Estilos no código
     - Herança de estilos
     - Estilos implícitos
     - Estilos dinâmicos
     - Estilos e dispositivos
Cap. 12  Bitmaps 
     - Bitmaps independentes da plataforma
     - Streaming de bitmaps
     - Bitmaps dependentes da plataforma
Cap. 13  O layout AbsoluteLayout 
     - Características do AbsoluteLayout
     - Propriedades attached bindable
     - Dimensões, coordenadas e posicionamento proporcionais 
     - XAML e o AbsoluteLayout
     - Overlays
Cap. 14  Elementos interativo da interface  
     - Slider e Stepper
     - Switch e Checkbox
     - Introdução de texto
     - Seleção de data e hora
Cap. 15  Data Binding: Parte I
     - Código e XAML
     - Source e BindingContext
     - Binding mode
     - Formatação de strings
     - A propriedade Path
     - Conversão de valores de Binding
     - Bindings e views personalizadas
Cap. 16  O objeto Grid e Coleções
     - Grid
     - Picker
     - ListView
     - ListView e o MVVM
     - TableView
Cap. 17  Navegação entre páginas
     - Páginas Modais e Não-Modais
     - Tipos de navegação
     - Transferência de dados entre páginas
     - Salvaguarda e recuperação da stack de navegação
Cap. 18  Tipos de Páginas
     - Páginas Master-Detail
     - Páginas com separadores (Tabbed pages)
Cap 19  Data Binding: Parte II e Acesso a Dados
     - Introdução
     - A base de dados SQLite
     - A biblioteca SQLite.NET
     - Data Binding
          - A interface INotifyPropertyChanged
          - ViewModels e o MVVM
          - Binding a ViewModels e Data Models
     - Utilização da biblioteca SQLite.NET
          - Criação de uma base de dados
          - Incluir uma base de dados previamente criada
          - Definição do caminho (path) da base de dados
               - Ligação à BD usando PCL
               - Ligação em Android
               - Ligação em iOS
          - Criação de Tabelas
               - Utilização de atributos
               - Selecionar, Inserir, Atualizar e Apagar registos
               - Trancar (Lock) registos
          - Criação Layer de Acesso a Dados (DAL)
               - Criação do repositório
               - Manipulação do repositório
               - Adicionar métodos ao repositório
Metodologia de avaliação
          - Projeto de desenvolvimento de uma aplicação Cross-Platform, para iOS e Android  (Peso 100%).
Os projectos têm discussão obrigatória.
Bibliografia
          - Hermes, D. (2015). Xamarin Mobile Application Development. (pp. 297-337). California:  Apress
- Petzold, C. (2016). Creating Mobile Apps with Xamarin.Forms. (pp. 1-1050). Redmond:  Microssoft Press
Método de Ensino
          Aulas teórico-práticas expositivas onde se descrevem os conceitos fundamentais. Aulas práticas de resolução de casos práticos e aplicação dos conceitos a cenários de utilização real.
Software utilizado nas aulas
          Visual Studio;
Android SDK;
XCode;

















