A SwiftUI application that offers a sleek and interactive way to browse, search, and view detailed information about Pokémon. The app is built with a clean MVVM (Model-View-ViewModel) architecture to ensure organized and maintainable code.
Check out the smooth navigation and features in action!
WhatsApp.Video.2025-04-26.at.23.48.35.mp4
| Home | Search | Details | Navigation | Loading | Abilities | Browse |
|---|---|---|---|---|---|---|
- Coordinator Pattern with Navigation Stack: The app uses a navigation stack and the coordinator pattern to manage screen transitions effectively, keeping the navigation logic modular and maintainable.
- Custom Networking Layer: A custom-built networking layer is implemented to handle API requests, ensuring reliability, scalability, and ease of testing.
- Browse Pokémon: Explore a wide range of Pokémon with detailed stats and images.
- Search Functionality: Quickly find specific Pokémon by their name or attributes.
- Detailed Information: Access comprehensive details about each Pokémon, including type, stats, and abilities.
- Smooth Performance: Optimized for fast loading and seamless user experience.
- Clean UI: A visually pleasing and user-friendly interface designed using SwiftUI.
This project incorporates the MVVM (Model-View-ViewModel) architecture pattern, along with a Navigation Stack and the Coordinator Pattern for managing screen transitions and maintaining a clean separation of concerns in navigation logic.
- Model: Represents the data retrieved from APIs or local storage.
- View: Handles the UI components and user interactions.
- ViewModel: Acts as a bridge between the Model and the View, managing the app's logic and data flow.
- Coordinator Pattern: Ensures that navigation logic is delegated to dedicated coordinators, making the codebase more modular and easier to maintain.
- Language: Swift
- Framework: SwiftUI
- Design Pattern: MVVM, Coordinator Pattern
- Networking: Custom Networking Layer
- Tools: Xcode, Git
Follow the steps below to set up and run the Pokémon app on your local machine:
- macOS with the latest version of Xcode installed.
- Basic knowledge of Swift and SwiftUI.
- Clone the repository:
git clone https://github.com/abdallah-7698/Pokemon.git
- Open the project in Xcode:
cd Pokemon open Pokemon.xcodeproj - Build and run the project on the simulator or a physical device.
Contributions are welcome! If you'd like to contribute to the project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature-name
- Commit your changes and push them to your fork:
git commit -m "Description of changes" git push origin feature-name - Create a pull request to merge your changes into the main repository.
- Special thanks to all contributors and the open-source community for their inspiration and support.