Hello @TheRobRush,
thank you for pointing out the blog explaining the issue. But the problem @Guz_90 stated still holds. Following formula:
App.StartScreen = If(CountRows(MyCollection) >= 1; OneScreen; AnotherScreen)
does not work (shows error) since collections can not be referenced from StartScreen property.
Since we can no longer Navigate from App.OnStart, and we can not reference collections or variables from App.StartScreen we're left with no way to navigate upon app start based on a collection content. How do we solve this?
I also tried to put following logic into OnVisible on the start screen:
App.OnStart = Set(IsFirstStart; true);;
OneScreen.OnVisible = If(And(IsFirstStart; CountRows(MyCollection) >= 1; Navigate(AnotherScreen));; Set(IsFirstStart; false);;
// If unsetting the IsFirstStart variable doesn't happen after the Navigate call we can always unset it on the next screen
AnotherScreen.OnVisible = Set(IsFirstStart; false);;
But the app rejects to do that too, stating it would "always navigate from the screen", which is clearly not true and also if the screen is a splash screen it is intentional to always navigate away from it... The limitation here seems unnecessary and blocking an intentional functionality.
I do undestand the reasoning to do whatever it takes to show the first screen as soon as possible for UX reasons. But this could simply be a splash screen intednded to be navigated from. But how?
Thanks,
Jakub
PS: I got straight to this post searching for this very problem, so it feels correct to post the solution here.