Trainers,

Pokemon GO is now being updated to version 0.93.4, which finally fixes the time zone bug present in 0.93.3. The new release also comes with a metric ton of code changes, however, the majority of those are reverts of what was done in 0.93.3’s code branch. We’ll talk about code branches more on the end of the article.

Time Zone bug fixed

The 0.93.3 APK broke time display and rendering on the majority of devices, with Pokemon GO displaying time in UTC, instead of your local time zone. Luckily, this was now addressed and the game properly renders time. We strongly encourage that you ping your local community to update, as this also influences the time on your EX Raid pass – there could be trainers missing out tomorrow’s EX raid due to this bug!

Code changes

0.93.3 had 65745 modified (added / deleted / changed) lines of code, which entailed the following:

  • Code refactoring and optimization
  • GO+ changes
  • Map rendering changes
  • Changes to underlying libraries (QR code and SQL tools)
  • Client side Pokemon spawn and despawn pooling

In 0.93.4, a fair chunk of libraries changes were reverted and there are 59000 line changes, with only 600-ish intra-line changes. Why were these library changes reverted? We’re not sure yet, they could have been too risky to revert with this fix, or maybe they could have been the culprit for the time zone issue – unlikely though.

All in all, 0.93.4 shares far more with 0.91.x family of APKs than with 0.93.x:

  • 0.93.4 vs 0.91.2 diff:  ~17000 LoC changes
  • 0.93.4 vs 0.93.3 diff:  ~59000 LoC changes

Asset changes

No significant asset changes detected.

Discussion about code branches

As we already mentioned, this update seems like a series of reverts for the 0.93.x code branch. However, that may not be necessarily correct, as we know that Niantic is hoping between various code branches for their APK releases:

  • release branch – the one we see most often, contains only verified and well tested changes, at the moment of this post it is mostly 0.91.x code
  • future release branch – the one we see from time to time, usually accompanied by a lot of changes to the infrastructure and a huge number of bugs. Currently, it seems that 0.93.x branch is the future release branch and we expect to see a “revert of revert” soon
  • develop branch – branch that contains features in active development. We observed the Quest leak in 0.91.1 and their removal in 0.91.2, not because the feature is not coming, but because Niantic switched the branch they use for APK deployments. We also know that beta testers use a version of this branch
  • feature branches – branches that serve as a staging area to develop a particular feature

The following image illustrates the common branching strategy used by almost every software development company: