Best way to show first view dynamically when starting app

You can either use route resolve like @maksm suggested, or use stateChangeSuccess and check for localstorage flag like so:

$rootScope.$on('$stateChangeSuccess', (event, toState, toParams, fromState, fromParams) ->
  usedAppBefore = localStorageService.getObject('usedAppBefore')
  if (usedAppBefore isnt true)
    localStorageService.setObject('usedAppBefore', true)
    $state.go("App.Walkthrough")
)

In case of authentication something like that

$rootScope.$on('$stateChangeStart', (event, toState, toParams, fromState, fromParams) ->
    if !userService.isLoggedIn()
      event.preventDefault();
      $state.go("App.Tabs.Login", {}, {reload: true})
)