Titulo Estágio
Implementação de uma Plataforma de Push Notifications para Aplicações Móveis
Área Tecnológica
Engenharia de Software
Local do Estágio
Coimbra
Enquadramento
A difusão dos smartphones no mercado mundial levou ao aparecimento de sistemas de "Push Notifications" que permitem efectuar o envio de mensagens de forma assíncrona para os terminais. Além da comunicação com o terminal esta tecnologia garante a integração directa com aplicações instaladas no terminal. Através das push notifications é possível melhorar a usabilidade das apps móveis que necessitem de eventos assíncronos.
A implementação deste conceito de push notificatiosn varia com a plataforma móvel, sendo os principais: Apple Push Notifications, Google Cloud Messaging e Microsoft Push Notification Service. Para telemóveis Android é ainda possível recorrer ao uso de SMS binários para simular as notificações. Actualmente existem no mercado várias soluções de envio de Push Notifications, tais como:
Parse (http://www.parse.com),
Push.io (http://www.push.io)
Urban Airship (http://www.urbanairship.com).
Neste enquadramento, a WIT pretende desenvolver uma gateway servidor que agregue as várias plataformas de Push Notifications referidas e disponibilize um interface único de acesso e que mascare a heterogeneidade das diferentes plataformas alvo.
Para tal, a WIT está preparada para acolher e instruir um estagiário para o desenvolvimento de um servidor aplicacional usando tecnologias Java que implemente a funcionalidade anteriormente referida. O estagiário terá também contacto com tecnologias de base de dados e desenvolvimento de apps para Android e iOS.
Apesar do estagiário ser acolhido pela equipa de desenvolvimento este trabalho de estágio não faz parte do roadmap do desenvolvimento de nenhum produto. É um investimento da empresa no treino de futuros profissionais. O que se pretende com estes estágios é fazer “training-on-job” de alunos finalistas e prepará-los para a área de software para telecomunicações, de modo a que no final do estágio o aluno esteja preparado para ser incluído na equipa de desenvolvimento.
No final do estágio, o aluno terá conhecimento detalhado sobre a arquitectura de servidores aplicacionais, e deverá adquirir especial experiência em atributos não funcionais muito importantes, tais como robustez, escalabilidade e fiabilidade que são inerentes a este tipo de soluções.
Objetivo
O objectivo do estágio consiste na implementação de um servidor aplicacional que ofereça um serviço unificado de "Push Notifications", e que funcione com diferentes plataformas móveis (iOS, Android, WindowsPhone).
O estagiário deverá começar por fazer um levantamento detalhado do estado da arte neste tipo de soluções já existentes, incluindo um resumo dos pontos fortes e fracos de cada solução existente.
Após o levantamento do Estado da Arte, o aluno deverá proceder à análise detalhado da arquitectura, funcionamento e integração dos mecanismos de "Push Notifications" existentes nas principais plataformas móveis (iOS, Android e WindowsPhone), tento especial atenção com a modularidade e escalabilidade da solução.
Ainda no primeiro semestre, espera-se que o aluno elabore a definição de requisitos e que implemente um primeiro protótipo. Esse protótipo deverá ser baseado em Apple Push Notification (APN) para iOS, e terá funcionalidades básicas de push (envio de mensagem simples para um cliente).
A expectativa é que esta solução seja desenvolvida de uma forma bastante bem estruturadas do ponto de vista da sua arquitectura para que facilmente possam ser adicionados módulos de novas funcionalidade e para garantir a integração com outras plataformas de "Push Notifications".
Durante o decorrer do segundo semestre, espera-se que o aluno integre com o GoogleCloudMessaging (GCM) e o Microsoft Push Notifications Service (MPNS) e que implemente funcionalidades mais avançadas, como é o caso da integração com aplicações no terminal, "broadcast" de mensagens ou integração com "Passbook"; bem como novas funcionalidades que possam ser relevantes e que tenham sido identificadas como resultado do estado da arte e também do progresso alcançado com o trabalho do primeiro semestre.
Plano de Trabalhos - Semestre 1
Para o 1º semestre estão planeadas as seguintes tarefas:
- Levantamento do estado da arte das soluções de "Push Messaging".
- Estudo da arquitectura das soluções identificadas;
- Estudo aprofundado das plataformas de "Push Messaging" actualmente disponíveis para os principais smartphones (iOS, Android e Windows Phone).
- Análise à arquitectura da aplicações servidor, com particular ênfase na modularidade e escalabilidade.
- Análise detalhada das funcionalidades a desenvolver;
- Definição de requisitos do protótipo a implementar;
- Elaboração do plano de desenvolvimento;
- Desenvolvimento do primeiro protótipo:
1. Criação de módulo core da aplicação
2. Integração com serviço de APN da Apple
3. Implementação e disponibilização de web services para permitir o envio de mensagens
4. Criação de mockups funcionais para backoffice de gestão e configuração
4.1. Especificação dos elementos de UI
4.2 Implementação da camada de UI
5. Implementação das componentes internas de armazenamento de dados
6. Testes funcionais e documentação dos mesmos
- Preparação da solução para demonstrações internas;
- Documentação intermédia do estágio.
Plano de Trabalhos - Semestre 2
Para o 2º semestre estão planeadas as seguintes tarefas:
- Revisões à primeira versão integrada com APN, após demonstrações internas e recolha de feedback.
- Desenvolvimento da aplicação:
1. Integração com GCM
2. Integração com MPNS
2. Desenvolvimento de módulo de "logging" e recolha de dados analíticos de utilização
3. Implementação e disponibilização de "web services" para "broadcast" de mensagens
4. Implementação de várias funcionalidades de "messaging".
- Preparação da solução para demonstrações internas;
- Testes funcionais;
- Avaliação de requisitos não funcionais através de benchmarking;
- Documentação final do estágio.
Condições
O local de trabalho será na sede da WIT Software em Coimbra.
O estágio será remunerado.
Além da remuneração, o estagiário poderá ser convidado para receber formação na WIT Academy (que inclui tópicos tais como: IMS, VoIP, SIP, iOS Programming, Android Programming, Arquitecturas de Software, Software Quality, Metodologias de Desenvolvimento de Software). Além desta possibilidade, o estagiário poderá também ser convidado (se tiver bom desempenho) para participar em eventos de team-building e eventos de brainstorming.
Os candidatos a este estágio serão seleccionados através de um conjunto de testes técnicos (com especial ênfase em conceitos de programação, conhecimentos de sistemas distribuídos, tecnologias de internet e bases de dados), testes de QI, de Inglês e de uma entrevista presencial.
Observações
- Toda a documentação de projecto será em Inglês.
- Será usado SCRUM, como metodologia de desenvolvimento.
- Existe um Scrum Master e um Project Owner. O Project Owner define os requisitos do estágio, define as prioridades do Backlog e acompanha os resultados parciais do projecto. O Scrum Master garante o cumprimento das tarefas, promove os Scrum meetings e acompanha o aluno com mais regularidade.
Orientador
Francisco Cardoso
francisco.cardoso@wit-software.com 📩