All work

Aydym

Music and video streaming for Turkmenistan

Aydym streams songs, albums, music videos and TV series. Listeners download music to play offline, share it with nearby phones without internet, and control playback from CarPlay, Siri, widgets and the Lock Screen.

Role
Main iOS engineer
Platform
iOS 15+, CarPlay
Tests
1,100+ (Swift Testing)
Commits
800+, ~97% of the repo
Aydym play queue with reorder handles and download buttons
Aydym Share: send songs, videos, albums and playlists to a nearby phone without internet
Aydym downloads manager with Wi-Fi only mode, failed items and retry
Aydym profile with Premium status and settings
Aydym "What's new" card introducing offline sharing

Current iOS app (Russian): play queue, offline sharing, downloads, profile and a what’s-new card.

My role

  • I write most of the iOS app: about 97% of the 830+ commits in the iOS repository.
  • I own features end to end, from design notes and architecture to App Store release and crash follow-up.
  • I port features from the Android app when they land there first, so both apps behave the same way.

Approach

  • SwiftUI with MVVM and a coordinator, split into Data, Domain and Presentation layers with Resolver for DI.
  • Realm for the offline library, Alamofire for the API, an AVFoundation-based player for audio and video with Picture in Picture.
  • App extensions for a home screen widget, Siri play-media intents and rich notifications, plus a CarPlay scene.
  • A release check script and a migration harness that run before every release.

Architecture

Surfaces
iPhone appCarPlay sceneWidgetSiri extensionNotification serviceLive Activity
Presentation
SwiftUI viewsViewModelsCoordinator
Domain
Player controllerDownload serviceSiri intentsAnalytics service
Data
RepositoriesAlamofire APISTOMP chatRealmMedia cache
Packages
OfflineTransferKitSwiftAudioHLS downloads
One app target plus three extensions share the same Domain and Data layers.

Result

  • Version 2.7.11 is live on the App Store.
  • 1,100+ automated tests guard downloads, CarPlay, migrations and session handling.
  • The crash types that reached users in 2.7.8–2.7.10 are now blocked by the release check before submission.

Stack

SwiftSwiftUIUIKitCombineasync/awaitAVFoundationRealmAlamofireCarPlayWidgetKitSiriKitActivityKitNetwork.frameworkFirebase CrashlyticsSwift TestingCocoaPodsSPM

Want the short version?

Everything on one or two pages, with contacts.