I finished episode 7 of the Start Page 2.0 project. It was the start of wrapping things up. Instead of hard coding values like the API host and database connection info, these are now dynamic. The server pulls properties from the environment and falls back to a json config file. This approach is nice so when I develop something I am not pushing information that is specific to my set up into the repo. The environment configuration will come in handy once this is thrown into a docker image.
The next video will be combining both projects into one via a build script, then the final video will be putting it into a docker image and using it.
I'm hoping to have the series wrapped up by the end of May.
Code Along Blog
On Monday, dwayne and I got our view event page up and running and also fixed an authentication state issue.
This week I learned that the versionCode in Android has a max value! I wrote a blog post about how to automate the versionCode a couple of years ago, but I hadn't condidered this. Luckily the approach I wrote about is still valid.
All of this came about as a result of my pushing to automate our release process. As of now, it's entirely manual. The developer needs to update the versionCode, build the apk, upload to Firebase, and fill out the release form. This can be done at any time during the development of a feature. Typically it's once it is done, but it could be before other developers have had a chance to review the code, it could also be after the code has been merged to the main branch and before the tester has had a chance to review it and approve it.
The process has worked so far, but it feels a little chaotic to me. I'm hoping to go the CD route by automating all of this. The idea I have is to generate and release a "test" APK for each PR. This "test" APK would use the build variant system so it can be installed as a separate app from the main app. This "test" APK would automatically be uploaded to Firebase with our commit notes and sent to the testers. Once they approve, then the developer would merge their PR. Once it's been merged, another build process would be kicked off which would generate the actual release APK and upload that to Firebase as well. In my mind, I think this approach would work great. However, I haven't actually implemented it and I don't know if the others on the team would be on board with this.