Radio is a mobile application for listening to radio stations from around the world. The app provides users with access to hundreds of radio stations across various genres and allows them to create their own favorite station lists and manage playback.
-
MVP+R Architecture: This approach allows for maintaining and scaling the application by minimizing the coupling between components and providing flexibility in navigation.
-
RESTful API: We used a RESTful API to fetch radio station data, ensuring fast and reliable access to hundreds of stations worldwide.
-
User Defaults: User preferences and settings are stored using UserDefaults, allowing settings to persist even after the app is restarted.
-
Kingfisher: Kingfisher was used for downloading and caching radio station images, which improved app performance and enhanced the user experience.
-
Firebase: We integrated Firebase for user authentication via email and Google, as well as for managing the user database.
-
Core Data: Core Data was utilized for local storage of favorite radio stations, enabling users to save their preferences without requiring a constant network connection.
- Onboarding: A brief introduction to the app's features.
- Authentication (Sign In, Sign Up): Login and registration via email or Google, with the option to recover the password.
- Popular Stations: View and manage popular stations with the ability to vote.
- Favorites: Store and manage favorite radio stations.
- All Stations: Search and filter through all available radio stations.
- Station Details: Detailed information about the current radio station with animation and an equalizer.
- Profile: Manage personal data and settings.
- Vertical Tab Bar: A unique navigation design with vertically arranged tabs.
- Localization: Support for English and Russian languages.