Nice article! Having completed a similar exercise recently, I appreciate some of the pain points you mentioned.
One main challenge we had, possibly the largest. Multiple occurrences of a manual test which was used to test server and app in a single flow. The view of what was actually being tested was lost.
Our solution was to allocate 100 tests. Review the manual docs before an IDE was ever opened. Then rewrote them to focus on what we knew was being tested, instead of what the author thought was being tested.
Relating to Appium. The tool isn’t fit for purpose when compared to Espresso and XCUI. For anything native tools can’t do; review how important it is and test manually.
Source: ministry of testing