I'm developing an iPad app, but when I run it on my iPad Pro 10.5 the status bar is bold, a sign that the app is not optimized for that resolution. How can I add support for the new iPad? I see that other App Store apps (such as Trello for example) work good in full resolution.
I know that there's another question similar to this, but the answers don't really solve the problem. All the 3rd party apps on my iPad are perfect on the screen, but not the one I'm developing. This means that all the other developers have added the launch screen images (not a common practice nowadays) or they found a clean way to do it.
Related
I started out iOS development 4 years ago when there was only two screen sizes to worry about. The 3.5" (non-retina) iPhone and the 9.7" iPad. One of the reasons that I chose iOS development was because unlike Android OS development at the time, there was only two screen sizes to design for making it simple to ensure that all my apps would look good on all devices.
I am the kind of person that likes to make sure everything is perfect before releasing my application. So, I believe that if you've only tested your app out on the simulator (of which there was only like 4 options, two versions iOS for the iPad and 2 for the iPhone) then your app is not ready for the big time because code runs differently on the actual device itself. So, four years ago, I got an iPad and began to test my applications on that as well.
However, this is where the issue (and the question) really comes in. Now theres 2 or three different size iPhones and like 5 different size iPads. I can't very well buy one of each (nor do I want to) so what do you guys recommend would be the best way to test my apps on-device for all these various screen sizes?
Unfortunately, larger companies and studios have a number of each device. That's all there is to it. For most developers, it comes down to you buy each new iPhone and iPad that comes out.
In that way you have at least one of everything in stock, over time.
There's really no alternative to this. App development is expensive.
It's worth noting that if your studio develops for Android, the situation is worse! Although the following article is a little old, it's still the case
http://techcrunch.com/2012/05/11/this-is-what-developing-for-android-looks-like/
No difference in the iOS universe.
"I can't very well buy one of each..." Unfortunately you have to. It's the cost of doing this business.
"I can't very well buy one of each (nor do I want to)" Unfortunately you have to. It's the cost of doing this business.
It's perhaps worth noting that: the cost of being a developer is "A few thousand a year" for devices and a few thousand a year for hardware (Macs, etc) and the inevitable licenses (Unity3D, etc). It's perhaps worth noting that: relative to almost any other business, this is extremely low.
Note that a couple of people have jokingly replied, "just use the simulator and hope!" Obviously that's a non-starter.
Buy used devices on eBay. Buy devices with small damages. iPhone 6 with cracked screen is quite affordable on eBay :-) For iPads, don't worry about the mini, it is just a shrunk version of the larger one and behaves identically (alternatively, buy the iPad Mini and don't worry about the larger one, saving money).
Use layout constraints, and use the simulator. If you really don't want to release unless it is tested on a real device, just don't support the bigger sizes. Your code can easily treat a 6 or 6+ as a "large iPhone 5".
There is a better way! I created a small open source project called Screen Sizes Simulator. It uses a resizable embedded view which allows you to change the size of your app during runtime. You can test all iPhone sizes on your iPad, switching freely between sizes during runtime.
You can event test different iPhone sizes in smaller iPhones! Using the "Zoom to Fit" option you can even run an app with the iPhone 6 aspect ration in an iPhone...
You can find the project on GitHub: Screen Sizes Simulator
Here's an example screenshot of an app using the Screen Sizes Simulator:
I know that there are several answers for this question, but I was not clear about the result. Here are a few questions:
1) If I created a project as an iPhone project, selecting device as iPhone in deployment info, and designed the app using universal storyboard (i.e any width and any height (600x600) ). Once the design is completed and it is run on an iPad, the UI does not look good. If that is the case then, what's the point in selecting the device as an iPhone? Am I right that when selecting the device as iPhone or iPad, Xcode will allow the app to only run on those devices?
2) Now converting iPhone app to universal app: since image resolution varies from iPhone to universal app, do we have to replace all old images with new images supporting the universal app?
3) If I have an iPhone app, the Apple team will test it, both on an iPhone as well as on an iPad. If they found the UI doesnt match the iPad, will they reject the app?
I would imagine the UI looks just like it does on the iPhone, just enlarged to fit on the iPad. Basically this is because iPhone only apps can be run on iPads, but not vice versa. If you change the app to a Universal app, it will try to run natively on the iPad, and may look better if you have appropriately used auto-layout and size classes.
(Optional other cause) The other option is you're running into an iOS 8 issue where if you use an storyborad or nib for the launch file, it will mistakenly make an iPhone only app work as a Universal one. The use of Launch Screen File in iOS 8.0, 8.0.1 and 8.0.2 will make you universal.
This is a know bug and fixed in iOS 8.1, for you only option is to use assets catalog with a launch images.
Or you can add the device modifier in the Launch file name, like <launchNib>~iphone.nib
As far as images go, you will want to make sure you have images for the different resolutions (#1x, #2x, #3x). If you haven't already, I recommend reading up on asset catalogs (http://schlu.org/2013/10/01/Xcode-Asset-Catalogs.html). Images are not inherently different between iPhone and iPad (except for launch images), but it's the pixel density that really matters (older devices are 1x, most retina devices are #2x, and the 6 Plus is #3x).
If it is truly just an iPhone app, Apple will not reject the app because it looks pixelated and ugly on an iPad. The ability to run iPhone only apps on iPads stems from the initial release of the iPad when people hadn't created iPad or Universal apps yet. Apple basically provides it if someone REALLY wants an app that hasn't been created to specifically support the iPad yet.
That said, I would just go ahead and release it as a universal app. If you don't have revenue reasons for creating separate apps, I wouldn't recommend the extra hassle of having two apps. If course, if your app doesn't make sense on the iPad, simply make it iPhone only.
These are the common practices according to your questions
User interface doesn't depend on deployment devices. User interface depends on your implemented UI logic. As you said, default storyboard size is 600x600 (this could be easily changed), but this doesn't mean, that all devices should be this resolution. When the resolution is different, images and UI elements are misplaced. There are several ways to implement UI logic and make UI flexible, but I guess your question is not about that. So, short answer - devices selections are more about deployment than UI.
It might be some different images for different devices, but images such as buttons or text fields or etc should be flexible.
No, Apple doesn't care about your application appearance and design.
I hope I have answered to your questions.
So I'm working on a Cordova-based app for both iOS and Android. The iOS portion of it is meant to run only on iPhones and iPod Touches.
When I last submitted my app for reviewal, I got this rejection message from them:
2.10: iPhone Apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
Thing is, here is what my app looks like in an iPad:
I hunted around for another app that is also running on the iPad at iPhone sizes, and I found FourSquare:
As far as I can tell, they're running at the same resolution.
I did a $(window).width() and .height() call in my app, and I get 320x480, which as far as I can tell is the resolution of the original iPhone.
I found this other SO question here that addresses a similar (I think) problem: 2.10 iPhone Apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
But when I check my settings ([project target] > App Icons and Launch Images), "Launch Images Source" is set to LaunchImage, and "Launch Screen File" is blank. (my experience with native iOS settings and storyboards is limited, so I'm not sure if I'm correctly implementing the solution prescribed in the linked SO question).
I also found this other one here: Make an iPhone specific app work on iPad to meet Apple requirements
It talks about editing one's .plist file to remove all references to iPad. I found two entries in mine, 'CFBundleIcons~ipad' and 'Main nib file base name (iPad)', both of which have no values (the value column is empty). Should I remove those? I'd run them to try, but I'm slightly afraid I might explode something beyond repair (plus the time taken to try, submit for review, and wait for Apple to get back to me is infinity+5 seconds, and the project's already behind schedule as is :( ).
I've searched far and wide for the answer to this. i haven't been able to find an answer anywhere, so i turned to stack overflow in hopes you would be able to give me an answer. I'm about to submit my first app to the app store. do i have to make the app function on all iDevices (iPad, iPhone 4, iPhone 5, iPod touch, etc.)? or can i just submit my app for one single device and screen size and leave it at that? will they reject it?
i went through this pdf:
http://stadium.weblogsinc.com/engadget/files/app-store-guidelines.pdf
but i never found an answer to my question.
You specify what kind of device family your app will run. You can not limit your app only to (for example) iPhone 4. As far as I know right now if you specify your app running on iPhones it has to support 3.5 and 4 inches screens. So getting exactly to your question: no, you can not leave your app running fine only on one device and screen size. Except the approval process it would probably cost you very low rating on the App Store.
When you build the app, in Xcode you select the device families that the app supports. The choice is currently iPhone, iPad, or both. If you choose iPhone, you'll have to support both the 3.5" and 4" screen sizes. If you used Auto Layout, this should be easy.
I want to make an iOS app but I don't have a Mac or any device with iOS. I read I can make an iOS app on Windows and Linux with Trigger.io. The app I want to make is rather simple.
What I would need is a device with iOS to test. Which devices should I get?
I was thinking on getting an Iphone 4 and Ipad 2 as they are cheap. What do you think? Will I be able to successfully build an app if I only test in those 2 devices?
Those would be good devices to test on. You'd be missing out on an iPad with a Retina display, which would mean you'd be guessing somewhat at the appearance of icons and launch images on those screens, but the most important thing is covering the phone and tablet form factors.