Me tryig to impliment Implement-wait for mobile app

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
it is not giving me any syntax error but its not working.
Thread.sleep(10000); its working fine
but i want to inplement inplicit wait instead of sleep.

Implicit Wait make script very slow as it applies to every element of code, It is advisable to use explicit waits which are very optimal like

import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.By;

By email = By.id(“com.sika:id/etSignInEmail”);
WebDriverWait wait = new WebDriverWait(driver,300);
wait.until(ExpectedConditions.visibilityOfElementLocated(email));

i have to implement this for mobile app, so webdriver will work in it???

Yes it will work … Mostly selenium API are supported in native app context including Wait API’s