/RickAndMorty

Primary LanguageSwiftMIT LicenseMIT

Rick & Morty

An Advanced, User-Friendly App for Exploring the Rick & Morty Universe

Change Type

  • New Feature Work
  • Bug Fix
  • INFRA

Description

The Rick & Morty app includes the following major features:

  • Four Major Tabs: Characters, Locations, Episodes, Settings
  • Pagination: Efficient handling of large data sets
  • Light & Dark Mode: Supports both themes for better user experience
  • Universal App: Designed for both iPhone and iPad
  • Integrated SwiftUI views within a UIKit application for modern and declarative UI components.
  • Implemented infinite scrolling in lists to load more data as the user scrolls down.
  • Efficiently loaded data in batches to reduce memory usage and improve performance.
  • Used parallel async tasks to fetch multiple sets of data simultaneously, reducing wait times.
  • Cached images locally to reduce redundant network calls and improve load times.
  • Integrated SafariServices to display web content seamlessly within the app's settings screen.
  • Utilized StoreKit to prompt users for app ratings and reviews, improving app visibility and feedback.
  • Compositional Layout: [1] Adaptive Layouts: Created complex and adaptive collection view layouts that adjust to different screen sizes and orientations. [2] Section-Based Design: Designed collection views with multiple sections and varying layouts to display content dynamically.

Technologies Used

  • UIKit
  • Swift
  • SwiftUI
  • Compositional Layout
  • Programatic UI
  • MVVM Architecture
  • Pagination
  • Networking
  • Search & filter functinality
  • Parallel Async Work
  • Image Caching
  • Caching prior API response (In-memory cache)
  • DispatchGroup
  • SafariServices: To show web view in settings screen
  • StoreKit: To show prompt and get app ratings from the user.

Main Layout of App

Characters Tab Locations Tab Episodes Tab Settings Tab
CharacterTab LocationTab EpisodeTab SettingsTab

Detail Screens of individual tabs & Pagination

Characters Detail Screen Locations Detail Screen Episodes Detail Screen Pagination
Character.Detail.mp4
Location.Detail.mp4
Episode.Detail.mp4
Pagination.mp4

Features

Search & Filter No Results Settings Items Ratings
Search.mp4
NoResults.mp4
SettingsItems.mp4
Ratings.mp4

iPad

iPad Resolution Themes: Light & Dark
ipad.mp4
Theme.mp4