you mention XUI2D but it's mainly aimed for gaming, the regular XUI is what you need for regular apps or non XUI2D games.
XUI kinda works away the differences between platforms so that you don't need all the conditional code as it was years ago.
Once you get the hang of it and have it all sorted the next project is just a copy of this project folder and erase or modify the parts that will be different.
(my apps has returning functions like createMenu, createGame, createInGameMenu, createScoring, createLeaderboard etc so the structure is the same but the code is different)
Depending on the game and differences going from Android to IOS app is a matter of an hour or less to a few hours if you didn't use XUI from the start.
It might be harder for regular apps tho as the differences are bigger UI component wise or some 'components' are not existing on the other platform.