Giter Site home page Giter Site logo

monthly-app-challenge-2022's Introduction

App Monthly Challenge 2022

Proyecto de retos de creación mensual de aplicaciones de la comunidad MoureDev en base a requisitos.

https://mouredev.com/discord

También existen repositorios tanto para Kotlin/Android como para Swift/iOS en los que se publicarán semanalmente pequeños retos de código. Así podrás elegir el que mejor se adapta a tus necesidades (o practicar en todos).

GitHub Followers GitHub Followers

Vídeo explicación retos

El proyecto

La idea principal es utilizar este proyecto para publicar retos de creación de pequeñas Apps y soluciones en diferentes tecnologías (principalmente iOS y Android, aunque si quieres puedes hacerlo via web/desktop). Es una manera para intentar "forzarnos" a practicar desarrollo de aplicaciones en base a requisitos y de forma colaborativa dentro de la comunidad.

Listado de retos

Enero: 03/01/22

CONECTA 4: Crea el juego conecta cuatro. Tienes un ejemplo parecido aquí.

Requisitos:

  • Tablero de 7x6 (7 en el eje "x" y 6 en el "y").
  • Fichas Rojas y Amarillas. La primera partida la comienza siempre la Roja (la segunda la Amarilla, la tercera la Roja...).
  • No hay que implementar una funcionalidad que te permita jugar contra la App. Se asume que jugarán dos personas reales alternándose.
  • Al seleccionar la columna se coloca la ficha en la parte inferior.
  • Guardar el número partidas ganadas de cada equipo mientras la App no se finaliza.
  • Dos botones para reiniciar la partida en marcha y para resetear el contador de victorias y derrotas.
  • Puedes añadirle todas las funcionalidades extra que consideres.

Soluciones: ENLACES A LOS REPOSITORIOS

Febrero: 03/02/22

LA ENCICLOPEDIA STAR WARS: Crea una app que sirva para listar los personajes de Star Wars y que te permita buscarlos por nombre.

Requisitos:

  • Usa el API https://swapi.dev/
  • El diseño es de libre elección.
  • Debe mostrar un listado y un detalle de cada personaje.
  • El listado tendrá que estar paginado.
  • El listado poseerá un filtro de búsqueda.
  • Al seleccionar un personaje del listado, el detalle mostrará los datos que consideres oportunos.
  • OPCIONAL: Detalle de películas, vehículos, naves, especies...
  • OPCIONAL: Foto de cada personaje.

Soluciones: ENLACES A LOS REPOSITORIOS

Marzo: 03/03/22

CUESTIONARIO CONTRARRELOJ: Crea una "Quiz app" contrareloj con ranking.

Requisitos:

  • El diseño es de libre elección.
  • La temática de las preguntas del cuestionario será de libre elección. Puede estar bien seguir un mismo tema (por ejemplo, preguntas sobre el universo "Harry Potter").
  • En la pantalla inicial podrás comenzar a jugar o consultar el ranking de puntuaciones.
  • El juego consistirá en 10 preguntas aleatorias con 3 respuestas y sólo una correcta. Recomendable crear más de 10 preguntas para que no siempre salgan las mismas. Cada vez que se responde a una pregunta, se pasará a la siguiente.
  • Disponemos de 30 segundos para responder cada pregunta. El contador deberá aparecer en la pantalla, y si llega a 0 se tomará como respuesta incorrecta y se pasará a la siguiente pregunta.
  • Al marcar una respuesta o finalizar el tiempo, se mostrará si se ha acertado o no la pregunta, dando feedback sobre cuál sería la respuesta correcta y navegando al cabo de un par de segundos a la siguiente pantalla.
  • Sistema de puntuación:
    • Contador a 0 o respuesta incorrecta = 0 puntos.
    • Contador mayor 0 y respuesta correcta = [segundos restantes] puntos. Ej: Si quedaban 9 segundos para finalizar la cuenta atrás y se acierta la pregunta, se asignan 9 puntos.
  • Una vez finalizada la pregunta número 10 se mostrará en una nueva pantalla la puntuación final y se deberá introducir un nombre para guardarla de forma persistente (aunque cerremos la app). Hecho estos se mostrará la pantalla de ranking.
  • La pantalla de ranking muestra ordenados de mayor a menor los 10 mejores resultados y el nombre guardado. Desde esta pantalla siempre se podrá navegar a la pantalla inicial.

Reto en desarrollo...

Abril: 31/03/22

Pendiente de publicación...

¿Cómo puedo participar?

Puedes hacer libremente un fork del proyecto y trabajar con Git para ir sincronizando las actualizaciones del proyecto.

  • Cada primer lunes del mes se publicará un nuevo reto de código.
  • Los requisitos del reto mensual se publicarán en este mismo README.
  • Se comunicará en el canal #🗓reto-mensual de Discord, en directo desde Twitch y se subirá el enunciado al repositorio.
  • Dispondrás de un mes para resolverlo, preguntar tus dudas, debatir y aportar ayuda en el canal de Discord.
  • El primer lunes del mes siguiente (o último del anterior) se subirán enlaces a repositorios de la comunidad con resolucines en diferentes tecnologías, se comentarán en directo desde Twitch (utilizando resoluciones de entre los asistentes que hayan realizado una pull request a mi proyecto con el enlace de GitHub a su proyecto) y se añadirá el nuevo reto mensual.
  • Comenzará de nuevo el proceso.

Si quieres unirte a nuestra comunidad de desarrollo, aprender programación de Apps, mejorar tus habilidades y ayudar a la continuidad del proyecto, puedes encontrarnos en:

Twitch Discord Link

Cómo trabajar con Git y GitHub de forma colaborativa

Deberás realizar flujos de actualización, sincronización y pull request desde tu fork del proyecto hacia el principal (habitualmente nombrado como upstream/main). Todo esto se puede hacer desde línea de comandos, pero si prefieres puedes usar clientes gráficos como GitHub Desktop (muy simple) o GitKraken (más avanzado y potente).

  • Desde tu repo en la propia web de GitHub podrás realizar muchas acciones.
  • Resuelve el reto en tu propio repositorio y realiza una pull request a mi repositorio con un "README_#[número del reto].md" (README_#1.md) que contenga el enlace al repositorio donde has resuelto el reto.
  • Desde GitHub, una vez hecho el fork verás opciones como "Contribute" o "Fetch upstream":
    • Contribute permite abrir una pull request(deberás seleccionar el mío como repositorio base contra el que comparar tu proyecto). Así yo podré ver el README con el enlace al tu repo, tal y como comento en el punto anterior.
    • Fetch upstream permite sincronizar tu proyecto con el original en caso de que se haya actualizado.
  • Para sincronizar tu proyecto con el original y mantenerlo actualizado también puedes hacer un merge commit, squash merge o rebase(ten en cuenta que cada uno se comporta de una manera, conservando o no tus propios cambios).
  • Una vez se publique el nuevo reto, la solución del anterior, y comente las soluciones, cerraré las pasadas pull request para dejar paso a las que se hagan para el nuevo reto.

https://mouredev.com Hola, mi nombre es Brais Moure.

Freelance full-stack iOS & Android engineer

YouTube Channel Subscribers Twitch Status Twitter Follow GitHub Followers

Soy ingeniero de software desde hace más de 11 años. Desde hace 3 años combino mi trabajo desarrollando Apps con creación de contenido formativo sobre programación y tecnología en diferentes redes sociales como @mouredev.

En mi perfil de GitHub tienes más información

Web

monthly-app-challenge-2022's People

Contributors

mouredev avatar eecuriel avatar

Stargazers

Eduardo Binns 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.