July 2019 Conclusion

The push has been to get JWC truly ready for public release on all platforms. But there have been a few distracting surprises.

Once the Windows 10 version was able to handle the same remote storage services as the other versions, I realized I had not tested Gmail in some time: it failed in all versions. As Gmail itself has been evolving I assumed that was the explanation. The mailing software JWC uses had not been updated in quite some time so I began exploring alternatives and found two recently updated and available at much lower cost. However, after some days, it became apparent that my original working Gmail code had gotten inadvertently overwritten with previous non-working code. The actual fix for transmission was a single line! And, the “old” 3rd-party software finally got a brand-new update, ending misgivings over its age. It turned out, though, as you’ll see, the time spent investigating alternatives was not a complete waste.

I’ve begun to study the process of getting JwC published in the various App Stores. Interestingly Microsoft will do the final Apple and Android steps for me (the actual submissions to Apple and Google for approval), but only after I’ve done an extensive amount of preliminary work for each.

By contrast submitting to Microsoft’s App Store seemed deceptively simple. Simply use my Visual Studio to prepare an app installation bundle, use a Microsoft tool to verify it meets all their testable criteria, and submit. Microsoft then uses the same tool to prove what I’ve already said I’ve done, checks the visible content for anything that would violate their policies on acceptable content, and publishes the App if it passes both tests.

It turned out that Visual Studio is not quite up to the preparation task for a large app written with Xamarin.Forms. Here’s why: Preparing a usable app package can be done in two ways, using just the ordinary Visual Studio compiler or following that by running a “tool chain” to optimize the package. Only the second method is acceptable for App Store submission, although the first allows anyone to install the App independent of the App Store. Currently only the first method will prepare JwC to completion.

The “tool chain” comes in two flavors, 32-bit and 64-bit.  Although some Visual Studio code can use the 64-bit, Xamarin.Forms cannot. That has been reported to Microsoft, who has promised to investigate. When remedied I should be able to get JwC published.

However, I did find there was a way to get even the 32-bit chain to run its most vital tool (the Optimizing Compiler) in 64-bit. (That was required because the 32-bit compiler runs out of memory with an App the size of JwC.) Then another issue appears: The compiler rejects the 3rd-party mail software I described earlier as having a faulty operation (likely one I never use anyway). I’ve spent the better part of a week talking with the supplier and the issue remains unresolved. Apparently, to get JwC published I would have to switch to other software.

So, then, what about the alternative software I had already investigated? Both pass the compiler test! Good, but we’re not there yet. The final part of the “tool chain” is a binder operation which, in the 32-bit tool chain, runs only in 32-bits and quickly runs out of memory. Ughh!! Until Microsoft allows use of a 64-bit binder there can be no Store App submission. And, even then, it looks like I’ll first have to invest in one of those mail alternatives.

Therefore I’ve decided to put a downloadable package on this web site. It will include the usable package prepared by the first method, usage instructions, and a test “Congregation” to help learn JwC. Then I can turn my attention to getting JwC ready for submission to the Google and Apple App Stores.

OTHER MATTERS:

  1. Email settings have been altered to remove a means of specifying a download folder. Instead, each time JwC logs in to the account, it will check for a folder named the same way as already done for remote storage services: “JwContacts_xxx” where xxx is your congregation number. If the folder is missing it will be created.
  • Use of Gmail and Google Drive works fine in my development versions, but Google disallows their use in published versions until Google verifies App need and acceptability. Google needs to do that for each platform used and, as I found out, only after they are publicly available. Kind of a “chicken and egg” issue! So, until all JwC versions are publicly available and approved Gmail and Google Drive use by others is disabled.