A lista a seguir contém uma referência a nível de código que pode ser útil durante o desenvolvimento de aplicações para Firefox OS. Para maiores informações, ferramentas e vídeos acesse dochub.io.
Fundamentos de uma aplicação para Firefox OS
Uma aplicação para Firefox OS nada mais é do que um simples Open Web App.
- Manifesto
- É o arquivo com informações sobre a aplicação. Nessa seção você verá como funciona o manifesto e como criá-lo.
- Instalação e gerenciamento de APIs
- Interface usada para instalar aplicações e gerenciá-las.
- Aplicação rodando offline
- Estratégias e tecnologias que podem ser utilizadas para assegurar que a aplicação funcionará quando não houver conexão com a internet disponível.
- Tipos de Aplicações
- Esse artigo explica os tipos de aplicações: hospedadas, privilegiadas e certificadas. Para acessar APIs específicas do sistema será necessário que a aplicação seja privilegiada ou certificada. As aplicações privilegiadas e certificadas devem ser empacotadas.
- Permissões da Aplicação
- O acesso às APIs do dispositivo podem ajudar a criar aplicações mais úteis. Aqui voc~e irá encontrar as APis disponíveis e como acessá-las.
Layout e estrutura
- Design Responsivo
- Sua aplicação deve ser capaz de se ajustar a diferentes tamanhos de telas e dispositivos. Esse guia o ajudará com esse trabalho.
- Media queries
- Uma das tecnologias mais importantes na hora de criar uma aplicação responsiva são as media queries. Elas permitirão à sua aplicação se ajustar a diferentes tamanhosde telas, resolução, orientação do dispositivo e outras variações, usando CSS e JavaScript. Veja mais em Usando media queries e MediaQueryList.
- Box Flexíveis
- Os box flexíveis permitirão configurar automaticamentea interface da aplicação para que seja ajustada e posicionada conforme o tamanho e orientação da tela.
Desenho e animações
- CSS transforms
- Permitem rotacionar, escalar e dar zoom sobre o conteúdo HTML, fazendo uso da aceleração de hardware quando estiver disponível e fazer uso do JavaScript.
- CSS transitions
- Permitem criar efeitos de transição diretamente no CSS, que ocorrerão a partir de um período de tempo determinado, ao invés de ocorrerem de forma instantânea.
- CSS animations
- As animações permitirão criar efeitos animados para troca de conteúdo, posicionamento de elementos na página e ciclos de animação que ocorrem uma ou múltiplas vezes, sem a necessidade de utilizar JavaScript.
- HTML canvas
- O elemento HTML <canvas> provê um espaço para trabalhar com desenhos em 2D, muito útil na produção de jogos.
- WebGL
- É uma versão da OpenGL ES para web, que permite à aplicação oferecer gráficos 3D acelerados por hardware.
- SVG
- Scalable Vector Graphics (SVG) é uma tecnologia que permite desenhar objetos vetoriais ao invés de utilizar imagens. São muito úteis, graças à sua escalabilidade, para mostrar diagramas e gráficos e também para interfaces de usuário escaláveis.
APIs do dispositivo
As APIs do Firefox OS são padrões web que estão surgindo e APIs próprias do dispositivo muito importantes para o desenvolvimento de aplicações e Open Web Apps.
A tabela a seguir mostra as permissões para as aplicações, hospedadas, privilegiadas e certificadas. Maiores informações sobre permissões podem ser vistas aqui.
Manifest permission | API name | Description | Minimum app type required | access property |
Default granted | Platform |
---|---|---|---|---|---|---|
alarms |
Alarm | Schedule a notification, or schedule an application to be started. | hosted | none | Allow |
FxOS |
audio-capture |
GetUserMedia | Obtain MediaStream from audio input devices, e.g. microphone. This is needed to allow audio capture in Firefox OS 1.2+. | hosted | none | Prompt (even for certified Apps) |
FxOS |
audio-channel-alarm |
Audio Policy | Alarm clock, calendar alarms. | privileged | none | Allow |
FxOS |
audio-channel-content |
Audio Policy | Music, video. | hosted | none | Allow |
FxOS |
audio-channel-normal |
Audio Policy | UI sounds, Web content, music, radio. | hosted | none | Allow |
FxOS |
audio-channel-notification |
Audio Policy | New email, incoming SMS. | privileged | none | Allow |
FxOS |
browser |
Browser | Enables the app to implement a browser in an iframe . |
privileged | none | Allow |
FxOS |
contacts |
Contacts | Add, read, or modify contacts from the address book on the device and read contacts from the SIM. | privileged | readonly , readwrite , readcreate , or createonly |
Prompt for all installed App types. |
FxOS |
desktop-notification |
mozNotification for Gecko <22, Notification for Gecko 22+ | Display a notification on the user's desktop. Note that this has changed, so for Gecko <22 (Firefox OS <1.2) you need to use mozNotification , while for Gecko 22+ (Firefox 1.2+) you need to use Notification . |
hosted | none | Prompt for Web content. Allow for all installed App types. |
FxOS, Android, Desktop |
device-storage:music |
Device Storage | Add, read, or modify music files stored on the device. | privileged | readonly , readwrite , readcreate , or createonly |
Prompt |
FxOS |
device-storage:pictures |
Device Storage | Add, read, or modify picture files stored on the device. | privileged | readonly , readwrite , readcreate , or createonly |
Prompt |
FxOS |
device-storage:sdcard |
Device Storage | Add, read, or modify files stored on the device's SD card. | privileged | readonly , readwrite , readcreate , or createonly |
Prompt |
FxOS |
device-storage:videos |
Device Storage | Add, read, or modify video files stored on the device. | privileged | readonly , readwrite , readcreate , or createonly |
Prompt |
FxOS |
fmradio |
FM Radio | Control the FM radio. | hosted | none | Allow |
FxOS |
geolocation |
Geolocation | Obtain the current location of the user. | hosted | none | Prompt (even for certified Apps) |
FxOS, Desktop, Android |
keyboard |
Keyboard | Allows the app to act as a virtual keyboard by listening to focus change events in other apps. | privileged | none | Allow |
FxOS |
mobilenetwork |
Mobile Network | Obtain mobile network information (MCC, MNC, etc.). | privileged | none | Allow |
FxOS |
push |
Simple Push | Enable an app to wake up to receive notification. | hosted | none | Allow |
FxOS |
storage |
Storage | Utilize storage (appcache, pinned apps, IndexedDB) without size limitations. See appcache, IndexedDB. | hosted | none | Allow |
FxOS, Desktop |
systemXHR |
SystemXHR | Allows anonymous (no cookies) cross-origin XHR without the target site having CORS enabled. Similar to the TCP Socket API but restricted to XHR, not just raw sockets, so it is slightly less risky. See XMLHttpRequest. | privileged | none | Allow |
FxOS |
tcp-socket |
TCP Socket | Create TCP sockets and communicate over them. | privileged | none | Allow |
FxOS, Desktop |
video-capture |
GetUserMedia | Obtain MediaStream from video input devices, e.g. camera. This is needed to allow video capture in Firefox OS 1.4+. | hosted | none | Prompt (even for certified Apps) |
FxOS |
Web APIs
Elementos, eventos, requisições de rede, armazenamento e outras Web APIs padrões.
- Requisições de rede - enviar e receber dados com XMLHttpRequest
-
XMLHttpRequest
é uma API do DOM usada para enviar e receber informações usando HTTP, incluindo o download de arquivos. - Eventos do DOM
- A documentação sobre eventos proporciona uma lista completa dos eventos que podem ser enviados e recebidos para interagir com os elementos do DOM.
- Eventos de toque
- Essa documentação apresenta os eventos de toque que podem ser utilizados na hora de desenvolver aplicações para dispositivos com telas sensíveis ao toque.
- Eventos online e offline
- Permite à aplicação responder dinamicamente a mudanças de estado da rede (online e offline).
- Histórico
- Manipula e navega através do histórico da aplicação com o uso de vários comandos. útil para fazer o processo de avançar e voltar ente as telas da aplicação.
- Áudio
- Integra e manipula conteúdo de áudio com a tag de áudio do HTML5.
- Vídeo
- Integra e manipula conteúdo de vídeo com a tag de vídeo do HTML5.
- Geolocalização
- Permite à aplicação obter, sob permissão, a localização atual do usuário e acompanhar as mudanças da mesma.
- Orientação da tela
- Acompanha as mudanças de orientação da tela, entre retrato e paisagem.
- Orientação do aparelho
- Permite à aplicação detectar as mudanças de orientação do aparelho, a partir dos sensores do mesmo.
- IndexedDB
- Banco de dados para aplicações web que necessitam de uma interface para armazenamento e recuperação de grandes quantidades de dados no dispositivo do usuário.
- Armazenamento (Storage)
-
A API de armazenamento provê várias formas de armazenar uma quantidade limitada de dados simples, de forma persistente, no dispositivo do usuário:
- localStorage
- sessionStorage
- Blob - um objeto que armazena arquivos e imagens, com possibilidade de manipulação desses dados.
- Web workers
- permite á aplicação executar código JavaScript (que não pode interagir com o DOM ou com o objeto Window) como uma tarefa de background, o que permite otimizar o rendimento e desbloquear a renderização da interface do usuário.
Serviços da Firefox Marketplace
Esses documentos e guias te ajudarão a aprender como publicar sua aplicação e gerenciá-la na Firefox OS Marketplace
- API de Envio
- Essa API permite validar a aplicação e receber informações sobre as aplicações disponíveis para instalação.
- API da Marketplace
- Toda a documentação relacionada à Marketplace.