All apps
SineKazan app icon

SineKazan

My first app: built around TV and movie discovery, with games, contests and twenty community platforms inside it.

  • iOS
  • Android
  • 2022
  • My own product
App Store · archived Google Play · archived

Screenshots

Click an image to enlarge it.

About the app

SineKazan was the first app I ever shipped to an app store, and looking back it was far too ambitious for a first app. Cinema sat at its centre: TV and movie discovery, what's in theatres, lists and a newsletter. But it didn't stop there.

Behind the discovery side ran a recommendation algorithm I wrote myself. It took what a user had watched, rated and added to their lists, and suggested shows, films and lists tailored to them. The most important thing I learned here was the cold start problem: what do you recommend to a new user you know nothing about? I built something that blended overall popularity with personalisation; the more a user interacted, the more personal the recommendations became.

On top of that came 28 games: purely-for-fun ones, prize games tied to shows and films, online and offline ones, and live trivia nights like Quiz Nights. Points won in games could be spent in the in-app virtual store. Making earning and spending pass through a single accounting flow, and keeping it closed to abuse, was one of the hardest problems I tackled at that age.

There were also talent contests — short film, song, cosplay, screenplay. Entrants' submissions were rated, commented on and liked by the community. Voting being open to manipulation was a practical problem here, not a theoretical one; when there's a prize on the line, people push at the system.

Alongside all of that were twenty separate community platforms: a TV and film review platform, an anonymous venting platform, an in-app social feed, a blog publishing platform, live streaming and a newsletter. In other words, dozens of independent subsystems inside a single app.

After a while I pulled the app from the stores. The reason wasn't technical: I was 18 and didn't have the knowledge or experience to run a community at that scale — moderation, prize distribution, user support, content review. This was where I first learned that writing the code and keeping a product alive are two different things; that's why I keep the scope much narrower in the apps I've built since.

Key features

  • Personal recommendation algorithm: a recommendation engine I wrote myself, driven by watch history, ratings and lists
  • TV and movie discovery: now in theatres, trending titles, categories by genre and editorial lists
  • 28 games: casual, prize-based, online, offline and Quiz Nights live trivia
  • Points economy: points won in games collected into a single accounting flow
  • Virtual store: accumulated points exchanged for in-app items
  • Talent contests: short film, song, cosplay and screenplay categories
  • Community voting: supporting entries with ratings, comments and likes
  • Twenty community platforms: reviews, anonymous posting, social feed, blog, live streaming and newsletter
  • TV and film quizzes: episode-by-episode quizzes that earn points
  • Premium membership and category-based store discounts
  • Edits and wallpapers: clips from shows and films, plus character content
  • In-app purchase infrastructure

Technologies used

96 technologies · 12 categories

Languages and Platform

  • Java (Android)
  • Swift (iOS)
  • iOS SDK
  • Android SDK
  • Native development on both platforms
  • Fully native approach

UI and Application Layer

  • UIKit / SwiftUI
  • XML Layout
  • Activity / Fragment lifecycle
  • UICollectionView / RecyclerView
  • Auto Layout / ConstraintLayout
  • Horizontally scrolling content rails
  • Tab-based navigation
  • Image caching

Backend and Data

  • Firebase Firestore
  • Firebase Authentication
  • Firebase Storage
  • Cloud Functions
  • Firestore security rules
  • NoSQL data modelling
  • Firestore transactions
  • Composite index design
  • Denormalization
  • Counter fields

Recommendations and Discovery

  • Content-based recommendation
  • User interaction profile
  • Genre and tag similarity
  • Popularity ranking
  • Cold start strategy
  • Personalised lists
  • Search and filtering
  • Film/TV metadata

Games and Points Economy

  • Online and offline game flows
  • Live trivia synchronisation
  • Server timestamps
  • Points ledger (single accounting flow)
  • Abuse controls
  • Virtual store and points exchange
  • Exactly-once prize distribution
  • Game state persistence

Community and Content

  • User content uploads
  • Content moderation
  • Comment and like system
  • Rating and vote-manipulation safeguards
  • Anonymous posting feed
  • Blog publishing
  • Social feed (follows / posts)
  • Group chats
  • Reporting and blocking

Media

  • AVFoundation (iOS)
  • Android media playback
  • Image and video uploads
  • PHPicker / media picker
  • Image compression
  • Thumbnail generation
  • Wallpaper and clip gallery

Networking and Data Transfer

  • URLSession (iOS)
  • HTTP client (Android)
  • JSON parsing
  • Retries and timeouts
  • Pagination
  • Image cache
  • Offline state handling

Security and Privacy

  • Keychain (iOS)
  • EncryptedSharedPreferences (Android)
  • HTTPS and ATS
  • Authentication token management
  • Server-side authorization checks
  • Permission purpose strings
  • Account deletion flow

Notifications and Accessibility

  • Firebase Cloud Messaging
  • APNs (iOS)
  • Android notification channels
  • Notification permissions
  • Dark mode support
  • Empty / loading / error states
  • Dynamic Type

Architecture and Patterns

  • MVC / MVVM
  • Repository layer
  • Asynchronous programming
  • State management
  • Modular feature architecture
  • Error handling and retries
  • Environment separation (dev / prod)

Tooling and Release Process

  • Xcode
  • Android Studio
  • CocoaPods
  • Gradle
  • Git
  • App Store Connect
  • Google Play Console
  • TestFlight
  • Play Console internal testing
  • Version and build numbering
  • App Privacy / Data Safety form
  • Open source libraries (GitHub)
Solo work

Idea, design, UI, code, store release and post-launch maintenance — I ran the entire process end to end on my own. No team, no agency, no outsourcing.

Development notes

  • Languages and approachThe iOS side was written in Swift and the Android side in Java. No cross-platform framework was used; both apps were built with their own platform's native tooling. I've been doing mobile development since 2020.
  • No AI assistanceEvery line of code was written by hand. This project was built before AI coding tools like Claude Code and Codex became widespread — nothing like that existed at the time.
  • DependenciesPlenty of open source GitHub libraries and CocoaPods packages were used. Dependency management ran through CocoaPods on iOS and Gradle on Android.
  • Scale and limitsA single app held twenty community platforms, 28 games and a points economy. My reason for pulling it from the stores wasn't technical: at 18, I didn't have the experience to run a community at that scale. This is the experience that taught me to narrow my scope.
  • Testing and debuggingTested on real devices, across different screen sizes and under poor network conditions. After launch I read the crash reports and shipped fixes release by release.
  • Release processI ran the review process for both stores myself: App Store Connect and Google Play Console setup, privacy declarations (App Privacy / Data Safety), release notes, store assets, and fixes based on rejection reasons.
  • Product ownershipIdea, design, development, backend, store release and post-launch maintenance — I ran the entire process on my own.

Let's talk about SineKazan

I'm happy to walk you through the technical details, the problems I ran into and how I solved them.