Does Metro-style apps UI only support either Fullscreen or tile-based environment?
Is there any other window styles?
"Metro" or Windows Store applications support several orientations and layout states. Depending on the resolution of your device, Filled and Snapped may or may not be available (1366 x 768 or greater resolution is required).
Within an application you can also use flyouts (such as provided by the Callisto library for XAML applications and included 'natively' for JavaScript).
Tiles are not really an application 'style.' Every Windows Store application can have a tile on the Start Screen, and it's part of your application's manifest to determine the appearance (though the user has ultimate control over the size and whether he/she wants the tile on the Start Screen at all). Additionally, through the use of notifications you can reflect additional information via the tile, but again you can't rely on the tile actually being there even if your application is installed.
Related
I would like to build a helper app for gamers, and to build some extra functionality I would like to observe/time certain third party games behaviors, more specifically when the game actually launches the full screen process.
For example: my app is a system tray app, the game has a "launcher" app with lobby and menu screens. Once the game launches the extra process, usually OS X will switch resolutions (optionally) and my App would be notified somehow. Then I can start a timer. Once game match finishes, either the process is closed, or the game is not full screen anymore, my app gets a second notification and I can stop the timer.
Are there official Apple APIs that provide any way to observe/poll for the app going full screen and/or launch additional windows that I can reliably assume it's the actual game screen?
I doubt you're going to find a completely comprehensive solution. There are many ways for apps to achieve a full-screen experience and most don't provide a notification about that fact.
A full-screen app can modify the presentationOptions of NSApplication to hide the Dock and menu bar. Another app can use key-value observing to monitor its application object's currentSystemPresentationOptions property, which will reflect the current system status.
A full-screen app can capture the displays (although Apple discourages this technique). You can try to detect this by calling CGDisplayIsCaptured(), although it's been deprecated since 10.9 with no replacement. It may be possible that, if you register a callback with CGDisplayRegisterReconfigurationCallback(), you'll get called when something captures the display. However, capturing the display is sort of about preventing other processes from noticing such changes, so maybe not. In that case, you'd have to poll. You might also poll for the current display mode; changing the mode is the primary reason why a game would capture the display in the first place.
A full-screen game could also just create a borderless window the size of the screen and set its window level to be in front of the Dock and menu bar (and other apps' windows). There's not really a notification about this. You could detect it using the CGWindowList API, but you would have to poll. For example, you could call CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID) and iterate through the dictionaries looking for one the size of the screen and at a window level above kCGStatusWindowLevel.
(You might be able to use the Accessibility API to get a notification when the frontmost window changes, so you'd only have to poll when that happens.)
You cannot observe a notification if there is none. So firstly you need to know if the app you want to observe is actually sending a notification that is observable. You cannot 'hook' into other apps without their planned consent.
Do I have to support all these views in Windows 8 Apps? Or could I also develop applications only in Horizontal?
The same question I am having few days back, after some googling I found that
Windows 8 App Certification Section 3.6 http://msdn.microsoft.com/en-us/library/windows/apps/hh694083.aspx they mention that " Your app must support a snapped layout. In landscape orientation, your app’s functions must be fully accessible when the app’s display size is 1024 x 768. Your app must remain functional when the customer snaps and unsnaps the app "
So I think all this views are compulsory but you can do one thing like
use a simple splash screen as your snap view (same like the default Windows 8 Store app)
and for other views like Fill, Portrait and Landscape you'll define the liquid design layout.
so that you'll don't have to worry for all the views.
I know this might seem odd, but I am working on a windows Metro app which would be displayed on touch screen monitors in our local university.
Now I am using the simulator for debugging, but in the simulator you have to start "Touch Mode" to even use the touch interface.
So when using the touch monitors, do we have to specifically specify touch mode ? Or it will automatically integrate the touch functionality ?
Thank you.
Touch is a first class-citizen in Windows Store applications, so no special accommodations are needed. I would recommend you test on a touch device though before deploying, it's a different way of interacting, and even though the simulator does a decent job of handling the mechanics, it will "feel" different to a user - especially if you're leveraging pinch-zoom, swipe and other gestures.
On another note... is this app intended for a kiosk-type application? If so, keep in mind with Windows 8/RT, you won't be able to easily prevent the users from swiping to the charms, navigating to other programs, etc. You may want/need to take a look at Windows 8 Embedded depending on the specific deployment requirements.
Are we only going to be able to create full screen Metro-style applications?
Yes:
Metro style apps are full screen apps tailored to your users' needs, tailored to the device they run on, tailored for touch interaction, and tailored to the Windows user interface.
Otherwise, as John Gardner points out, your app would not be a Metro-style app: if it exists on the desktop, it is by definition a desktop app.
But that's kindof the point of Metro.
You don't always have fullscreen either, because depending on screen size, you can have 2 applications visible.
If you want to use the desktop, you fall back into the standard windows desktop and use standard desktop applicatoins.
Yes but you can re-size your app by using Snap Feature.
I don't know exactly what are your requirements but better look at this and this video
I want to create an Adobe AIR application that is L-shaped so that another application can fit in the open area of the screen. In other words, I would like an AIR app to surround another application on 2 sides (left and bottom). Is this possible? And if I do this, will the AIR app cover the other application with a transparency?
The empty space will allow another application to reside there without having a layer over it
To have a transparent background:
http://www.adobe.com/devnet/air/flex/quickstart/creating_transparent_window.html
Adapt you descriptor file, then make 2 canvas elements with a backgroundColor and backgroundAlpha (which form you L-shape).
If the Air App covers the other application with a transparent layer: try building the Air App first and then the application that has to reside "in" it.