Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor iOS Core navigation and Update Screens #377

Merged
merged 82 commits into from
Dec 23, 2024
Merged

Conversation

thomaskioko
Copy link
Owner

@thomaskioko thomaskioko commented Dec 23, 2024

Description

This PR brings a vast improvement to the iOS code, improving the snapiness of the iOS app. This also updates some of the components used to a more native look and feel. The changes span multiple modules and include iOS and shared code implementations.

Some new elements and screens have been added as placeholders and will be implemented in later PRs.

Key Changes (iOS)

  • Improved lifecycle management.
  • Replaced the custom Tab with the native iOS Tab.
  • Refactored SwiftUI views to have a native look and feel.
  • Improve Image memory management. Drop down the memory consumption from 1.4GB to around 130MB, give or take. Commit 🤯 There's some caching improvement to be done but, I will tackle this later.
  • Updated theme handling and UI styling

Other changes.

  • Added a new Genre data layer with repository pattern implementation.
  • Introduced ShowGenre model and related database tables.
  • Updated database schema to support many-to-many relationships between shows and genres.
  • Cleaned up Store mapper extensions. (I think I was high when I implemented that bit) 😵‍💫

Known Issues.

  • Navigating back using the back button from ShowDetails to HomeTab shows a blank screen.

Demo

iOSDemoApp.mov

Screen Rework.

  • Home Tab
  • Discover Tab
  • Settings Tab
  • Search Tab
  • Watchlist Tab
  • Season Details
  • Show Details.
  • Watch More
  • Profile

closes #339

- Convert Value to StateFlow.
- Rename some classes & variables.
- Make the UI feel more native. The header view inspiration is from AppleTV+ application.
- Move Show info and indicator to discover view. This allows us to make the info scroll above the image.
- Smooth out CarouselView animation.
- This gives us more control of the content view and makes the the view reusable.
- Fix issue with item not being update to correct state. When clicking on the plus icon, view was not being updated correctly.
- Move adapter classes to adapter module.
- Create Factory class for creating the database object. This moves it out or the component class.
- Move model classes to model package and update imports.
@thomaskioko thomaskioko added ios iOS related task/issue improvement Fix or improvement of an existing feature labels Dec 23, 2024
@thomaskioko thomaskioko force-pushed the ios-improvements branch 7 times, most recently from ba4f4b4 to d2933fc Compare December 23, 2024 16:38
- Todo: fix fastlane failure
@thomaskioko thomaskioko merged commit 5693733 into main Dec 23, 2024
@thomaskioko thomaskioko deleted the ios-improvements branch December 23, 2024 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement Fix or improvement of an existing feature ios iOS related task/issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

(iOS) Fix Navigation Lag
1 participant