# Beta test the new version of our iOS app

**URL:** <https://forum.choiceofgames.com/t/beta-test-the-new-version-of-our-ios-app/173518>\
**Category:** Beta Testing\
**Created:** [September 22, 2025, 5:01pm UTC](https://forum.choiceofgames.com/t/beta-test-the-new-version-of-our-ios-app/173518 "2025-09-22T17:01:46Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![dfabulich](https://sea3.discourse-cdn.com/choiceofgames/user_avatar/forum.choiceofgames.com/dfabulich/32/198373_2.png) [@dfabulich](https://forum.choiceofgames.com/u/dfabulich)\
**Post date:** [September 22, 2025, 5:01pm UTC](https://forum.choiceofgames.com/t/beta-test-the-new-version-of-our-ios-app/173518/1 "2025-09-22T17:01:46Z")

</div>

Our iOS apps were originally implemented in [Objective-C](https://en.wikipedia.org/wiki/Objective-C), but for a few years now, Apple has recommended writing all apps in their newest programming language, [Swift](https://www.swift.org/). I’m working on a ground-up rewrite of our apps in Swift.

To try it out, use these links:

> **[Join the Choice of Games beta](https://testflight.apple.com/join/MfrKS2g9)**
>
> Available on iOS

> **[Join the Hosted Games beta](https://testflight.apple.com/join/m2fRVmhJ)**
>
> Available on iOS

> **[Join the Heart's Choice beta](https://testflight.apple.com/join/SfyzeUza)**
>
> Available on iOS

# Expect to reinstall the app quite a bit

You’ll likely need to uninstall and reinstall the app from time to time.

# What’s new:

- CoG 5.2.1 (64), HC 4.2.1 (58), HG 3.2.1 (83)

- CoG 5.2.1 (63), HC 4.2.1 (57), HG 3.2.1 (82)

> **Older releases**
>
> - CoG 5.1.0 (1), HC 4.1.0 (1), HG 3.1.0 (1): You can now choose a font on the Settings tab. Switch to Helvetica for crisp sans-serif text, or try the OpenDyslexic font, designed against some common symptoms of dyslexia.
> 
> - CoG 5.0.2 (1), HC 4.0.6 (1), HG 3.0.8 (1): We’ve improved our achievement support
> 
> - CoG 5.0.1 (2), HC 4.0.5 (2), HG 3.0.7 (2): New search options
> 
> - CoG 5.0.0 (17), HC 4.0.4 (2), HG 3.0.5 (2): Bug fixes.
> 
> - CoG 5.0.0 (14), HC 4.0.3 (1), HG 3.0.4 (1): Bug fixes.
> 
> - CoG 5.0.0 (13), HC 4.0.2 (3), HG 3.0.3 (2): Bug fixes.
> 
> - CoG 5.0.0 (12), HC 4.0.2 (2), HG 3.0.2 (2): Bug fixes.
> 
> - CoG 5.0.0 (9), HC 4.0.1 (1), HG 3.0.0 (9): Bug fixes.
> 
> - CoG 5.0.0 (8), HC 4.0.0 (2), HG 3.0.0 (8): Bug fixes.
> 
> - HC 4.0.0 (1): Initial release of Heart’s Choice omnibus.
> 
> - CoG 5.0.0 (7), HG 3.0.0 (5): Bug fixes.
> 
> - CoG 5.0.0 (6), HG 3.0.0 (4): Bug fixes.
> 
> - CoG 5.0.0 (5), HG 3.0.0 (3): Bug fixes.
> 
> - CoG 5.0.0 (4), HG 3.0.0 (2)

# There are a lot of modes to test

I’m pretty sure the app kinda sorta works on iPhones and iPads, but there are a lot of different _ways_ to use an iOS app:

- **Different operating system versions:** As of Sep 2025, this omnibus beta supports iOS 17, 18, and 26. (Users on iOS 16 and lower can continue to use the older version of the omnibus.)
- **Offline:** Test the app in airplane mode. (Once you’ve downloaded a game, you should be able to play it offline.)
- **Dark Mode:** Test the app in dark mode / light mode. Note that you can choose a color scheme on the Settings page; the app initially prefers to match you phone’s settings, but if you choose a color scheme in Settings, that setting will stick, even if you change your phone’s settings. (There’s no way to switch back to automatic mode, except to reinstall the app.)
- **iPad:** iPad is quite different from iPhone, especially when you hold your iPad in landscape mode, with the stats screen appearing on the side, updated live. In iPadOS 26, you can resize app windows to any size you want, and they should all work.

## Accessibility modes

- **Screen Reader:** On iOS, this is called VoiceOver. [How to Navigate your iPhone or iPad with VoiceOver | Apple Support](https://www.youtube.com/watch?v=ROIe49kXOc8)
- **Voice Control:** [How to use Voice Control on iPhone, iPad, and iPod touch | Apple Support](https://www.youtube.com/watch?v=eg22JaZWAgs&pp=ygURaW9zIHZvaWNlIGNvbnRyb2w%3D)
- **Font Size:** In your phone’s Accessibility settings, you can go to Display and Text Size → Larger Text to increase the font size _very_ large. It won’t necessarily look great, but it should be legible; everything should work.
- **Reduced Motion:** This will disable animations, including the page curl animation in the game
- **Controller:** TODO You can plug a controller into your phone and play that way. (Doesn’t work yet as of Sep 22 2025.)

# How the app works

I wrote these bullets to give you an idea for how you might think about testing the app, poking around in all the hidden-away corners that might not be obvious when you first open the app.

> **How the app works**
>
> ## Store Tab
> 
> The Store tab is the first tab you see as you launch the app. It has four or five sections:
> 
> - Recommended games (unlabeled): Top 5 games sorted by Bestselling (see below)
> - If you’ve never played a game yet, we show a list of genres
> - Otherwise, if you have played a game, we show a “Similar to [Last Played Game]” section, and remove the big list of genres
> - Bestselling
> - New Releases
> - Top Rated
> 
> Bestselling, New Releases, and Top Rated have “View All” links that take you to the Search tab.
> 
> ### How Bestselling sort works (Store Tab + Search Tab)
> 
> When sorting by bestselling, if there are any games/DLCs currently on sale (or temporarily free), we sort those to the top of the list. (Except, if you’ve already purchased the products that are currently discounted, we don’t sort those to the top.)
> 
> (Putting games on discount is not possible to test on TestFlight / Google Play Internal Testing.)
> 
> ## Search Tab
> 
> - Search box: You can type stuff in it to search for games.
> - Genre tags: Select any number of genres. There are a few “special” genres:
> - Free: Applies only to games that are “free to win,” meaning that you don’t have to pay anything to enjoy the entire game. Those games show a full-screen interstitial ad when you start them.
> - Favorites
> - Purchased
> - Downloaded
> 
> - Sort order: Select a sort order (and click the arrow to reverse that sort order).
> - Detail/Grid Switcher: Tap the round button on the right edge to switch between “grid view” and “detail view.” In Grid view, you see a compact grid of cover art images + titles. In detail view, we also show author, 80-character description, ratings, and price. (It’s particularly odd to search by price/ratings when that data isn’t visible in the search results.)
> 
> ## My Library Tab
> 
> Includes three sections:
> 
> - Last Played
> - Favorites
> - Purchased
> - Downloaded
> 
> If you’re logged into Apple Game Center or Google Play Games, there will be an “Achievements” button that shows your “meta achievements.” See “Achievements” below for more details
> 
> ## Settings Tab
> 
> Here you can sign in/out. When signed in, you can click a link to delete your user profile (but it’s just a link that takes you to our web site).
> 
> There are other settings here, too:
> 
> - Push notifications (see below)
> - Use Game Center / Google Play Games
> - Font selector: Serif, sans-serif, or [OpenDyslexic](https://opendyslexic.org/)
> - Font size
> - Background color
> - Animate between pages (i.e. curl animation)
> - Enable touch slide controls
> - Offline: There’s a button here to download all games
> 
> ### Troubleshooting
> 
> In the Settings section, there’s a “Troubleshooting” section.
> 
> - Purchases: What you’ve bought and where (Google Play vs. web)
> - Receipts: If you’re signed in to [choiceofgames.com](http://choiceofgames.com), we automatically transfer your App Store / Google Play Store receipts to the web, so you’ll have the product both on your phone and the web (so you can restore your purchases on another OS).
> - Downloaded games: See the last updated date, refresh the download (and see any errors from the refresh)
> - Game state: See all of the saved game files and (gulp) delete them
> - Achievements: Apple Game Center / Google Play Games meta-achievements vs. “event log” tracking number of choices made, game completion dates, and in-game achievements (“state achievements”)
> - Updates: When you launch the app, we query for the latest games, ratings, and prices automatically, and, if you’re signed in to [choiceofgames.com](http://choiceofgames.com), we post your receipts. The “Updates” section shows the “last updated” dates for those, including any errors.
> 
> ## Game Details
> 
> - Free games: To play a Free game, you’ll have to watch a full-screen advertisement first.
> - Cover art: Tap on a game and you’ll navigate to the Game Details screen. You can tap on the cover art to see the full-size cover art.
> - Full description: Initially, we show the 155-character description, and the word “Loading…” but then we show the first paragraph of the full description, with a “Read more…” button.
> - Game series: For games that are part of a series, we show the episode number, and link to the series on the Search tab.
> - Authors: Each author is separately clickable, taking you to the Search Tab. (Some games include “additional content.” Those authors are clickable, too.)
> - You can also click on the genre tags to find more games in that genre.
> - Restart: Initially, the option to restart is hidden. Once you play a game and make at least one choice, you can return to the Game Details screen and restart.
> - Delay Breaks: For Free games that include a delay break, you’re not allowed to restart until the delay break is finished. The restart button will appear, but it’ll just pop-up an alert if the timer’s not done yet.
> 
> - Restore purchases: You can login with a Choice of Games account to restore purchases. (We also refresh your purchase history with Apple when you click “Restore purchases.”) We display an alert message if you restore the game but thu current game is not yet purchased.
> - Credits: There’s a link to read credits here, too.
> 
> # Inside the game
> 
> - Stats Screen
> - Layout
> - On small screens (phones), you’ll start on the “main” screen with a “Show Stats” button in the toolbar.
> - On larger screens (iPad) in portrait, when you tap the “Show Stats” button, the stats will appear in a popover.
> - On larger screens (iPad) in landscape, the stats appear automatically on the right-hand side of the main screen; they’ll automatically update as you change stuff in the main game. You can tap the “sidebar” icon in the upper right to hide the Stats screen sidebar.
> 
> - Restoring a checkpoint from the Stats screen: When you restore a checkpoint on the Stats screen, it will affect the main game screen.
> - \*finish on the Stats screen: When you reach a \*finish command on the Stats screen, it will close the Stats screen. On phones, you’ll navigate back to the main screen; on iPad, the stats screen will close/hide.
> - Some games modify stats on the stats screen, e.g. for settings (Storyteller mode) or for cheats. Those changes only kick in when you tap "Next back in the main game.
> 
> - Achievements
> - Layout
> - On phones, when you tap “Show Stats,” if the current game includes achievements, you can tap “Achievements” to see the list of achievements you have/haven’t achieved.
> - On portrait iPad, there’s an Achievements button on the main game screen.
> - On landscape iPad, tap the “…” button to reveal the Achievements menu.
> 
> - Restarting the game does not undo achievements. (Reinstalling the app does undo achievements.)
> 
> - You’ll see a banner ad if you haven’t purchased the game.
> - For Free games, you’ll eventually hit a delay timer.
> - During the timer, you won’t be allowed to restart the game.
> - If you’re signed up for push notifications (see below), the timer will send you a push notification when it’s finished.
> - At the end of the timer, you’ll have to watch a full-screen advertisement to continue.
> 
> - At the end of the game, you’ll have some special menu options.
> - Review this game: If you rate a game 9 or 10, we’ll prompt you to review the app on the app store.
> - Share with friends: We’ll pop up a little sharing sheet, inviting you to send the link to someone via one of the apps you have installed.
> - Subscribe: We’ll prompt you to send an email to [subscribe@choiceofgames.com](mailto:subscribe@choiceofgames.com), which will sign you up for our mailing list. (This even works offline; the email will eventually get sent when you get back online.)
> 
> # Achievements
> 
> Apple Game Center / Google Play Games can support achievements, but they assume that your app is itself one “game,” not a collection of games. As documented in [Achievements in ChoiceScript](https://www.choiceofgames.com/make-your-own-games/achievements-in-choicescript/), Apple puts a limit of 100 achievements per game, and up to 1,000 points of achievements; Google has similar limits.
> 
> The CoG and HG omnibus apps each have hundreds of games, and each of those can have up to 100 achievements. CoG and HG would each have over 5,000 achievements, and even HC would have over 500 achievements, well over Apple’s limit.
> 
> So, instead, we’ve created a list of “meta achievements” that apply across multiple games. These achievements ask questions like,
> 
> - How many games have you finished? (In which genres?)
> - In the last X days (1 day? 7 days?)
> - Lifetime?
> 
> - How many times have you replayed the same game (all the way through to the end)?
> - How many games have you “tried” (i.e. made at least one choice)?
> - In the last day?
> - Lifetime?
> 
> - How many choices have you ever made?
> - How many days in a row have you made at least one choice? In other words, how long is your daily “streak”?
> - How many in-game achievements have you unlocked?
> - How many 100-point achievements?
> 
> - In how many games have you unlocked all of its achievements?
> 
> We went to some effort to ensure that you can unlock all of these “meta achievements” without paying us any money. For example, we ask that you finish only three fantasy games to unlock the “Fantasy Hero” achievement, even though we have way more fantasy games than that, but we only have so many _free_ fantasy games.
> 
> # Backing up game progress and achievements in Game Center / Google Play Games
> 
> Apple and Google strongly recommend automatically backing up game progress to Game Center / Google Play Games, and that’s what we do.
> 
> I think some users may find it a bit surprising to find that if you reinstall the app from scratch, all of your game progress remains. If you play up to Chapter 4 of a game, reinstall, and resume playing the game, you’ll resume the game in Chapter 4, right where you left off.
> 
> I think this is a good thing, but you can always use the “Restart” button to restart a game. If you truly want to reset all game progress (including in-game achievements), you’ll have to do that in the Settings → Troubleshooting → Game State menu. Hopefully, that will be a very rare occurrence!
> 
> There is a tricky issue that happens if you make some choices on a device X while you’re offline, and make other choices on another device Y that’s online. When device X comes back online, this will be treated as a “conflict” between versions; our app is configured to prefer the most recently modified version. But this means you will “lose” progress on the oldest save.
> 
> You can disable Game Center / Google Play Games to ensure that we never have save conflicts.
> 
> # Push notifications
> 
> To send push notifications, we have to prompt the user. But, if we prompt the user and they say no, we’re not allowed to prompt the user again in-app, even if they tap a “please notify me” button. So, we have to be very careful about how/when we prompt for notifications.
> 
> We have a red notification reminder banner that appears at the top of the Store, Search, and My Library tabs, but we don’t show it when you first launch the app. We only show the red banner once you’ve started playing one of our games (i.e. when “Last Played” is not empty) and only when you’re not signed up for push notifications.
> 
> You can trigger the notification prompt by tapping on the banner or on the “Notify me” switch on the Settings tab. But, if you decline the prompt, we can’t prompt you again until you reinstall the app.
> 
> If you decline the prompt, and you tap the notification banner or the “Notify me” switch again, we’ll prompt you to send you to the Settings app, where you can tap on a switch to enable notifications.
> 
> ## Test notifications with a Free game’s delay breaks
> 
> Search for the Free genre and you’ll turn up some games that are free to win. All of them include delay break, where you have to wait a few seconds/minutes to continue. If you’re signed up for push notifications, you’ll receive a push notification when the timer runs down.
> 
> * * *

# Known bugs

## General

1. When you watch a full-screen advertisement, it messes up the status bar, showing the back button overlaid on top of the current time.
2. In certain free games, when you get to the ending, you should be able to pay $1 to skip the delay break and play again immediately. But when you try to pay to skip the break, instead of prompting you to pay, it fails with an error message.

## Visual glitches

1. On the game details screen, on iPhone, when holding the phone in landscape, the background is clipped off on the left/right edges (in the “safe area” where the notch/Dynamic Island sits).
2. In dark mode, when you first install the app, you’ll see a flash of a white background the first time you launch a game. (I think this can happen under other circumstances, too.)
3. Credits have a light background in dark mode.

## Accessibility

1. In Voice Control, in the game, when you Show Numbers or Show Names, it flags both the radio button _and_ the option text as options to select, which clutters the screen.

## Issues Resolved

> **Fixed**
>
> ## General
> 
> 1. “Restore Purchases” on Free games opens an ad
> 2. If you try to load the Credits page without playing the game once, it won’t load.
> 3. If you’re offline when you try to download and play a game for the first time, it will fail without showing an error message.
> 4. On iOS 26, if you’re on the My Library or Settings tab, and you tap the Search tab, it will take you to the Store tab. You then have to tap the Search tab _again_ to actually load the Search tab.
> 5. The full description on the game detail screen won’t load when you’re offline, even if you’ve already downloaded the game.
> 6. The old app used a fancy fuzzy search engine when you type stuff in the box. The current search is very strict, and has no way to sort by relevance.
> 
> ## Visual glitches
> 
> 1. On the Search tab, selecting a genre _should_ make all the other genres animate to squeeze in, but sometimes the animation doesn’t happen. (I’m not 100% sure what makes this happen/not happen.)
> 2. When scrolling the Store page sections, the scroll bar overlaps the bottom row of the grid; it looks kinda ugly.
> 3. On iPad, when you tap on a game, the game detail screen appears and then shifts up by a quarter inch as the tab bar at the top disappears.
> 4. On iPad, when you go to the Search tab and tap the grid/detail switcher, it’s stretched really wide across the screen, which doesn’t look good.
> 5. Rotating the screen to/from portrait/landscape inside a game can make the font look weirdly large/small. (I’m not 100% sure what makes this happen/not happen.)
> 6. On iPad, when scrolling the Bestelling, Top Rated, and Similars sections, the last section is much too wide.
> 7. On iPad, on the game details screen, the partially transparent grey background appears on top of the cover art, creating a visible crease in the art.
> 8. On iPad, when you tap on a game, the game detail screen appears and then shifts up by a quarter inch as the tab bar at the top disappears.
> 
> ### Dark Mode
> 
> 1. There are light borders around the advertisements.
> 2. There are light borders when holding the iPhone in landscape.
> 3. When rotating the iPad app from portrait to landscape and vice versa, you can see a flash of a light background.
> 4. When you tap “Sign in” on the Settings page, the login screen is always in light mode.
> 
> ### Accessibilty → Display & Text Size → Larger Font
> 
> 1. On the game detail screen, there’s a bunch of blank space after the author, then rating stars, then a bunch more blank space, and finally the Try Now / Purchase buttons.
> 2. At the largest font size, on the Store screen, the “g” in ratings can get clipped off.
> 3. The “View All” links on the Store screen should wrap to the next line, instead of crowding the header.
> 4. The “Order by” options on the Search screen should wrap to multiple lines, instead of getting crowded in.
> 
> ## Accessibility
> 
> 1. In VoiceOver, when you swipe right from the “Search” heading, we should navigate you to the “Search by genre” heading, but we just navigate to the first genre on the list. (There are a huge number of search genres. You can skip past them by using the rotor and navigating by headings, but that’s not very easy to discover unless we reveal some kind of heading before the options.)
> 2. In VoiceOver, the genre links on the Game Details page are treated as one big block; you can’t navigate to individual links.

## Features Coming Soon

1. Porting the updated app to Android. (It’s written in a way that it can automatically transpile to Android, but we’re focusing on iOS right now.)
2. Font selector, allowing you to pick between serif, sans-serif, and dyslexia friendly fonts
3. More control over which games you download and keep downloaded. The old iOS app would download games into a “cache” folder; iOS was allowed to delete any downloaded games there if you got low on disk space. Now, we download games into an “application support” folder, which never gets cleaned up. Maybe there would be a setting to allow iOS to autodelete some games but not others.
4. Controller support

---

_[View the full topic](https://forum.choiceofgames.com/t/beta-test-the-new-version-of-our-ios-app/173518)._
