The reason for Riot->RiotX (aka Element) on Android was to both move to a modern Android UI idiom, move to Kotlin, and have a well defined storage interface and switch to Rx patterns, whereas the original app had been built somewhat organically. And yes, the maintainer had changed.
The reason for Element -> Element X is in order to share precisely the same Rust SDK between iOS and Android (and maybe other platforms in future), so all the heavylifting happens in one single audited codebase, rather than doubling up all the development between iOS and Android, doubling the bug count, etc. It’s also a good opportunity to simplify the data flows, which are surprisingly subtle and performant in a messaging app; I’m not sure how much Rx remains. In this instance, the maintaining team remained the same.
The reason for Element -> Element X is in order to share precisely the same Rust SDK between iOS and Android (and maybe other platforms in future), so all the heavylifting happens in one single audited codebase, rather than doubling up all the development between iOS and Android, doubling the bug count, etc. It’s also a good opportunity to simplify the data flows, which are surprisingly subtle and performant in a messaging app; I’m not sure how much Rx remains. In this instance, the maintaining team remained the same.