Developing Neates — Rebranding & TestFlight — Ep. 10

Developing Neates — Rebranding & TestFlight — Ep. 10

Taken names, first builds and the internal tests.

I think that the app is in a pretty good spot to distribute it to friends and family. But, unfortunately, while preparing for the beta test, I found out that an app named Geonotes already exists.

Enter Neates: a portmanteau between "near" and "notes".

🍎 Preparing for the iOS build

So far, Neates has been developed and tested through Expo's Expo GO client.

To distribute it to real devices, I needed to create an actual build. Fortunately, Expo offers a build command to do exactly that.

I especially like that the build happens on remote machines called "turtles" instead of your own. Additionally, developers can see the queue status of both iOS and Android turtles. Finally, we can download the resulting archive (the .ipa file).

Apps built with Expo continue to benefit from release channels. As long as the changes I make are purely in the domain of JavaScript code, I'll be able to deploy OTA updates without needing to deliver a new build to TestFlight.

🧠 Updating the backend infrastructure with the new name

Thanks to how I have structured the backend infrastructure, it was easy to convert all backend resources to the new name.

  • Hasura: since Hasura is deployed on Heroku, I could rename the Heroku project to receive an updated HTTPS endpoint to call. Both the database and the image running on the dynos remained unchanged, without any need to transfer data to a new backend. I just had to change the JWK secret to accept tokens signed by Firebase.
  • Firebase: unfortunately, users can't change the project id of a Firebase project. I had to create a new project, but other than that, thanks to the Firebase CLI and the CI workflow on GitHub, everything else was automatically transferred.
  • Expo: changing the app name and slug was sufficient to create a new project on Expo. A couple of updates to the environment file allowed me to connect seamlessly to the new resources.

🚧 Next steps

Releasing the v1.0.0 version of this app in private beta allows me to draw a line and focus on which tasks are needed to expand this beta to more people and, eventually, releasing to the store.

I'll make much better use of the kanban board I prepared at the start, and I'll start working on the feedback I receive.

🎙 How to follow the project

I'll be posting updates throughout the development process and learning new things regarding development, design, and marketing.

If you'd like to have even more real-time updates, you can