All Projects → rocketseat-education → Bootcamp Gostack Desafio 06

rocketseat-education / Bootcamp Gostack Desafio 06

Licence: mit
Desafio do sexto módulo do Bootcamp GoStack 🚀👨🏻‍🚀

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Bootcamp Gostack Desafio 06

Data Science Projects
DataScience projects for learning : Kaggle challenges, Object Recognition, Parsing, etc.
Stars: ✭ 361 (+636.73%)
Mutual labels:  challenge
Noodel
A programming language designed around supporting ASCII animation based code golfing challenges.
Stars: ✭ 8 (-83.67%)
Mutual labels:  challenge
100 Days Of Swiftui
👨‍💻👩‍💻100 Days Of SwiftUI free course from Hacking with Swift. 👨‍💻👩‍💻
Stars: ✭ 35 (-28.57%)
Mutual labels:  challenge
Flutter whirlpool
Flutter UI challenge (with Box2D physic)- Smart washing machine app
Stars: ✭ 453 (+824.49%)
Mutual labels:  challenge
Javascript Challenges Book
Challenge yourself learning and understanding the most obscure and tricky parts of Javascript. http://tcorral.github.io/javascript-challenges-book/
Stars: ✭ 750 (+1430.61%)
Mutual labels:  challenge
Advent Of Code 2020
My JavaScript solutions for Advent of Code 2020
Stars: ✭ 22 (-55.1%)
Mutual labels:  challenge
Reactnative Animation Challenges
A series of animation challenges in React Native.
Stars: ✭ 352 (+618.37%)
Mutual labels:  challenge
Code problems
Code Problems from LeetCode website and other fun code problems websites. The goal is to help people studying for coding interviews.
Stars: ✭ 40 (-18.37%)
Mutual labels:  challenge
Frontend Challenges
💥 Listing some playful open-source's challenges of companies to test your knowledge
Stars: ✭ 7,211 (+14616.33%)
Mutual labels:  challenge
Advanced Directives With Angular Js
Advanced Directives with Angular JS - Code for the Screencast
Stars: ✭ 33 (-32.65%)
Mutual labels:  challenge
100 Days Of Code
Fork this template for the 100 days journal - to keep yourself accountable (multiple languages available)
Stars: ✭ 5,307 (+10730.61%)
Mutual labels:  challenge
Ctftraining
CTF Training 经典赛题复现环境
Stars: ✭ 729 (+1387.76%)
Mutual labels:  challenge
Bootcamp Gostack Desafio 05
Desafio do quinto módulo do Bootcamp GoStack 🚀👨🏻‍🚀
Stars: ✭ 33 (-32.65%)
Mutual labels:  challenge
25 Days Of Serverless
Repository responsible for 25 days of Serverless challenges
Stars: ✭ 400 (+716.33%)
Mutual labels:  challenge
Hacktoberchallenges2018
Welcome! I need some help making my list... Learn how in the README
Stars: ✭ 35 (-28.57%)
Mutual labels:  challenge
React Coding Challenges
A collection of React.js coding challenges with different difficulties.
Stars: ✭ 294 (+500%)
Mutual labels:  challenge
Itelios Frontend Challenge
Desafio de admissão para desenvolvedores front-end da Itelios
Stars: ✭ 14 (-71.43%)
Mutual labels:  challenge
Ds Take Home
My solution to the book A Collection of Data Science Take-Home Challenges
Stars: ✭ 1,004 (+1948.98%)
Mutual labels:  challenge
Dstc7 Audio Visual Scene Aware Dialog Avsd Challenge
Stars: ✭ 37 (-24.49%)
Mutual labels:  challenge
Flutter Ui Challenges
Flutter UI design implementation
Stars: ✭ 33 (-32.65%)
Mutual labels:  challenge

GoStack

Desafio 6: Primeiro projeto com React Native

“Só deseje as coisas as quais você está disposto a lutar”!

GitHub language count Made by Rocketseat License Stargazers

Sobre o desafio   |    Entrega   |    Licença

🚀 Sobre o desafio

Nesse desafio você adicionará novas funcionalidades na aplicação que desenvolvemos ao longo desse módulo.

Funcionalidades

1. Loading de repositórios

Adicione um indicator de loading utilizando <ActivityIndicator /> antes de carregar a lista de repositórios favoritados na tela de detalhes do Usuário.

2. Scroll infinito

Adicione uma funcionalidade de scroll infinito na lista de repositórios favoritados. Assim que o usuário chegar nos 20% do final de lista, busque pelos items na próxima página e adicione na lista. Seu código ficará da seguinte forma:

<Stars
  onEndReachedThreshold={0.2} // Carrega mais itens quando chegar em 20% do fim
  onEndReached={this.loadMore} // Função que carrega mais itens
  // Restante das props
>

Para requisitar uma nova página no Github utilize um parâmetro page no fim da URL:

https://api.github.com/users/diego3g/starred?page=2

3. Pull to Refresh

Adicione uma funcionalidade para quando o usuário arrastar a listagem de repositórios favoritados pra baixo atualize a lista resetando o estado, ou seja, volte o estado da paginação para a página 1 exibindo apenas os 30 primeiros itens.

A funcionalidade "Pull to Refresh" existe por padrão na FlatList e pode ser implementada através do seguinte código:

<Stars
  onRefresh={this.refreshList} // Função dispara quando o usuário arrasta a lista pra baixo
  refreshing={this.state.refreshing} // Variável que armazena um estado true/false que representa se a lista está atualizando
  // Restante das props
>

4. WebView

Crie uma nova página na aplicação que vai ser acessada quando o usuário clicar em um repositório favoritado, essa página deve conter apenas o Header da aplicação. O conteúdo da página será uma WebView, ou seja, um browser integrado que exibe o atributo html_url presente no objeto do repositório que vem da API do Github.

Documentação de utilização da WebView.

Exemplo de código:

<WebView source={{ uri: repository.html_url }} style={{ flex: 1 }} />

Resultado:

WebView

📅 Entrega

Esse desafio não precisa ser entregue e não receberá correção, mas você pode ver o resultado do código do desafio aqui. Após concluir o desafio, adicionar esse código ao seu Github é uma boa forma de demonstrar seus conhecimentos para oportunidades futuras.

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com ♥ by Rocketseat 👋 Entre na nossa comunidade!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].