So one thing I'm doing now that I like is to create a simple class called "AllPages" that contains all of my application's page objects. So in your example it would be something like...
public class AllPages {
public HomePagePO homePage = new HomePagePO();
public SignInPO signInPage = new SignInPO();
}
Then, I have a base test case class that includes this AllPages class something like this...
public class BaseTestClass {
protected AllPages pages = new AllPages();
}
So your test suite looks like this...
public class SignInTestSuite extends BaseTestClass {
@Test
public void ValidateSignInByEmail() throws InterruptedException{
pages.homePage.clickSignIn();
pages.signInPage.setUser(“whatever@gmail.com”);
}
}
What I like about this is that you don't have to include or instantiate any pages in your test case suite classes and I get an auto-complete popup with page choices in my IDE by just typing 'pages.' each time when writing a test case. I left out a lot of other details, like I have other lower level classes that contain the appium driver and other variables, so I don't need to pass that thing around everywhere, but this can get you started. Good luck!