O Panda Challenge Downloader é um aplicativo React Native desenvolvido usando o Expo (bare workflow). Ele consome a API do Panda Video para exibir uma lista de vídeos na tela inicial. Ao clicar em um vídeo, os usuários são direcionados para a tela de detalhes do vídeo, onde podem assistir ao vídeo e salvar localmente no dispositivo.
- Lista de Vídeos: Exiba uma lista de vídeos provenientes da API do - Panda Video na tela inicial do aplicativo.
- Detalhes do Vídeo: Ao clicar em um vídeo, os usuários são redirecionados para a tela de detalhes, onde encontram informações adicionais sobre o vídeo selecionado.
- Reprodução de Vídeo: Ofereça a capacidade de assistir aos vídeos diretamente no aplicativo.
- Download Local: Permita que os usuários salvem vídeos localmente em seus dispositivos para visualização offline.
- Expo (bare workflow)
- React Native
- Node.js
- Panda Video (hospedagem de vídeo)
android/
ios/
node_modules/
src/
components/
VideoList.js
VideoPlayer.js
navigation/
AppNavigator.js
screens/
HomeScreen.js
VideoScreen.js
styles/
commonStyles.js
videoListStyles.js
utils/
ConstantsToStyle.js
babel.config.js
.gitignore
.prettierrc
app.json
index.js
package.json
README.md
Para proporcionar uma experiência de streaming adaptativo, utilizamos o componente Video
do expo-av
na tela VideoScreen
. Isso aproveita o suporte nativo para streaming adaptativo.
A funcionalidade de cache inteligente está integrada ao método downloadVideo
da tela VideoScreen
. Os vídeos são baixados localmente e salvos na biblioteca de mídia do dispositivo, permitindo acesso offline e economizando largura de banda em reproduções futuras.
Implementamos uma estratégia para lidar com limites de armazenamento no dispositivo, solicitando permissão para acessar a biblioteca de mídia e utilizando a biblioteca expo-media-library
para salvar os vídeos baixados. Além disso, permitimos que os usuários gerenciem e excluam vídeos para liberar espaço.
- Clone o repositório:
git clone https://github.com/seu-usuario/panda-video-app.git
- Instale as dependências:
yarn install
- Inicie o aplicativo:
yarn start
- Crie a variável de ambiente PANDA_AUTHORIZATION no arquivo .env.
-
Integração com Panda Video API: Foi necessário lidar com os endpoints da API do Panda Video para obter dados de vídeos. As soluções incluíram o uso de bibliotecas como
axios
para facilitar as solicitações HTTP. -
Streaming Adaptativo: A escolha de usar o componente
Video
doexpo-av
simplificou a implementação do streaming adaptativo, aproveitando as capacidades nativas do Expo.