Giter VIP home page Giter VIP logo

spotify-playlists-search-app's Introduction

Spotify Playlists Search App

[pt-BR]

Um App React Native para listar e pesquisar playlists na Web API do Spotify


Funcionalidades

Tema escuro

O componente <ThemeToggler /> é exibido na tela de Login e tem a responsabilidade de alternar entre o tema escuro e claro.

Nota: Por padrão o app abrirá com o tema escuro

Filtros de Pesquisa de Playlists

Pesquisa por gêneros

Pesquisa de Playlists

Pesquise as playlists criadas de seu artista favorito.


Instruções para instalação

Ambiente de Desenvolvimento

Por gentileza, siga as intruções descritas na documentação oficial do Expo para preparar seu ambiente de desenvolvimento.

Instalando as dependências do projeto

Atenção: O projeto foi configurado utilizando o Yarn (v1.22.18) e as versões dependências estão fixas no arquivo yarn.lock.


Para instalar as dependências utilize o comando:

yarn

Como executar o projeto

Android

Após abrir o emulador do AVD ou Genymotion, ou conectar seu dispositivo Android via USB (com modo de depuração ativado), execute o seguinte comando no terminal:

yarn android

iOS

Execute o seguinte comando no terminal:

yarn ios

Sobre as decisões tomadas

Porque usar Redux em um projeto tão pequeno?

Por se tratar de um projeto de avaliação, decidi implementar Redux e Redux Sagas para demonstrar a abordagem que eu escolheria caso estivésse criando uma aplicação do mundo real.

Sinto que devo citar que em projetos menores, a própria Context API supriria basicamente todas as necessidades de compartilhamento de estado, inclusive nesse projeto.

Por que utilizar o Native Base ao invés de criar os componentes com styled-components ou StyleSheet.create?

Como o principal desafio do projeto era estudar e implementar a Web API do Spotify, decidi implementar o Native Base para agilizar o desenvolvimento das telas.


[en-US]

A React Native App that allows you to list and search Spotify Playlists using Spotify's Web API


Features

Dark Theme

The component <ThemeToggler /> shown on Login screen is responsable for toggling between the dark and light themes.

Note: The app will open with dark theme by default.

Playlists Filters

Search by genre.

Playlists Search

Search created playlists from your favorite artists.


Installation instructions

Development env

Please follow the instructions on the Official Expo Documentation for preparing your dev env.

Installing the dependencies

WARNING: This project was configured using Yarn (v1.22.18) and the deps versions are locked on yarn.lock file.


Run the following command to install the dependencies:

yarn

How to start the project

Android

After installing the AVD emulator or Genymotion or even connecting your Android device via USB (with debugging mode enabled), execute the following command on your terminal:

yarn android

iOS

Run the following command on your terminal:

yarn ios

About the decisions taken

Why to use Redux in such a small project?

Since this is a test project, I have decided to implement Redux and Redux Sagas to demonstrate how I would aproach if this was a real world app.

It's worth mentioning that Context API would be enough to cover all use cases in smallers projects (including this one).

Why to use Native Base instead of styled-components or StyleSheet.create?

Since the biggest challenge with this project was to understand and implement Spotify's Web API, I have decided to use Native Base for a faster development.

spotify-playlists-search-app's People

Contributors

gustavo-kuze avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.