Skip to main content
Media & Entertainment

CREX: Building the Fixtures Module for a 100M-Download Cricket App

Fixtures module · ShippedCREX
100M+ downloadsApp our Fixtures module ships in

We built the Fixtures module inside CREX, the cricket app by Parthtech Developers LLP. Our scope was that one module on Android and iOS, not the wider app, and everything below is limited to it.

The Challenge

Cricket has the messiest calendar in sport, and a fixtures screen is where that mess becomes the user's problem. Several series run at once. A Test match occupies five days while a T20 is over in three hours. Men's and women's international cricket overlaps with franchise leagues on other continents. A fan opening the app wants two answers immediately: what is on today, and when does my team play next. Neither question has a tidy answer in the underlying data.

Time zones make it worse. A match "on Tuesday" is on Tuesday somewhere. An IPL fixture starting at 19:30 IST has already rolled past midnight for a viewer in Sydney, and a Caribbean start time lands on the previous evening in London. Group fixtures by the server's day and a meaningful share of the audience sees matches filed under the wrong date. Group them by the device's day and the grouping has to be recomputed, correctly, for every user.

The surface is also unforgiving. Fixtures sits inside an app with tens of millions of installs, much of that on low-end Android hardware and intermittent mobile data, and it renders in English, Hindi, and Bengali. Whatever we shipped had to be fast on a cheap phone, correct across time zones, and translatable without the date logic quietly assuming an English-language Gregorian format.

Our Approach

We built the module natively on each platform, Kotlin on Android and Swift on iOS, because CREX's apps were already native. Introducing a cross-platform runtime to deliver one module would have added a framework and its startup cost to a binary that tens of millions of people already had installed, in exchange for convenience that only we would have felt. The module drops into the host app instead of asking the host app to accommodate it.

Both platforms consume one shared fixture contract over REST, so a schedule change lands identically on Android and iOS rather than being interpreted twice. A fixture carries its series, its format, its teams, and a single absolute start instant. Everything a user actually sees is derived from that instant on the device: the day a match belongs to is computed in the device's local timezone at render time, never stored as a server-side date. That one decision is what makes a late-night start appear under the correct heading in Sydney and in London without either client special-casing anything.

Browsing by day, by series, and by team are three presentations of the same fixture set rather than three separate screens with three separate queries. Format filters (International, T20, ODI, Test, League, Women's) are facets applied to that set, so a filter narrows the list a user is already looking at instead of navigating them somewhere new and losing their place. Following a team reuses the same machinery once more: a followed team is a filter that persists, which is what turns a global fixture list into a personal schedule without a bespoke endpoint behind it. The calendar view inverts the same data, mapping a chosen date back onto the matches it contains.

Because the app ships in English, Hindi, and Bengali, no date heading, format label, or team name is assembled by concatenating strings. Dates format through each platform's locale-aware formatter, so day names, ordering, and numerals follow the user's language rather than the developer's.

What We Built

  • A fixtures list grouped by day in the user's local timezone, so a match starting after midnight lands on the right date wherever it is read
  • The same fixture set browsable three ways: by day, by series, and by team, rather than three screens over three queries
  • Format facets across International, T20, ODI, Test, League, and Women's cricket, applied to one list instead of splitting it
  • Follow-your-team, which turns the global fixture list into a personal schedule
  • A calendar view: pick a date, get that day's matches
  • Shipped natively on both platforms, Kotlin on Android and Swift on iOS, integrated into CREX's existing apps

Where the App Is Today

CREX is built and operated by Parthtech Developers LLP. The app our module ships inside has:

  • 100,000,000+ Google Play downloads at a 4.6★ rating (as of July 2026)
  • 4.7★ from 105,586 App Store ratings (as of July 2026)
  • Fixtures listed as a headline feature in the app's own store description
  • A user base served in English, Hindi, and Bengali

Technologies Used

KotlinSwiftREST API

Frequently Asked Questions

No. We built the Fixtures module, in Kotlin on Android and Swift on iOS, inside apps that already existed. CREX is built and operated by Parthtech Developers LLP, and the app's download and rating figures belong to that product rather than to us.
It lists matches grouped by day in your own timezone, and lets you browse the same fixtures by series or by team. You can filter by format across International, T20, ODI, Test, League, and Women's cricket, follow your favourite teams to get a personal schedule, and open a calendar view to see what is on for any given date.
CREX's apps were already native. Adding a cross-platform runtime to deliver one module would have pushed a whole framework and its startup cost into a binary that tens of millions of people already had installed, and the only party feeling the benefit would have been us. Building natively meant the module fitted the host app, instead of the host app accommodating the module.
Every fixture carries one absolute start instant rather than a server-side date. The day a match belongs to is worked out on the device at render time, in the device's own timezone. That is why a match starting after midnight still files under the correct day whether it is read in London, Sydney, or Kolkata.
Yes, and it is a common way to work with us. Tell us which part of your app needs building or rebuilding, and you get a fixed-price proposal within 48 hours.

Want Similar Results?

Book a free 30-minute call. We'll explain exactly what we can achieve for your business.