Skip to content

shadiGhelman/ewano

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Shop App - EBCOM's Technical Assessment

The app features a dynamic, data-driven home page and a robust search experience with local history persistence.

πŸ“‹ Requirement Compliance Report

Requirement Status Implementation Details
Data Source (JSON API) βœ… Fetched via NetworkService using Async/Await.
Dynamic Home Sections βœ… Ordered based on JSON sections array.
Category Section βœ… Horizontal scrolling with long title handling.
Banner Section βœ… Dynamic height based on image ratio.
Shop Section βœ… 4-column grid layout.
FixedBanner Section βœ… Smart layout (1, 2, 3, or 4 items) using FixedBannerCollectionViewCell.
FAQ (Accordion) βœ… Implemented at bottom with single-open logic.
Search Functionality βœ… Debounced (0.3s) filtering (min 3 chars) by title and tags.
Search History βœ… Persistent storage using SwiftData.
RTL Support βœ… Configured for Persian (Lari) with RTL layout.

πŸš€ Key Features

  • Compositional Layout: Advanced UI layout for complex sections on the Home page.
  • SwiftUI Integration: The Search feature is built using SwiftUI, integrated into the UIKit project.
  • Generic Network Layer: Protocol-oriented networking with full Swift Concurrency support.
  • Reactive UI: State management powered by Combine.

πŸ›  Tech Stack

  • Language: Swift 6
  • UI Frameworks: UIKit (Compositional Layout) & SwiftUI
  • Persistence: SwiftData
  • Networking: URLSession with Async/Await
  • Image Loading: Kingfisher
  • Unit Testing: XCTest

πŸ“‚ Project Structure

  • Core/: Network and Database management.
  • Features/Home/: Home page ViewControllers, ViewModels, and Layout logic.
  • Features/Search/: Search functionality, SwiftUI views, and SwiftData models.
  • Resources/: Theme, Localization, and Fonts.

About

The app features a dynamic, data-driven home page and a robust search experience with local history persistence.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages