New Approach for wait till element will be display

What is the best approach for waiting till an element will be display?
Till now i have used the fluentwait coding (see below) however i just upgrade the java client library from 2.X to 3.1.0 & i wonder if there is a better handling for it.

public MobileElement fluentwait(IOSDriver driver, final By byType) {
Wait wait = new FluentWait(driver)
.withTimeout(45, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)

	MobileElement foo = (MobileElement) wait.until(new Function<IOSDriver, WebElement>() {
		public MobileElement apply(IOSDriver driver) {
			return (MobileElement) driver.findElement(byType);


	return foo;