Demolish! Pairs 1.1 for Android

An update of this fun puzzle/arcade game is available for Android users.

Demolish! icon

Last week, Digital Gamecraft® released a game update, Demolish! Pairs 1.1 for Android, which refreshes the product to support the latest technology, including Android 12, and brings Demolish! Pairs 1.1 for Android current with Google Play requirements.

This update parallels the release (last November) of Demolish! Pairs 1.3 for iOS, which likewise did not add any new gameplay features and required no bug fixes, but makes sure the software supports all the latest mobile phones and tablets.

Development

As noted, there had been zero bug reports for the product (on either platform), but Google Play has been steadily advancing the SDK requirements for products in the app store, so this update was a proactive step to prevent the game from being dropped from the store.

Clearly, this update was not an exercise in direct ROI (return on investment), as the Android version has had, literally, ones of sales. 🙁 Instead, this was an exercise (in frustration) intended to keep our tools and skills up-to-date, despite never having had a client request Android work, for reasons that seem fairly obvious (i.e., nobody pays for Android software).

Because the product had not been updated since its release in September 2018, it had last been built entirely with Android Studio 3.1, and while we had been updating Android Studio quasi-regularly, we had not been making the associated script changes (unnecessary on any other platform) to keep all the tools in sync. This fact alone makes Android development the least appealing of any platform; it takes so much non-programming effort to maintain.

We upgraded to the (then) latest Android Studio which, to my chagrin, has been named, “Android Studio Arctic Fox | 2020.3.1 Patch 4” (because “Android Studio 4.3” was too cryptic and, you know, left out the confidence-building “2020” from a 2022 download 😉 ). Then the real fun commenced, because (of course) the Gradle version was out of date, not to mention the fact that there are two different Gradle versions, and various helpers offered to upgrade these once, and then again, and yet again, to newer versions each time. Of course (because it could never actually just work, you know, like Visual Studio or Xcode), this upgrade chain ended before actually getting the correct versions installed, though it did install three (or is it six?) separate obsolete versions of Gradle, thus leaving me with loads of (all) incorrect options and the necessity to spend a significant amount of time searching the web for a solution. This should not be necessary for development (hello, Gradle) nor using an OS (that’s you, Linux).

Ultimately, I did find the solution and get the Demolish! Pairs code to build correctly, and no actual code (i.e., Java) changes were necessary. However, I did choose to migrate (per recommendation) to AndroidX, for which the conversion tool was essentially flawless. I also am a strong advocate of strict code linting, so I made a few code changes due to new lint messages, although only one that could have made any difference in program operation (and only then if it ran on a theoretical Android device that reports neither ‘portrait’ nor ‘landscape’ orientation, which should not exist in reality).

I should note that, despite its absurd naming, Android Studio is fairly nice to use (once Gradle has been subdued). The static code analysis (i.e., linting) system for Android/Java projects is comprehensive, albeit often self-contradictory, but once one determines which items are pointless and disables them, it is useful. Also, Google provides excellent online documentation of its SDK, the way Microsoft did. On the negative side, I shutter to think how many millions (or billions) of dollars worth of development time are wasted on Gradle configuration, and I weep that some managers think code metrics are a good way to judge source code.

The final hurdle for me was at bundling time. Now, to submit a product, one must supply an App Bundle instead of a prebuilt APK, but that was not the problem. The problem was that to build a final App Bundle (or APK), one must provide the certificate and type in its password. In the intervening 3+ years, which notably included my world being turned upside-down, I had forgotten and misplaced this password. The certificate had been diligently preserved, but without a password it would be rendered useless. After hours of trying different methods to retrieve the password (all failing, as they should), I finally took the tried and true approach: count the asterisks and guess. It worked! 🙂

So… Act NOW and you can be the first person to buy Demolish! Pairs for Android in the current decade!

Also: second January release: check.