https://github.com/shrtlist/paymenttypeselection
Demo project to create a payment type selection interface using SwiftUI.
https://github.com/shrtlist/paymenttypeselection
combine-framework mvvm swiftui timer
Last synced: 16 days ago
JSON representation
Demo project to create a payment type selection interface using SwiftUI.
- Host: GitHub
- URL: https://github.com/shrtlist/paymenttypeselection
- Owner: shrtlist
- Created: 2025-01-18T23:42:06.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-28T04:58:26.000Z (over 1 year ago)
- Last Synced: 2025-01-28T05:27:10.538Z (over 1 year ago)
- Topics: combine-framework, mvvm, swiftui, timer
- Language: Swift
- Homepage:
- Size: 385 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SwiftUI Test
In this test, you will be need to create a payment type selection interface using SwiftUI.
## Requirements
- macOS Monterey 12.0 or later
- Xcode 13.2 or later
- Swift 5.0 or later
- iOS Simulator/Device 15.2 or later
---
## Task Details
This challenge is to create a payment type selection interface using SwiftUI.
It should:
- ⏱️ 60-second countdown timer
- 💳 Payment method selection
- 🔍 Search functionality for payment types
- ♻️ Pull-to-refresh payment list
- ✅ Selection state management
- 🎯 Modal presentation
- ✨ Success view after completion
### Implementation Checklist
- [ ] Payment Type Selection Interface
- [ ] Interactive payment method selection
- [ ] Visual feedback for selected payment types
- [ ] Smooth animations and transitions
- [ ] Data Management
- [ ] Implementation of PaymentTypesRepository
- [ ] Efficient state management
- [ ] Type-safe data handling
---
## Setup
### Open the project in Xcode
```bash
open SwiftUIChallenge.xcodeproj
```
### Running the Project
1. Open the project in Xcode
2. Select your target device (iOS Simulator or physical device)
3. Click the "Run" button (▶️) or press `Cmd + R` to build and run the project
### Project Structure
The application's entry point is `SwiftUIChallengeApp.swift`, which loads the main `ContentView`. The core functionality is organized as follows:
- `SwiftUIChallengeApp.swift`: Application entry point and setup
- `ContentView.swift`: Main view implementation
- `PaymentTypesRepositoryImplementation.swift`: Data layer implementation
### Running Project Example
Screenshots of the full flow are in the `Screenshots` folder.
Example:

---
## Development Guidelines
### Do's
- Write clean, maintainable, and well-documented code and follow the best practices and coding standards.
- You are free to use any official documentation or language references (SwiftUI, Swift, etc).
- You can use the debugging tools and native IDE features (only standard Auto-Completion)
### Don'ts
- Do NOT use any external libraries for the implementation.
- DO NOT use any Coding Assistants like GitHub Copilot, ChatGPT, etc or any other AI based tools.
- DO NOT visit direct blogs or articles related to implementation of the tasks.
- DO NOT use Stackoverflow or any other forum websites.