02-11-2011 01:06 PM
Does anyone know what behaviour we'll see when running an app that only works in one orientation, e.g. landscape (as most of the initial apps probably do), when the tablet is rotated to the left or right?
Presumably the app is still allowed to be activated, and will run. Does it work "sideways" at that point? And what about (here's the real question) the top-swipe gesture? Will you be able to do it from the "top" of the application (which is now turned on its side) or will you do it from the current "top" of the tablet (which is one of the sides, as you've rotated the device)?
What about side-swiping to move between apps? If you're side-swiping in portrait mode with a bunch of apps that have properly rotated, and you come across one that knows only landscape mode, will you be able to keep side-swiping from the same side to move past it, even if you let it become active? If so, that implies that the "top-swipe" gesture for that app would actually now be done along one side of the app, yet it would presumably need to display its menu along the "long" edge since it still thinks it's in landscape mode. And in that case, wouldn't things get really confusing with mouse coordinates, especially if the app uses the SWIPE_START gesture instead of SWIPE_DOWN, which requires you to follow the mouse Y coordinate to do a proper menu?
My brain's going in circles on this one... it seems like there are serious downsides to either approach, and short of preventing you from activating an app that's in the wrong orientation, I can't think how it would work.
Solved! Go to Solution.
02-11-2011 01:18 PM
wow man you've gotten my head all twisty wobbly haha. i dont think we will know for sure until we get the devices / have a RIM developer confirm it for us. for now im going under the assumption it'll work the way i think it will. where the X and Y plane is still the same even if you turn the device as long as you have a lock down on the orientation in your XML file. so the stage is in the same X Y coordinates as it was before it was oriented. the only thing is will the SWIPE_START / SWIPE_DOWN events work the way they need to.
02-11-2011 02:09 PM
On the iPad, landscape only apps still run, and act as if the tablet is held in landscape mode (ie. doesn't care which way actually is up, it basically locks in an orientation and ignores the accelerometer). I would assume that the PB should act the same way.
02-11-2011 02:12 PM
I don't think that's a good assumption, since it ignores the bezel swipes which are an integral part of the PlayBook user experience.
On the iPad you just hit the home button to get away from the current app.
On the PB you use bezel swiping, and I'm trying to figure out which of the two obvious interpretations, or whether there's a non-obvious one, will be used when there's a conflict between where the app expects "up" to be, and where the PB knows it is. This is most obvious with the top-swipe, but it has to affect all four swipes together, as far as I can tell.
02-11-2011 02:46 PM
I see your point, and there's definitely pluses and minuses to doing it either way.
Personally, I'd prefer they use the iPad way I mentioned. The main reason is I believe a user expects the up direction to correspond to what's shown on the screen, and it will be confusing if up does not correspond to what's up on the screen. I know that it seems like a person should know which way the PB is pointing, but there are situations where the PB can detect rotation without user intentionally rotating (ex. lying in bed with device upside down or PB flat on desk).
02-11-2011 03:13 PM - edited 02-11-2011 03:15 PM
if ( [[UIDevice PlayBookDevice] currentAppSupportsRotation])
//current app doesn't support screen rotation
if ( [landscapeBottomBezel swipeUp])
That is how I think it should work, for optimal and consistent behavior system wide. I second that it should be handled the way iOS does.
02-11-2011 03:56 PM
It's unclear what you are suggesting with that pseudo-code.
Let's define the "true" bottom to be the one where the BlackBerry logo sits. That's the bottom in the regular landscape mode. "True" anything else corresponds to what it would be in that orientation.
"Current" bottom would be the same place for a landscape mode app, but it would the true left side if you rotated the device counter-clockwise (anti-clockwise for Brits) to one of the portrait modes.
So using those definitions, it sounds like you might be saying that if the device is in portrait mode (as in the previous sentence), and you do a true bottom swipe, it should minimize the app? That would still be a bottom swipe from the app's point of view, but a "current right" swipe from the tablet's point of view (from the right, that is, since we appear to name the swipes like we name winds, as in from the direction they're coming).
If that's what you mean, then the implication of that approach would be that if you have the device in portrait mode, have 3 apps open and the left-most is active, and the middle one is fixed in landscape mode but the other two are in portrait mode, then your first right-swipe would switch from app 1 to 2, and then the next right-swipe would actually minimize the 2nd app since it's not in portrait mode...
02-11-2011 05:11 PM
02-11-2011 05:46 PM
I have to say it appears you're not thinking the whole thing through then. If with this landscape-only app, and the device in the portrait orientation, it ignores the bottom swipes, then how is the user going to minimize the app?
And if you say they'll use the landscape bottom swipe since that's the way the app itself is turned, then how would they swipe to the next or previous app?
If you say they'll use the app-relative side swipes, then I say that's crazy talk. :-) You'd go nuts trying to swipe left or swipe right between a bunch of apps if even a single one of them was landscape-only.
Not that I have a solution... that's why I'm asking.
02-11-2011 06:39 PM
Okay, here's one thing that seems clear to me.
When you're side-swiping between apps, as you move to each app it doesn't go quite full-screen right away. There's a delay of 1-2s before it does, and if you continue side-swiping during that time, it just moves on to the next app in sequence.
I think that even if you side-swipe your way while in, say, portrait mode, and you get to an app that's stuck in landscape mode, then as long as you don't let it go full-screen you should be able to continue swiping using the same bezel as before... right?
But maybe if you let the landscape-only app go fullscreen, then in effect you've just disabled rotation as long as that app is active. The bezel you just used to side-swipe your way to the app suddenly becomes either it's top or bottom bezel, as appropriate.
Now if you start side-swiping from the landscape-mode app to other apps, then even if you're still holding the darn tablet in portrait mode (and swiping from what in reality is "up" or "down", maybe with your head turned on its side to make things even stranger), it will not reorient itself until and unless you "settle" on a portrait-mode app long enough to let it maximize.
It all seems a bit odd to me, but I guess this may be something that will feel a lot more sensible when I'm holding an actual physical tablet.