{"id":19153427,"url":"https://github.com/alexandrecpedro/santander-dev-week-bankline-app","last_synced_at":"2026-04-06T02:33:07.564Z","repository":{"id":112110237,"uuid":"489537206","full_name":"alexandrecpedro/santander-dev-week-bankline-app","owner":"alexandrecpedro","description":"Santander Dev Week - Bank statement generation system from Santander Bank","archived":false,"fork":false,"pushed_at":"2022-05-25T18:30:10.000Z","size":2374,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-22T21:17:26.845Z","etag":null,"topics":["android","android-app","angular","bootstrap","bootstrap5","coroutines","eclipse","eclipse-ide","java","kotlin","postgres","postgresql","retrofit","retrofit2","spring","spring-boot","springboot","swagger","swagger-ui"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexandrecpedro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-07T01:30:13.000Z","updated_at":"2023-03-04T01:45:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"c72cf993-512c-4675-8bcf-bd1f413486fa","html_url":"https://github.com/alexandrecpedro/santander-dev-week-bankline-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alexandrecpedro/santander-dev-week-bankline-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandrecpedro%2Fsantander-dev-week-bankline-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandrecpedro%2Fsantander-dev-week-bankline-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandrecpedro%2Fsantander-dev-week-bankline-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandrecpedro%2Fsantander-dev-week-bankline-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexandrecpedro","download_url":"https://codeload.github.com/alexandrecpedro/santander-dev-week-bankline-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandrecpedro%2Fsantander-dev-week-bankline-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31457694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-app","angular","bootstrap","bootstrap5","coroutines","eclipse","eclipse-ide","java","kotlin","postgres","postgresql","retrofit","retrofit2","spring","spring-boot","springboot","swagger","swagger-ui"],"created_at":"2024-11-09T08:23:04.688Z","updated_at":"2026-04-06T02:33:07.550Z","avatar_url":"https://github.com/alexandrecpedro.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align = \"center\"\u003e\n    \u003ch1\u003e Sistema de Criação de Extratos Bancários do Banco Santander \u003c/h1\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n\u003cdiv align = 'center'\u003e\n   \u003cimg width=' 200 px' src= './project/assets/Logo_Santander.jpeg' \u003e\n\u003c/div\u003e\n\n\u003ch3 align = \"center\"\u003e\n  SANTANDER DEV WEEK\n\u003c/h3\u003e\n\n\u003c!-- | | | | |\n|:-------------------------:|:-------------------------:|:-------------------------:|:-------------------------:|\n|\u003cimg width=\"1604\" alt=\"login\" src=\"./Android/assets/picpay-screen1.png\"\u003e | \u003cimg width=\"1604\" alt=\"activities\" src=\"./Android/assets/picpay-screen2.png\"\u003e|\u003cimg width=\"1604\" alt=\"contacts\" src=\"./Android/assets/picpay-screen3.png\"\u003e|\u003cimg width=\"1604\" alt=\"profile\" src=\"./Android/assets/picpay-screen4.png\"\u003e |\n\u003cbr\u003e --\u003e\n\n\u003cp align=\"center\"\u003e\n \u003ca href=\"#objetivo\"\u003eObjetivo\u003c/a\u003e •\n \u003ca href=\"#tecnologias\"\u003eTecnologias\u003c/a\u003e •\n \u003ca href=\"#percurso\"\u003ePercurso\u003c/a\u003e \n\u003c/p\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n\u003cdiv id=\"objetivo\"\u003e\n\u003ch2\u003e 💡 Objetivo \u003c/h2\u003e\nConstruir um sistema de ciação de extratos bancários do Banco Santander, usando uma arquitetura robusta e testável, desde o frontend até o lado do servidor, envolvendo inclusive um aplicativo para Android.\n\u003c!-- Build an application that creates bank statements of Santander bank, using a robust and testable architecture, from app to servidor side.  --\u003e\n\u003cbr\u003ePara o lado do servidor, construiu-se uma API RESTful com estrutura em Spring Boot.\n\u003c!-- For the servidor side, building an API RESTful with Spring Boot structure. --\u003e\n\u003cbr\u003eJá para o lado do cliente (ou lado do frontend), permitiu-se que os clientes tivessem acesso a seus extratos bancários e o respectivo saldo.\n\u003c!-- For the client side, allow clients to access their bank statements and account balances. --\u003e\n\u003cbr\u003eNo caso do aplicativo para Android, desenvolveu-se um app que explorasse o domínio bancário, ao consumir a API previamente construída. Usou-se o padrão de projeto MVVM (Model - View - ViewModel).\n\u003c!-- For the Android, using the MVVM structural pattern.  --\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n\u003cdiv id=\"tecnologias\"\u003e\n\u003ch2\u003e 🛠 Tecnologias \u003c/h2\u003e\nAs seguintes ferramentas foram usadas na construção do projeto:\u003cbr\u003e\u003cbr\u003e\n\n\n|                Tipo                |      Ferramenta      |                Referência                |\n| :--------------------------------: | :------------------: | :--------------------------------------: |\n|     Programming Language (App)     |        KOTLIN        |         https://kotlinlang.org/          |\n|                IDE                 |    ANDROID STUDIO    |   https://developer.android.com/studio   |\n|  Scripts and dependencies manager  |        GRADLE        |           https://gradle.org/            |\n|          Scripts language          |        GROOVY        |         https://groovy-lang.org/         |\n|          HTTP API Library          |      RETROFIT2       |    https://square.github.io/retrofit/    |\n| Programming Language (Server Side) |         JAVA         | https://docs.oracle.com/javase/tutorial/ |\n|     IDE Eclipse (Server Side)      |       ECLIPSE        | https://docs.oracle.com/javase/tutorial/ |\n|            Spring Boot             |     SPRING BOOT      |         https://start.spring.io/         |\n|         API RESTful (JSON)         |       SWAGGER3       |           https://swagger.io/            |\n|              Testing               |        JUNIT5        |        https://junit.org/junit5/         |\n|              Database              |     POSTGRE SQL      |       https://www.postgresql.org/        |\n|              Security              |         JWT          |             https://jwt.io/              |\n| Programming Language (Client Side) |       ANGULAR        |           https://angular.io/            |\n|             Bootstrap              |     BOOTSTRAP 5      |        https://getbootstrap.com/         |\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\u003cdiv align = 'center'\u003e\n  \u003ch3\u003eBackend | API\u003c/h3\u003e\n  \u003cimg height =' 100px ' src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/java/java-original.svg\"/\u003e\n  \u003cimg height =' 100px ' src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/spring/spring-original.svg\" /\u003e\n  \u003cimg height =' 100px ' src=\"https://jwt.io/img/logo-asset.svg\" /\u003e\n  \u003cimg height =' 100px ' src=\"https://junit.org/junit5/assets/img/junit5-logo.png\" /\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n  \u003ch3\u003eDatabase\u003c/h3\u003e\n  \u003cimg height =' 100px ' src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/postgresql/postgresql-original.svg\" /\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n  \u003ch3\u003eFrontend\u003c/h3\u003e\n  \u003cimg width =' 100px ' src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/angularjs/angularjs-original.svg\" /\u003e\n  \u003cimg width =' 100px ' src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/bootstrap/bootstrap-original.svg\" /\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n  \u003ch3\u003eMobile App\u003c/h3\u003e\n  \u003cimg width =' 100px ' src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/kotlin/kotlin-original.svg\" /\u003e\n  \u003cimg width =' 100px ' src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/androidstudio/androidstudio-original.svg\" /\u003e\n  \u003cimg width =' 100px ' src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/gradle/gradle-plain.svg\"/\u003e\n  \u003cimg width =' 100px ' src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/groovy/groovy-original.svg\" /\u003e\n  \u003cbr\u003e\n  \u003cimg height=' 100px ' src=\"./project/assets/Retrofit.jpeg\" /\u003e\n  \u003cbr\u003e\n\u003c/div\u003e\n\n\u003cdiv id=\"percurso\"\u003e\n\u003ch2\u003e 🔎 Percurso \u003c/h2\u003e\n\n\u003col\u003e\n    \u003cli\u003eAula 1 - Configurando/preparando os ambientes de desenvolvimento (Infraestrutura)\n      \u003cbr\u003e\u003cbr\u003e\n      \u003cul\u003e\u003cstrong\u003eBackend\u003c/strong\u003e\n        \u003cli\u003eInstalar Eclipse (IDE) e JDK 8 (1.8)\u003c/li\u003e\n        \u003cli\u003eAbrir e logar o Eclipse com JDK 8 (1.8)\u003c/li\u003e\n      \u003c/ul\u003e\n      \u003cbr\u003e\n      \u003cul\u003e\u003cstrong\u003eBanco de Dados\u003c/strong\u003e\n        \u003cli\u003eInstalar PostgreSQL\u003c/li\u003e\n        \u003cli\u003eAbrir, logar e criar um novo banco de dados (banklineapi_db) no PostgreSQL\u003c/li\u003e\n      \u003c/ul\u003e\n      \u003cbr\u003e\n      \u003cul\u003e\u003cstrong\u003eFrontend\u003c/strong\u003e\n        \u003cli\u003eInstalar e abrir VS Code\u003c/li\u003e\n        \u003cli\u003eInstalar NodeJS\u003c/li\u003e\n        \u003cli\u003eInstalar Angular CLI na raiz do projeto\u003c/li\u003e\n      \u003c/ul\u003e\n      \u003cbr\u003e\n      \u003cul\u003e\u003cstrong\u003eMobile - Android\u003c/strong\u003e\n        \u003cli\u003eInstalar e abrir Android Studio\u003c/li\u003e\n        \u003cli\u003eCriar novo projeto: Bankline-Android\u003c/li\u003e\n        \u003cli\u003e\n          \u003cul\u003eEntendo o conceito do projeto mobile para Android\n            \u003cli\u003eParte 1 - Introdução ao Desenvolvimento Mobile\u003c/li\u003e\n            \u003cli\u003eParte 2 - Android Nativo: Ambiente de Desenvolvimento\u003c/li\u003e\n            \u003cli\u003eParte 3 - Android Nativo: Estrutura de Projetos\u003c/li\u003e\n          \u003c/ul\u003e\n        \u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cbr\u003e\n    \u003cli\u003eAula 2 - Abstraindo o domínio bancário em uma API REST com Java Spring Boot (Backend)\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eAbrir o Spring Initializr e configurar o Spring Boot\u003c/li\u003e\n        \u003cli\u003eGerar o arquivo Spring Boot e abrir no Eclipse\u003c/li\u003e\n        \u003cli\u003eVerificar as dependências a serem usadas e configurar o Maven\u003c/li\u003e\n        \u003cli\u003eConstruir a API em Java Spring Boot - classes, objetos, datas e interfaces\u003c/li\u003e\n        \u003cli\u003eFazer arquivo de configuração de acesso ao PostgreSQL\u003c/li\u003e\n        \u003cli\u003eIntegrar o Swagger 3 para documentação da API, adicionando a sua dependência no projeto\u003c/li\u003e\n        \u003cli\u003eBuildar os arquivos principais da API\u003c/li\u003e\n        \u003cli\u003eTestar as rotas no SWAGGER\n        URL: http://localhost:8080/swagger-ui/index.html\n        \u003c/li\u003e\n        \u003cli\u003eSubir código no GitHub e fazer conexão desses arquivos GitHub no Heroku\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cbr\u003e\n    \u003cli\u003eAula 3 - Construindo um Frontend Angular de extrato bancário\n      \u003cul\u003e\n        \u003cli\u003eAbrir teminal de comando do VS Code na pasta do projeto \u003c/li\u003e \n        \u003cli\u003eInstalar, no NodeJS, o Angular CLI: npm install -g @angular/cli\u003c/li\u003e\n        \u003cli\u003eNovo projeto: ng new nomeProjeto \u003c/li\u003e\n        \u003cli\u003eIniciando projeto: ng serve --open || ng serve -o\u003c/li\u003e\n        \u003cbr\u003e\n        \u003cul\u003e\u003cstrong\u003eConstrução do App\u003c/strong\u003e\n          \u003cli\u003eNovo componente: ng generate component nomeComponente \n          - exibir as movimentações: ng g c components/movimentacao-list\u003cbr\u003e\n          - adicionar uma nova movimentação: ng g c components/movimentacao-new\u003c/li\u003e\n          \u003cli\u003eConfigurando a rota para exibir os novos componentes: src/app/app-routing.module.ts\u003c/li\u003e\n          \u003cli\u003eRemovendo conteúdo gerado pelo Angular e exibir nossos componentes: app.component.html\u003c/li\u003e\n          \u003cli\u003eAdicionando a biblioteca do Bootstrap pelo angular-cli: ng add @ng-bootstrap/ng-bootstrap\n            Ps: Se ao tentar instalar o bootstrap apresentar algum erro, execute os comandos: \n            (1) npm config set legacy-peer-deps true\n            (2) ng add @ng-bootstrap/ng-bootstrap\n          \u003c/li\u003e\n          \u003cli\u003eCriando uma variável que representará as nossas movimentações: movimentacao-list.component.ts\u003c/li\u003e\n          \u003cli\u003eEstruturando a tabela que exibibirá as movimentações: movimentacao-list.component.html\u003c/li\u003e\n        \u003c/ul\u003e\n        \u003cbr\u003e\n        \u003cul\u003e\u003cstrong\u003eBackend CORS\u003c/strong\u003e\n          \u003cli\u003eConfigurar CORS: com.dio.santander.bankline.api.config/WebConfig.java\u003c/li\u003e\n          \u003cli\u003eRodar backend SpringBoot\u003c/li\u003e\n        \u003c/ul\u003e\n        \u003cbr\u003e\n        \u003cul\u003e\u003cstrong\u003eIntegrando com nossa API\u003c/strong\u003e\n          \u003cli\u003eCriando o serviço de movimentações: ng g s services/movimentacao \u003c/li\u003e\n          \u003cli\u003eAdicionar duas dependências no projeto:\n          // app.module.ts\n            import { FormsModule } from '@angular/forms';\n            import { HttpClientModule } from '@angular/common/http';\n            @NgModule({\n              imports: [\n                FormsModule,\n                HttpClientModule\n              ],  \n            })\n          \u003c/li\u003e\n          \u003cli\u003eCriar recurso para movimentações já realizadas: movimentacao.service.ts\u003c/li\u003e\n          \u003cli\u003eDeterminar que quando o componente de listagem de movimentações for carregado seja realizada uma requisição à nossa API: movimentacao-list.component.ts\u003c/li\u003e\n        \u003c/ul\u003e\n        \u003cbr\u003e\n        \u003cul\u003e\u003cstrong\u003eFormatando campos na tela\u003c/strong\u003e\n          \u003cli\u003eAdicionado algumas configurações no módulo do projeto: app.module.ts\u003c/li\u003e\n          \u003cli\u003eAdicionando as formatações nos campos Data Hora e Valor: movimentacao-list.component.html\u003c/li\u003e\n          \u003cli\u003eAplicando estilo com base em uma condição em nossos registros: movimentacao-list.component.html\u003c/li\u003e\n          \u003cli\u003eAdicionando o botão Novo na página de movimentação: movimentacao-list.component.html\u003c/li\u003e\n          \u003cli\u003eCentralizando o conteúdo da página: movimentacao-list.component.html\u003c/li\u003e\n          \u003cli\u003eConfigurando a rota para a página para cadastrar uma nova movimentação: movimentacao-list.component.html\u003c/li\u003e\n        \u003c/ul\u003e\n        \u003cbr\u003e\n        \u003cul\u003e\u003cstrong\u003eNova Movimentação\u003c/strong\u003e\n          \u003cli\u003eExibindo e atualizando campos para entrada de nova movimentação: movimentacao-new.component.html\u003c/li\u003e\n          \u003cli\u003eCriando o serviço para acessar os recursos de Correntista: ng g s services/correntista\u003c/li\u003e\n          \u003cli\u003eInserindo a regra de negócio: services/correntista.service.ts\u003c/li\u003e\n          \u003cli\u003eConectar a nossa API para buscar os correntistas do banco de dados: components/movimentacao-new.component.ts\u003c/li\u003e\n          \u003cli\u003eExibir os correntistas na tela de nova movimentação: movimentacao-new.component.html\u003c/li\u003e\n          \u003cli\u003eCriar uma variável correntista para poder identificar qual foi o correntista selecionado: movimentacao-new.component.ts\u003c/li\u003e\n          \u003cli\u003eInstalar componente ng2-currency-mask: npm i ng2-currency-mask\u003c/li\u003e\n          \u003cli\u003eDefinir uma máscara no campos R$ Valor: transaction-new.component.html\u003c/li\u003e\n        \u003c/ul\u003e\n        \u003cbr\u003e\n        \u003cul\u003e\u003cstrong\u003eIncluindo uma movimentação\u003c/strong\u003e\n          \u003cli\u003eAdicionando o método de inclusão (POST) via API: services/movimentacao.service.ts\u003c/li\u003e\n          \u003cli\u003eCriando o método para ser chamado na tela e assim incluir a movimentação: components/movimentacao-new.component.ts\u003c/li\u003e\n          \u003cli\u003eExecutar o método save no click do botão Confirmar: components/movimentacao-new.components.html\u003c/li\u003e\n        \u003c/ul\u003e\n        \u003cbr\u003e\n        \u003cul\u003e\u003cstrong\u003eMovimentações por Correntista\u003c/strong\u003e\n          \u003cli\u003eInteração constante com a API Back-end, e isso será via Swagger\u003c/li\u003e\n          \u003cli\u003eRefinando nossa tela de consulta de movimentações: transaction-list.component.html\u003c/li\u003e\n          \u003cli\u003eCriando o serviço para listar as movimentações por correntista: \n          services/movimentacao.service.ts \u0026\u0026 components/movimentacao-list.component.ts\u003c/li\u003e\n        \u003c/ul\u003e\n        \u003cbr\u003e\n        \u003cul\u003e\u003cstrong\u003eCorrentistas\u003c/strong\u003e\n          \u003cli\u003eNovo componente correntista: ng g c components/correntista\u003c/li\u003e\n          \u003cli\u003eNova rota para novo componente: app-routing.module.ts\u003c/li\u003e\n          \u003cli\u003eNavegação simples para a rota correntistas e CorrentistaComponent: movimentacao-list.component.html\u003c/li\u003e\n          \u003cli\u003eTela para inclusão e listagem de correntistas: components/correntista.component.html\u003c/li\u003e\n          \u003cli\u003eRegra de negócio para inclusão e listagem dos correntistas: \n          components/correntista.component.ts\u003c/li\u003e\n          \u003cli\u003eCriando mais uma funcionalidade no serviço de correntistas: \n          services/correntista.service.ts\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/ul\u003e\n    \u003cbr\u003e\n    \u003cli\u003eAula 4 - Construindo um App Android de extrato bancário\n      \u003cbr\u003e\u003cbr\u003e\n      \u003cul\u003e\u003cstrong\u003eParte 1 - Conhecendo a API: Modelagem do Domínio\u003c/strong\u003e\n        \u003cli\u003eDomínio/Problema - desenvolver um app Android nativo que explore o domínio bancário (o extrato com as movimentações do correntista)\u003c/li\u003e\n        \u003cli\u003eIntegrando o Parcelable: id 'kotlin-parcelize'\u003c/li\u003e\n        \u003cli\u003eAtivando a viewBinding em build.gradle\n          // Reference: https://developer.android.com/topic/libraries/view-binding\n            buildFeatures {\n                viewBinding true\n            }\n        \u003c/li\u003e\n        \u003cli\u003eConstruir as views os modelos de domínio e ui, bem como os seus respectivos layouts\u003c/li\u003e\n        \u003cli\u003eAtualizar o AndroidManifest.xml\u003c/li\u003e\n      \u003c/ul\u003e\n      \u003cbr\u003e\n      \u003cul\u003e\u003cstrong\u003eParte 2 - Construindo a UX/UI: Material Design\u003c/strong\u003e\n        \u003cli\u003ePadronizar os temas, cores, dimensões e strings em inglês e português\u003c/li\u003e\n        \u003cli\u003eNovas dependências a serem adicionadas:\n          // Additional dependencies AndroidX:\n            implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'\n        \u003c/li\u003e\n        \u003cli\u003eCriar classe BankStatementAdapter.kt\u003c/li\u003e\n      \u003c/ul\u003e\n      \u003cbr\u003e\n      \u003cul\u003e\u003cstrong\u003eParte 3 - Consumindo a API: Retrofit, Coroutines e LiveData\u003c/strong\u003e\n        \u003cli\u003eInjetar dependência do Live Data\n          // Additional dependencies AndroidX:\n            implementation 'androidx.activity:activity-ktx:1.4.0'\n            implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.1'\n        \u003c/li\u003e\n        \u003cli\u003eInjetar dependência do Retrofit em build.gradle:\n          // Reference: https://github.com/square/retrofit\n            implementation 'com.squareup.retrofit2:retrofit:2.9.0'\n            implementation 'com.squareup.retrofit2:converter-gson:2.9.0'\n        \u003c/li\u003e\n        \u003cli\u003eCriar BanklineApi interface com coroutine: data.remote.BanklineApi.kt\u003c/li\u003e\n        \u003cli\u003eCriar BanklineRepository (padrão singleton): data.BanklineRepository.kt\u003c/li\u003e\n        \u003cli\u003eCriar State (sealed class): data.State.kt\u003c/li\u003e\n        \u003cli\u003eCriar BankStatementViewModel (class): ui.statement.BankStatementViewModel.kt\u003c/li\u003e\n        \u003cli\u003eIntegrar Binding com SwipeRefresh: ui.statement.BankStatementActivity.kt\u003c/li\u003e\n      \u003c/ul\u003e\n      \u003cbr\u003e\n      \u003cul\u003e\u003cstrong\u003eParte 4 - Conclusão e dicas finais\u003c/strong\u003e\n        \u003cli\u003eModificar ícone do app\u003c/li\u003e\n        \u003cli\u003ePossibilidades de melhorias no app: verificar os To Do's (TODO)\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e  \n\u003c/ol\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandrecpedro%2Fsantander-dev-week-bankline-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexandrecpedro%2Fsantander-dev-week-bankline-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandrecpedro%2Fsantander-dev-week-bankline-app/lists"}