A SwiftUI-based iOS app that lets you explore episodes and characters from the Rick and Morty TV show. Built using modern iOS development practices and the Rick and Morty API.
- 📺 Browse all episodes from the show
- 👥 View detailed character information
- 🔄 Pull-to-refresh for latest data
- 💾 Offline storage using SwiftData
- 📤 Export character details to CSV
- 📱 Share functionality for exported data
- 🎨 Modern iOS design with dynamic type support
- iOS 17.0+
- Xcode 15.0+
- Swift 5.9+
- Clone the repository:
git clone https://github.com/yourusername/RickAndMorty.git- Open the project in Xcode:
cd RickAndMorty
open RickAndMorty.xcodeproj- Build and run the project (⌘R)
The app follows modern iOS development practices and patterns:
- SwiftData for persistent storage
- Async/await for network operations
- Actor-based services for thread safety
- SwiftUI for the user interface
- MVVM-inspired architecture
- Comprehensive loading and error states
// Models
struct Character: Codable, Identifiable
@Model final class Episode
// Views
struct EpisodeListView: View
struct CharacterDetailView: View
// Services
actor CharacterService
actor EpisodeService- Displays all episodes sorted by season and episode number
- Shows air date and episode code
- Pull-to-refresh to update content
- Last refresh timestamp
- Character image with status indicator
- Basic information (status, species, gender)
- Origin and current location
- Episode appearance count
- Export and share functionality
- Export character details to CSV
- Share exported files
- Compatible with various document readers
The project includes comprehensive unit tests covering:
- Model functionality
- Data transformation
- Export operations
- Edge cases
Run tests using:
- Xcode's Test Navigator (⌘6)
- Command line:
xcodebuild test
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE.md file for details
- Rick and Morty API for providing the data
- SwiftUI and SwiftData for making modern iOS development a joy
- The Rick and Morty show creators for the amazing content
[Place screenshots here]
Your Name - @appforce1
Project Link: https://github.com/AppForce1/RickAndMorty