Hi, I can tell you that this is exactly what I do and it works great for me.
I am a single automation developer and this is easier to manage your code on a single repository.
moreover, you have the ability to annotate each field with different platform’s annotations android, iOS, windows so, if you separate the repositories won’t be any use of this feature… it is there for you to use.
Personally, I automate android and iOS app, they should be the same so the test logic is the same as well, if you will maintain two different repos you just have a lot of duplicate code!!! because the logic is the same so, all your 100 test cases (for example) will be just the same on the other repository (just with different instance names…)
What I do: I hold page objects and use appium Widget class, each page object/ Widget class I create I make it abstract and in each class I create an inner class (you can separate it to external classes but it will make it harder to maintain) so, I use two inner class which extends the page object/widget I am currently working on.
regarding the test classes I use one class per test since it has the same test logic for both platform and I do not extend each test with a platform specific name.
what I do is that I created a method which inits all page objects using java reflection API and for each page object it return a page object instace of the current platform.
For example:
let’s say I have a page object class named LogIn
inside this class I have two inner classes, one name Android and the other IOS (names should be fixed across all project for java reflection to work).
if you you have a method let’s say enterPassword() which has different implementation for each platform you can just override this method with the desired platform and when a class of this platfom will be made during execution it will use the override method.
then, from test class I just call login.enterPassword() and for each platform the same test logic will be interfered differently.
it is a bit messy, please ask more question if you want, of course it has some cons as well but the majority are pros. you can send me private message or ask for examples.
would recommend to read appium java-client Widget class docs here: https://github.com/appium/java-client/blob/master/docs/Page-objects.md
see the example with abstract classes