Skip to content

JavierLaguna/Composable-SwiftUI

Repository files navigation

📱 Composable SwiftUI

📝 Description

Little iOS app for consume The Rick and Morty API. Inspired on RickAndMortyBeerBuddy Android project from Daniel Rivero Losa.

The target of the app is list all characters of the television show Rick and Morty. Show the character details and the Beer Buddy of all characters.

Project used for learn SwiftUI + TCA architecture

📷 Screenshots

Character List Character List Error

Character List Search Character List Search No Results

Character Detail Character Detail

Match Beer Buddy Match Beer Buddy Not Found

Beer Buddy Info

🚩 Instructions

  1. ⬇️ Get dependencies

    1. Install rswift with Homebrew

      brew install rswift
    2. Open Xcode and SPM will autoinstall the dependencies.

🚧 Application Architecture

Swift + SwiftUI app.

Based on Clean Architecture + The Composable Architecture (TCA) as main architecture.

stinsen as router using Coordinator pattern.

GitFlow as Git methodology.

✅ App Features

Character List
  • List all characters with infinite pagination
  • Search character by name
Character detail
  • Show chracater info details
Character Beer Buddy
  • Once the user selects a character the application will search for the perfect galactic beer companion by applying the following criteria:

    • The Ricks Council has decreed perimeter confinement of planets, so actors will only be able to date actors that are in the same location.

    • In order for them to have enough anecdotes to tell while getting drunk, priority will be given to the characters who have shared more times filming set, for this purpose the number of chapters in which they have coincided will be bought.

    • In case two possible matches have shared the same number of chapters with the selected character, preference will be given to those who have known each other the longest, using the date of the first chapter in which they appeared together.

    • If they have participated in the same number of chapters, and they met on the same day, priority will be given to the candidate who has not seen the selected character for the longest time, using the date of the last chapter in which they both appeared.

    • Finally, in case there is more than one candidate that meets all the criteria, they will be ordered by ID.

🛠 Work in progress

  • Fix TabBar accent color.

🔮 Next steps / features

  • Split SwiftUI components for improve reuse.
  • Add some library for mock entities for use in tests and SwiftUI previews.
  • Show Location and Episodes info.

💻 Author

Javier Laguna

About

Project used for learn SwiftUI + TCA architecture

Resources

Stars

Watchers

Forks

Packages

No packages published