Desafio Android-Kotlin / Criar Pokedex

Overview

Jetpack Compose Pokedex

JetNews JetNews JetNews JetNews

Olá a todo mundo!, esse aqui é o projeto de uma Pokedex que realizei para um desafio seguindo os passos do youtuber Philipp Lackner.

O desafio se trata de criar duas listas, uma com os pokemons utilizados através da API dos pokemons, encontrada NESSE LINK, com o objetivo de mostrar os pokemons disponíveis, onde é necessário clicarmos para acessar as informações do pokemon em específico.

E outra lista, com a opção de visualizar os pokemons salvos.

As informações do pokemon obrigatórias, são as seguintes:

● ID
● Nome
● Tipo (grass, fire, water)
● Foto

Em adicional seguindo os passos de Phillip, adicionamos também o peso, a altura e os stats do pokemon.

Especificações Técnicas

Tecnologias/Design Patterns do Desafio

● MVVM (Obrigatório)
● Room (Obrigatório)
● Ktor ou Retrofit (Obrigatório)
● Coroutine (Obrigatório)
● Jetpack Compose (Opcional)
● Injeção de Dependência (Opcional)

Dificuldades

Embora com muita pesquisa, diversas mudanças na técnologia de aplicativos da data dos vídeos de Phillip ocorreram, então muitas vezes foi necessário realizar pesquisas sobre as mudanças em si, como por exemplo as que ocorreram no framework Coil, sem contar também as mudanças de versão da versão base do projeto, e das versões atuais do Gradle, Kotlin e Hilt.
Também é valido contar sobre a dificuldade de criar a segunda lista, mesmo tentando encontrei dificuldades em utilizar o Room junto do Jetpack Compose, e decidi focar em finalizar a primeira lista, para poder trazer a função de favorito como uma feature pra as próximas etapas.

Apresentação Do Projeto

Caso queiram visualizar o projeto na prática, aqui temos 2 videos disponibilizados pela opção não listada do Youtube:

Apresentação Do App No Celular

Como o celular não captou o som tão bem, vou detalhar o vídeo aqui. Bom, no vídeo temos a visualização do projeto a partir de sua inicialização, na qual após inicialização, temos contato com a primeira lista, demonstrando todos os pokemons da api, com foto de perfil e estilização pré-definidas através do projeto base disponibilizado aqui.
Após clicar no Pokemon escolhido, temos acesso ao id do Pokemon, ao nome, o tipo, a uma foto de perfil, peso, altura e status do pokemon.
Finalizando a primeira lista, temos uma opção para favoritar e desfavoritar o pokemon, na parte superior da tela.

Resumo Codificação

Nesse vídeo, temos um pouco da explicação, porém utilizando o Android Studio para demonstrar os principais desafios que ocorreram durante o projeto, e também uma visão geral da etapa de codificação.
Também conto um pouco sobre os aprendizados adquiridos enquanto desenvolvi o projeto.

You might also like...
MVVM + Kotlin + Jetpack Compose +Navigation Compose + Hilt + Retrofit + Unit Testing + Compose Testing + Coroutines + Kotlin Flow + Io mockK
MVVM + Kotlin + Jetpack Compose +Navigation Compose + Hilt + Retrofit + Unit Testing + Compose Testing + Coroutines + Kotlin Flow + Io mockK

MvvmKotlinJetpackCompose Why do we need an architecture even when you can make an app without it? let's say you created a project without any architec

A general purpose kotlin library that use kotlin coroutines, flows and channels to provide timer features with the most easy and efficient way

Timer Timer is a general purpose kotlin library that use kotlin coroutines, flows and channels to provide timer features with the most easy and effici

Solution to the 2021 Advent of code challenge in Kotlin. aoc-2021-in-kotlin

advent-of-code-2021 Welcome to the Advent of Code1 Kotlin project created by aniobistanley using the Advent of Code Kotlin Template delivered by JetBr

Coinbase-pro-feed-kotlin - Kotlin Coinbase Pro Level 2 Order Book Feed
Coinbase-pro-feed-kotlin - Kotlin Coinbase Pro Level 2 Order Book Feed

Kotlin Coinbase Pro Level 2 Order Book Feed Quick start Depending on your OS run

Kotlin-basic-calculator - Basic calculator to understand syntax and the methods of Kotlin

KotlinBasicCalculator I always love to create a calculater for understand the sy

To Do List App is built in Kotlin using Material 3, Data Binding, Navigation Component Graphs, Room persistence library, Kotlin coroutines, LiveData, Dagger Hilt, and Notifications following MVVM Architecture.
To Do List App is built in Kotlin using Material 3, Data Binding, Navigation Component Graphs, Room persistence library, Kotlin coroutines, LiveData, Dagger Hilt, and Notifications following MVVM Architecture.

ToDoListApp ToDoList App demonstrates modern Android development with Hilt, Coroutines, LiveData, Jetpack (Room, ViewModel), and Material 3 Design bas

 🍲Foodium is a sample food blog Android application 📱 built to demonstrate the use of Modern Android development tools - (Kotlin, Coroutines, Flow, Dagger 2/Hilt, Architecture Components, MVVM, Room, Retrofit, Moshi, Material Components).
A sample app illustrating Android development using Kotlin with MVVM architecture, Android Jetpack, and other commonly used libraries.

Anime Facts A sample app illustrating Android development using Kotlin with MVVM architecture, Android Jetpack, and other commonly used libraries. Ani

Android app which fetches a sample movies list to display. Built using Kotlin and latest Android tech stack, with an approach to clean architecture.
Android app which fetches a sample movies list to display. Built using Kotlin and latest Android tech stack, with an approach to clean architecture.

movies-sample-app This is an Android app which fetches a sample movies list to display. Built using Kotlin and latest Android tech stack, with an appr

Owner
Diego Andrade
Desenvolvedor Mobile - Kotlin - Android - JavaScript - HTML CSS - JAVA
Diego Andrade
PicPay - Desafio Android

PicPay - Desafio Android Neste desafio TENTEI aplicar um pouco de tudo que sei tais como: SOLID DRY (Don’t Repeat Yourself ) KISS ( Keep It Simple, St

PAULO OLIVEIRA 4 Jan 13, 2022
App desenvolvido para um desafio de vaga.

Desafio - Filmes ?? ?? O desafio consistia em criar um app que se assemelhasse a tela de informações do filme do app TodoMovies. Screenshot de referên

Rodrigo de Souza Antunes 3 Feb 11, 2022
🦄 Android Pokedex-AR using ARCore, Sceneform, Hilt, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData) based on MVVM architecture.

?? Android Pokedex-AR using ARCore, Sceneform, Hilt, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData) based on MVVM architecture.

Jaewoong Eum 535 Dec 9, 2022
A simple Pokedex App getting API with Retrofit, maintaining data using LiveData, and Material Design based on MVVM architecture

PokedexApp Pokedex A simple Pokedex App getting API with Retrofit, maintaining data using LiveData, and Material Design based on MVVM architecture. Te

Steven Adriano 0 Apr 12, 2022
A collection of custom Android/Kotlin lint checks we use in our Android and Kotlin code bases at Slack.

slack-lints This repository contains a collection of custom Android/Kotlin lint checks we use in our Android and Kotlin code bases at Slack. This repo

Slack 119 Dec 20, 2022
Android-basics-kotlin-tip-time-app - Tip Time app from Android Basics in Kotlin

Tip Time Tip Time app from Android Basics in Kotlin at developers.google.com. It

Ramon Lima e Meira 0 Jan 2, 2022
A full-stack application showing the power 💪 of KOTLIN. Entire android app + backend Apis written in Kotlin 🔥

Gamebaaz ?? A full-stack application showing the power ?? of KOTLIN. Entire android app + backend Apis written in Kotlin ?? Android Backend Jetpack Co

Sarnava Konar 85 Nov 17, 2022
An simple image gallery app utilizing Unsplash API to showcase modern Android development architecture (MVVM + Kotlin + Retrofit2 + Hilt + Coroutines + Kotlin Flow + mockK + Espresso + Junit)

Imagine App An simple image gallery app utilizing Unsplash API. Built with ❤︎ by Wajahat Karim and contributors Features Popular photos with paginatio

Wajahat Karim 313 Jan 4, 2023
Primeiro aplicativo desenvolvido na linguagem kotlin, durante o Hackathon no curso de Android Kotlin da Cel.Lep em parceria com Estação Hack from Facebook

Tela Splash: Nome do aplicativo e uma imagem: Tela Main, principal tela do aplicativo: Um campo para o usuário informar a medida; Um spinner com os ti

Maria Fortunato 0 Nov 3, 2021