Previous Post

Pinball Map app v.5.2.0 is out!

Next Post
Pinball Map app v.5.2.0 is out!
DESCRIPTION

Hey patrons,

We've mentioned our progress a couple times here, but now we're happy to share that we released an app update. First one in over a year! 

This post will be more tech-oriented - beware! We mentioned this in our blog post about the update, but we started working on it in earnest in October and it went on so long because we kept adding more features. The more detailed explanation is that like many software products, we rely on some third-party components/libraries (like react-native-maps), and some of the bugs we wanted to resolve were actually issues with those libraries. And to resolve them we often had to 1) create issues identifying the problems, and 2) wait for the developers to fix them and/or find workarounds.

Some were not fixed - for example, on Android the react-native-maps component (a tool first created and open sourced by Airbnb) gets super laggy when using custom markers (the dots) when your mapview shows LOTS of them together. We tried many different methods of using custom markers (pngs, svgs, styled , etc.), but ultimately the solution was to just show the default google maps markers. It's not as "pretty" but it works better!

Another example is that "refreshing results when you move the map" was not very smooth on our app. Sometimes the map flickered back and forth while you're in the middle of moving it. And sometimes it got stuck in a flickering back and forth loop! This is an issue with react-native-maps, and has something to do with how the core google maps and apple maps components render state (they do some lame "centering" animation, basically, that screws with things!). The solution here was a combination of waiting for an issue to be fixed (it was fixed and then made available to us - as React Native Expo users - on July 1) and us revising how the "refresh" functionality works. The fix to the component was a "was the gesture made by a user?" flag - if yes, then render state! And our revision to the map design was to not automatically refresh results when the map is moved, but instead show a "Search this area" button. We were ok with this design decision given that some major companies do this (google maps and airbnb, for two) and because it made the map experience smoother.

Anyway, the journey of this update involved LOTS of examples like this. There were always multiple issues up in the air, and in the meantime we fiddled endlessly with the app design and other little things. Things finally settled down mid-June, then we just had to chill and wait for that component to be updated on July 1 :D

Because the app now looks different (it's more noticeable in "light" mode), we had to make more app store screenshots. Here's:

None of us are professional designers. But we do definitely care a lot about design, and we wanted to take this opportunity to modernize and clean it up. So we did a boatload of "looking at design trends." We found, among many things, that softer colors and subtle drop shadows are kinda popular right now. We also wanted to expand beyond the "red, blue, greys" color scheme. So we introduced some indigo and neutral shades (we found this tool to be our favorite for generating palettes. Note, if you open that link the default "Base Color" it shows is not the base color we started with).

The list of changes in this release can be found in the blog post linked above, so we won't repeat them here. Three users reported a bug related to resetting your password, and we just fixed it and so as we type this v5.2.1 is on its way (the Google Play Store approved it an hour ago, and it's still under review in the iOS App Store). The issue stemmed from our introduction of "deep links" (when someone shares a link to a map location, if you have the map installed then it will open it in the app). Deep linking is fudging complicated to implement (not only do Android and iOS have completely different protocols, but even iOS 12 and iOS 13 have different formats!) and when we first added this last Fall we said "given our webpage path structures and how we keep having issues implementing this correctly, let's just resort to adding deep links to "/*" aka the entire site, and if there is a website link that we don't have a sibling app page for, then we'll just default to showing the map on the app." This was a mistake, because one of the screens we don't have on the map is the "type in your new password" screen. So when people tried to reset to a new password, they got stuck in a loop. There were other issues, too (quite a few other website pages (like /admin) where we don't want to force people to use the app).

For your reference, here is how we fixed it for Android deep linking (note this huge json, which is what we were originally trying to avoid). And here is the fix for iOS. As you can see, in iOS you can "blacklist" paths (which is a more succinct approach) while with Android, you can only whitelist paths.

Anyway, phew! Again, thanks for your support! 

Pinball Map PATREON 0 favs
VIEWS1
FILES1 file
POSTEDJul 15, 2021
ARCHIVEDJul 15, 2021