I have using a plugin to show an UIImagepickercontroller as a subview in my iphone/ipod app. In iPad i get an error that says i should use a popover instead. I'm using my own custom plugin in unity.
The popover works...but the size is too small, i would like to have a consistant experience and show the picker at full screen in the iphone as well.
It's possible to show the UIImagepicker at full screen in the iPad ?, or at least to force a bigger size for the popover ?.
I don't think it is, and if you manage to hack it, I don't think it increases your chances of getting app store approval.
You can build your own custom interface to access photos. Have a look at ALAssetsLibrary.
Related
My app is available for both iPhone and iPad. But in LaunchScreen storyBoard I'm able to enter only one picture(for example for iPhone), this picture looks ridiculous on iPad.
But we also can't create custom class for this screen to display different pictures for different devices, how is it possible to show 2 different pictures in LaunchingScreen in one app for both iPhone and iPad?
Start by adding an image set. Then use this image set from you storyboard.
I think your answer is in iOS Human Interface Guidelines take
different size of images in image assets.
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html
I am building an app mainly for tablet or iPad, but I just noticed that the design is meant to only for landscape view. I tried the portrait and it doesn't look good. Though before I keep programming the app I want to know how I can handle this, or prevent the user to see the app in portrait.
I checked and I know that for android I can use something like this:
android:screenOrientation="sensorLandscape"
but what about iPad?
I would like to have something more "universal" if I can say
I am using HTML5, JQuery and to handle the swipes I am using Hammerjs nothing else, I didn't use any mobile framework, cause it's more of a carousel with some text and images.
on iOS it's a simple configuration in the Xcode App Target, where you just allow Landscape Left and Landscape Right.
if you are using UIKit for building the app, you can configure it for every instance of UIViewController
UPDATE: (Solution for HTML)
combine the css rule "transform: rotate(90deg)" with css media queries on device orientation, but it will be tricky to get everthing to run properly....
I was going through iOS Human Interface Guidelines.
It was mentioned as
Display a launch image that closely resembles the first screen of the application. This practice decrease the perceived launch time of your application.
Avoid displaying an About Window or a splash screen. In general, try to avoid providing any type of startup experience that prevents people from using your application immediately.
What is the difference between a launch image and a splash screen?
Launch image is the image that appears when you launch your app, the images you put in the xcode (iphone, iphone retina, ipad landscape, ipad landscape retina, ipad portrait and ipad portrait retina)
Apple recomends using a screenshot of your app main window, so it appears that your app launch faster (I use a screenshot without buttons)
Splass screen is, for example, the screens the games use, where you can see the company logo and some other info, some of them even use 2 or 3 splass screens. You have to include them programmatically
Wow, old question with no accepted or highly-upvoted answer, bubbling to the front page thanks to an edit. Guess I may as well try my hand at clearing things up?
Launch Image (or Launch Screen)
This is displayed by the OS itself, and appears only while the OS is loading your app (that is, before your process is running and any of your own code gets a chance to execute.
Because your app has no running code to handle display of the launch image, the way you provide one is part of your Xcode project's build-time configuration: Either you provide a LaunchScreen.storyboard, or a set of static launch images — one for each device screen size you support.
Apple's Human Interface Guidelines recommend that your launch image be a rough facsimile of the initial UI of your app. There are a couple of reasons for that:
The launch screen is displayed only briefly before your app takes over and can display its own UI, so having the launch image look like the actual UI makes the user feel more like they're jumping right into your app instead of having to wait for something else.
The launch screen is displayed only briefly, so if you display something that doesn't look like your initial UI, the user may see it flash and go away before they can get a decent look at it.
(Because your launch screen should look like actual UI, and because there are many screen sizes to support, the storyboard approach is preferred — you can use Auto Layout to ensure that your fake UI adapts to different screen sizes just like your real UI would. Xcode then generates the necessary images at build time.)
Splash Screen or About Window
This is what you see in many apps that don't follow Apple's guidance, and it comes in two forms (used separately or together):
Using the Launch Screen system to display content that doesn't look like the app's initial UI — instead, for example, it might be a logo or some other branding element, or might include static text like copyright notices, credits, or version information.
After the app has launched (and thus has control of the screen to display whatever it wants), continuing to display logos or branding or other passive content instead of a usable UI.
The second case is recommended against, but sometimes unavoidable — game engines, in particular, tend to take awhile to start up, so it might be okay to have a "loading" screen. (If so, your launch image should look like your loading screen, so that the user doesn't feel like they're separately waiting for your app to launch and then load.)
The worst offenders are apps that don't really have any extra "loading" work to do, but use a splash screen as their launch image, and then programmatically continue to display that image for an arbitrary amount of time so that the user gets more chance to see it. (And has to wait for it to get out of the way, or manually dismiss it, before actually using the app.)
Launch Image is displayed when the app loads.
Splash screen means, that you display a view with about information as your startscreen. Your User should use your app immediately.
The launch image is designed to make the perceived launch time of you app feel faster by showing something resembling the interface that will be loaded as quickly as possible. Displaying a logo does nothing but draw attention to how quickly your app loads and adds nothing to the user’s experience.
If your bundle have default.png then apps takes as a launch image and it remains on screen for 3 seconds
In iOS splash screen means when you provide any image named Default.png in the bundle and before executing the mainWindow it is just loading that image in the iPhone screen. So, Default.png image is considered as the Splash Screen in iPhone.
While you load the mainWindow in the iPhone application, you can assign any image that can be viewed in the screen in the specific size as given that is called the launch image.
So, launch image that is one which we provide run time when application launches and starting the main-window. And here launch image can be dynamically changed based on program written while Default.png / splash screen will be fixed for the application.
Please let me know if you still have any question?
Launch Image may take a little short time. It shows when app loading starts into iphone volatile memory. it shows for very short.
Splash screen means, that you display an Image until your necessary information loading not complete. Like, U can see any loading image before start any heavy game. When all data loading complete then this screen removed and game statrs.
It may shows for little long. !
Launch Image is displayed when the app loads. It is designed to make your app feel faster by showing something resembling the interface that will be loaded as quickly as possible.
Splash screen means, that you display a view with about information as your start screen. Your User should use your app immediately.
I have a situation causing me to have a need to support two different launch images for Portrait orientation on iPads as the views will be different depending on the IOS version.
I'm developing iPad/iPhone app that supports a UISplitViewController as the root window when the device is an iPad. In IOS 5.0, supports the master view controller being displayed in split view while in portrait mode by responding "NO" in the shouldHideViewController UISplitViewControllerDelegate method. In IOS 4.2, this method is not called and thus the Master View Controller is not displayed in Portrait orientation. Instead, it is a popover presented when a Nav button is pressed.
Is there a way to create a single version of the application (from an iTunes customer perspective) that includes the appropriate launch image based on IOS version?
The iPhone App Programming Guide within the Advanced Tips and Tricks section describes how different launch images can be specified based on platform and device, but no IOS version as so: key_root-platform~device
Another post's answer indicated that I may be able to solve a similar problem by creating multiple targets to support multiple versions. Is it possible to create multiple targets and upload them to Apple as a single application and have them distribute the appropriate binaries based on version? Any tips on how would be greatly appreciated.
No, there is no way to do what you are asking for. Your best bet is to come up with some launch image that's not trying to be a faithful reproduction of what your home screen is.
Could you not just show the split view with the popover/sidebar closed in landscape view? That way it will look much the same for iOS4 and iO5.
I think you can accomplish this by creating a custom splash screen. Then you can perform a runtime check and load the appropriate image based on the iOS version. I have seen custom splash screens before (eg animated splash screens).
I think you would overide startupImageWithOrientation:, see this post more for info.
As for your question about having multiple targets be one app, the answer is no.
When I load my iPhone app it always loads a black screen first then pops up the main window. This happens even with a simple empty app with a single window loaded.
I've noticed that when loading, most apps zoom in on the main window (or scale it to fit the screen, however you want to think about it) and then load the content of the screen, with no black screen (see the Contacts app for an example).
How do I achieve this effect?
Add a Default.png to your project. This should be the image you want shown instead of the black launch screen.
Also just to save you some time, there is no way to change this image during the runtime of your application. If you look at Apple's Clock application you can see how depending on the last state of the application, the Default.png changes. You cannot do this in your own app because of permission limits. Also, make sure to read the iPhone HIG for best practices on Default.png use, in short, dont use it as a splash screen like Twitteriffic.
You can also take a screenshot of your app as an aid to creating the Default.png - while holding the Home button, press and release the Lock Sleep/Wake button. The screenshot can be find in your Camery Roll library in the Photos app and can be synced back to your desktop.
When the app transitions from the launch image to the actual app content, it should not be jarring to a user - content (text/images) can be added to the screen, but content should never change. If all this leaves you with is an empty blue header, a white body, and a blue footer - then that's all you should have. If you have a persistent tab bar on the bottom & a localized app (different text descriptions), then then launch image should appear with icons but no text. (See Clock.app & Facebook.app for examples.)
Screenshots can also be taken in XCode using the Screenshot tab in the Organizer window and a plugged-in device.