Flutter
Easily the most streamlined solution. It worked great in combination with Android Studio and allowed us to make a sample project within mere minutes and get it running on both Android and iOS.
React Native
React was an interesting framework. It allowed us to make a proof of concept from a web browser interface. We could then test the app by scanning a QR code through an app on our phones.
Framework 7
Consists of seven Java frameworks slapped together into a big one. It's easy to get overwhelmed by options but at the same time it offers advanced users an edge during development.
Ionic
Mainly based on HTML, CSS, JavaScript and Angular. It requires Node.JS to be installed as well. Ionic uses an object called a "Webview" that basically renders a browser within an application.
Our app required two major features in order to work. Namely, live audio streaming from the phone and rebroadcasting audio over network via a server.
We were able to make two proof of concepts for this. The first proof of concept was the server. We made this server in plain Java. It was able to send mock data from the microphone and stream it over UDP to itself. Then, it would send this data over a web-socket to all listeners. This worked, however we were unable to get a clear sounding signal from the microphone.
The second proof of concept pushed byte data over UDP to the server. This also worked but we were again unable to make any sound we send over coherent. We're no audio experts and we found out a bit too late that there's a lot more work that goes into streaming audio. Especially when you're building everything yourself from the ground up.
The results of the audio streaming server and the client can be seen in the screenshot up top where the speaker is playing the raw byte data shown in the log.