This iOS app is developed as part of the Airalo technical interview assignment. The project demonstrates the ability to build a Swift-based application that interacts with a remote eSIM API, displays country-specific eSIM packages, and follows modern development best practices using SwiftUI and MVVM.
- Fetches countries and their respective eSIM packages from the provided Local eSIMs API.
- Displays country images, names, and available eSIM plans with package details.
- Pixel-perfect UI following Figma designs.
- Supports dynamic theming (light/dark) for operator card styles.
- Fully responsive layout for iPhones and iPads.
- Built using MVVM architecture for clean code separation.
- Manages loading, success, and error UI states.
- Language: Swift
- UI Framework: SwiftUI
- Architecture: MVVM (Model-View-ViewModel)
- Networking: URLSession with decodable models
- Minimum Deployment Target: iOS 17.0
- Design Tool: Figma (handoff provided)
- Created and configured Xcode project in Swift with iOS 17+ support.
- Repository hosted on GitHub: https://github.com/fromastwithlove/AiraloAssignment
Note:
The repository is now public. All local assets originally provided by Airalo have been removed or replaced with open-source alternatives.
This project uses the publicly accessible backend API provided by Airalo, which is used here strictly for demonstration purposes as part of a technical assignment.
Disclaimer:
The API and its data are the intellectual property of Airalo.
All rights are reserved by Airalo, and content may not be reproduced, downloaded, disseminated, published, or transferred in any form or by any means, except with the prior written permission of Airalo.
Copyright ©2024 Airalo. All rights reserved.
- Integrated with the provided Local eSIMs API using Postman reference.
- Implemented
NetworkServiceto handle all API requests and response parsing. - Successfully fetched and decoded the country list and corresponding eSIM packages.
- Investigating why requests weren't localizable.
- UI fully built using SwiftUI, programmatically.
- Country and package displays follow exact Figma specs.
- Handles various screen sizes with responsive spacing.
- View: Responsible only for UI rendering.
- ViewModel: Handles API communication and state logic.
- Model: Represents API response data.
- Loading indicators, success state rendering, and error fallback views.
- All state transitions are smoothly animated where appropriate.
- App runs on iPhones and iPads of all sizes.
- Manual QA completed — design and functionality confirmed.
- No Xcode warnings or build errors present.
- Unit tests implemented, covering the network layer and API integration to ensure proper data fetching and response handling.
- Documentation generated for the project and appended to the repository for future reference.