Sportheca Mobile DEV Week - Simulador de Partidas 🎲

Overview

Sportheca Mobile DEV Week - Simulador de Partidas 🎲

Simulador de Partidas
Projeto desenvolvido no bootcamp Sportheca da DIO.


Desenvolvimento Mobile Nativo Para Android

Objetivo Geral

Fornercer uma visão geral sobre a área de Desenvolvimento Mobile, com ênfase na criação de Apps Nativos em Android. Para isso, o ambiente de desenvolvimento é configurado com o Android Studio, possibilitando a construção de aplicativos nas linguagens Java e Kotlin.

Percurso
  • Introdução ao Desenvolvimento Mobile
  • Android Nativo: Ambiente de Desenvolvimento
  • Android Nativo: Estrutura de Projetos Android
Setup: Elementros Centrais

SDK Manager: possibilita o gerenciamento de pacotes por meio de ferramentas, APIs e outros componentes;
AVD Manager: provê múltiplas possibilidades de emulação através de dispositivos virtuais.

Android Studio

Iniciando o Projeto

EmptyActivty
Simulator
me.dio.simulator
Kotlin
API 21

Samsung Flow


Componentes, Layouts e UI UX Em Apps Android

Objetivo Geral

Apresentar alguns dos componentes disponíveis nativamente na SDK Android, explorando o Jetpack sempre que possível. Nesse sentido, os layouts de um App para simulação de partidas esportivas serão definidos. Para isso, os conceitos de prototipação e UI/UX são essencialmente compreendidos.

Percurso
  • Introdução ao Android Jetpack
  • Material Design
  • Criação dos Layouts do App
Conhecendo o Jetpack

O Android Jetpack é um conjunto de bibliotecas que ajuda desenvolvedores a seguir práticas recomendadas, reduzir códigos boilerplate e programar códigos que funcionam de maneira consistente em diferentes dispositivos e versões do Android. Assim, o desenvolvedor pode se concentrar em seu domínio de aplicação.

Usando o View Binding

Facilitar/centralizar o acesso à componentes definidos via layout XML. Com isso, as incômodas/recorrentes chamadas ao método findViewById tornam-se desnecessárias.

Usando o SwipeRefreshLayout
implementantion 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
Get from VCS

Informa a URL do Projeto - GitHub, clona direto no Android Studio.

Material Design

É um sistema de design (que engloba UI e UX) criado pelo Google para nos ajudar a criar experiências digitais de alta qualidade para multiplas plataformas.

Sistema de Cores
Color Tool

Prototipação do App

Primeira tela: Listagem/Simulação de Partidas
Segunda tela: Detalhes da Partida

Atalhos

Replace: Ctrl + R
Abrir Opções: Alt + Enter

In res/values/type.xml:

Style


Java e Kotlin

Objetivo Geral

Desenvolva os eventos, integrações e interações de usuário em um App Android. Para isso, vamos explorar conceitos essenciais, como: APIs, Orientação a Objetos e Padrões de Projetos; tudo na prática usando Java e Kotlin!
Nesse sentido, bibliotecas consolidadas como Glide e Retrofit serão utilizadas com o objetivo de aumentar ainda mais nossa produtividade e qualidade de código.

Percurso
  • Criando uma "API" e Modelando seu Domínio
  • Conhecendo as Bibliotecas Retrofit e Glide
  • Parcelable e Simulação de Partidas 🎲
Domínio/Problema

Com base nos protótipos, conseguimos ter uma boa ideia do nosso domínio de aplicação. Nesse contexto, vamos abstrair as entidades relevantes para o App, por exemplo:

  • Toda Partida é realizada em um Local;
  • Uma Partida possui dois Times (mandante e visitante);
  • Os Times têm um nível de força (estrelas)…
“API” no GitHub Pages 🤨

Uma Application Programming Interface (API), basicamente, se propõe a expor recursos de um domínio de aplicação. Seu principal objetivo é definir uma interface para integrações concisas e eficientes.

Nesse sentido, para que não tenhamos que construir uma API do zero, vamos prover nossos recursos (partidas) via GET por meio do recurso GitHub Pages.

[
  { 
    "descricao": "Eliminatórias Copa 2022",
    "local": {
      "nome": "Maracanã",
      "imagem": "TODO"
    },
    "mandante": {
      "nome": "Brasil",
      "estrelas": 5,
      "imagem": "https://www.bandeirasnacionais.com/data/flags/normal/br.png"
    },
    "visitante": {
      "nome": "Argentina",
      "estrelas": 5,
      "imagem": "https://www.bandeirasnacionais.com/data/flags/normal/ar.png"
    }
  }
]

Matches Simulator API

Retrofit

Cliente HTTP para Android e Java, o qual abstrai incrivelmente a complexidade no consumo de APIs. Além disso, possui uma série de conversores JSON, que facilitam a (de)serialização dos dados:
Retrofit (HTTP Client)

implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
Glide

Gerenciador de mídia rápido e eficiente, abstraindo o processo de carregamento de imagens em Android, gerenciando desde a decodificação e transformação até o controle de cache das mesmas:
Glide (Image Loading)

implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
Permissão de acesso a internet
">

  

Listas dinâmicas com o RecyclerView

Parcelable

Parcelable é a estratégia de (de)serialização padrão em Apps Android, ou seja, é a implementação utilizada para troca de mensagens entre as telas de um App. Nesse contexto, o Kotlin Parcelize é uma alternativa muito simples e efetiva:

plugins {
   id 'kotlin-parcelize'
}

Firebase

Objetivo Geral

Conheça algumas das possibilidades oferecidas pelo Firebase. Nesse contexto, vamos explorar alguns recursos interessantes dessa plataforma, como o Analytics, Crashlytics, entre outros. Com isso, nosso App estará muito mais preparado para uma publicação em produção (Google Play), pois eventuais crashes e insights relacionados ao seu uso poderão ser monitorados proativamente.

Introdução ao Firebase

Fornece as ferramentas para desenvolver aplicativos de alta qualidade, ampliar a base de usuários e lucrar mais. Para isso, o Firebase oferece uma poderosa suite de soluções, abstraindo a complexidade em diferentes contextos:

  • Construção
  • Implantação e Monitoramento
  • Engajamento
Configurando o Firebase

Passos para adicionar o Firebase em seu App usando o Console do Firebase (recomendado):

Crashlytics

O Firebase Crashlytics é uma ferramenta de relatório de falhas leve e em tempo real que ajuda a monitorar, priorizar e corrigir problemas de estabilidade que comprometem a qualidade do seu aplicativo.

O Crashlytics economiza tempo na solução de problemas com o agrupamento inteligente das falhas e a exibição das circunstâncias que levam a elas.

Configurando o Crashlytics

Passos para adicionar o Firebase Crashlytics:

You might also like...

Aplikasi Android "MovieApp" untuk memenuhi salah satu syarat Ujian Akhir Semester mata kuliah Pengembangan Aplikasi Mobile UIN Sunan Gunung Djati Bandung.

Aplikasi Android

MovieApp Kelompok No Way Home, berikut list anggota-nya: Fakhri Faishal Rochdiana (1197050040) Muhamad Taopik (1197050081) Naufal Rizqullah (119705009

Dec 22, 2022

Cross-platform framework for building truly native mobile apps with Java or Kotlin

Cross-platform framework for building truly native mobile apps with Java or Kotlin

Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

Jan 5, 2023

Android application made during an introduction class to mobile application development.

Reflex Revolution Android application made during an introduction class to mobile application development. Contributors Hailey Savoie Carter Moore Fre

Aug 27, 2022

Light Chinese Bible is a Mobile app created by Android and SQLite.

About Light Chinese Bible Light Chinese Bible is a Mobile app created by Android and SQLite. It allows you to read the bible on your phone or devices

Feb 10, 2022

On-device, Offline Spleeter Solution For Mobile

On-device, Offline Spleeter Solution For Mobile

Spleeter for Mobile On-device, Offline Spleeter Solution For Android & iOS Spleeter is Deezer source separation library with pretrained models written

Dec 24, 2022

A simple live streaming mobile app with cool functionalities and time extension, and live chat. With a payment system integrated. Server is designed with socket.io to give you full flexibility.

A simple live streaming mobile app with cool functionalities and time extension, and live chat. With a payment system integrated. Server is designed with socket.io to give you full flexibility.

Video Live Streaming Platform Android A simple live streaming mobile app with cool functionalities and time extension, and live chat. With a payment s

Dec 16, 2022

Java library that integrates to SAP Mobile Services Backend APIs

Java integration for SAP Mobile Services is a client library to integrate your application with the backend-facing APIs of SAP Mobile Services. As this project only started, it at the moment only provides the integration to the Notification Backend services, which allows you to send push notifications to your mobile devices. Other integrated APIs may be added to this library in the future.

Dec 15, 2022

The MTN Mobile Money SDK

mtn-mobilemoney-java-sdk ###Introduction The MTN Mobile Money platform is currently available in 15 countries serving millions of subscribers. The pla

Dec 19, 2022

A part of the course Mobile Application Development

A part of the course Mobile Application Development

Movie-Recommendation-Android-App A part of the course Mobile Application Development Pre-processed TMDB dataset / TMDB API responses and built a conte

Dec 24, 2022
Owner
Lucas Magalhães
PHP (Laravel) | JavaScript | React | Next.js
Lucas Magalhães
DSMovie is a full stack web and mobile application built during Spring React Week, an event organized by DevSuperior

projeto-DSMovie Sobre o projeto DSMovie é uma aplicação full stack web e mobile construída durante a Semana Spring React, evento organizado pela DevSu

Matheus Maia Alvarez 7 Apr 18, 2022
App Android Nativo de Simulação de Partidas

Matches Simulator App App Android Nativo de Simulação de Partidas. Este repositório foi organizado em algumas branches que representam as implementaçõ

DIO 127 Dec 28, 2022
Customizable calendar with animations and ability to select a day, a week, a month or a custom range

?? RangeCalendarView A customizable, easy-to-use calendar with range selection Screenshots Getting started This library is available on Maven Central,

Oleg Khmaruk 10 May 20, 2022
Projeto criado na semana Spring React organizado pela escola Dev Superior com foco na prática/aprendizado das tecnologias Spring e React.

DSVendas Projeto criado na semana Spring React organizado pela escola Dev Superior com foco na prática/aprendizado das tecnologias Spring e React. htt

João Gabriel 3 May 18, 2021
Mc-msa-token-getter - Scripts to retrieve MC authentication tokens for use in modding dev envs.

Minecraft MSA Token Getter Python and Java scripts to retrieve MC authentication tokens for use in modding dev envs. Requires a properly configured Az

Ryan 1 Jan 3, 2022
Very briefly capturing some of new/ update in API that were introduced after Java 8 that may come handy for dev folks while programming

Very briefly capturing some of new/ update in API that were introduced after Java 8 that may come handy for dev folks while programming. Also have created tests demonstrating those APIs and playaround with it.

Jayaramanan Kumar 3 Jan 24, 2022
A neo4j procedure for tabby (dev)

tabby-path-finder #0 简介 A neo4j procedure for tabby tabby污点分析扩展,用于根据tabby生成的代码属性图做动态剪枝+深度搜索符合条件的利用链/漏洞链路。 #1 用法 生成jar文件 mvn clean package -DskipTests

wh1t3P1g 47 Dec 11, 2022
Repositório destinado para projeto da semana Spring React do Dev superior. Utilizando Java, TypeScript e Frameworks

⚛️ DS Meta - Semana Spring-React Repositório destinado para projeto da semana Spring React do Dev superior. Utilizando Java, JavaScript e Frameworks.

João Vítor Queiroz 2 Sep 11, 2022
Experimental Discord Mobile Rich Presence (Android)

MRPC Experimental Discord Mobile Rich Presence (Android) How does it work? It's pretty simple. Connect to the Discord Gateway as a normal Discord Clie

Duy Tran Khanh 41 Dec 25, 2022
This is a Food Delivery Mobile Application. Build Using React Native

Ax Food Delivery Service This is a Food Delivery Mobile Application build using ?????????? ???????????? ?? Installation Clone this repository git clon

Mindula Dilthushan Manamperi 13 Jul 14, 2022