Upgrade old iOS Application to support multiple screen size - ios

Our iOS application was written in 2009 when there was no story board.
All the positioning has been done by hard coding in the application.
This was done for 3.5 inch screen. Though it didn't look good but worked in iPhone5 also which is 4 inch and better resolution.
The application has a lot of business logic so I do not find a easy way to upgrade it to story board. I want to upgrade the application so that it works fine in all the iPhone screen sizes without any problem. I want to remove hard coded absolute value values with relative values, so that it can support iPhone 6 also without much modifications, when it arrives.
How should I upgrade the application? How to replace absolute values by relative?
Note: I am not concerned about supporting my app for iPad.

Related

Xamarin Forms for IOS use native resolution

I have created my first Xamarin Forms App targetting UWP and IOS.
The UI was originally designed for UWP to target a 1920x1080 screen and when IOS on an iPad was added we identified that the ones we are interested in have a minimum of 2048x1536 screens, so the same design should fit onto the iPad quite comfortably.
Unfortunately, when the app is deployed to a brand new iPad and even iPad Pro then the UI shows effectively 1024x768.
The UI does allow for low resolutions but we don't want to be restricted to such a ridiculous resolution as 1024x768 when we have 2048x1536 available on the iPad and 2732x2048 available on the iPad Pro
So the app is scaling to 2x or 3x, (which is terrible on the iPad Pro).
I have seen many suggestions to use a LaunchScreen.xib to tell iOS that the app is allowed a resolution but when I try to research this I find that it is deprecated. I created a LaunchScreen.storyboard but this has not helped.
So my (2-part) question is as follows...
Is there actually a way to convince iOS to use 1x scaling?
If so could anyone point me in the direction of some current documentation about how to make it work?
After much investigation and hair pulling it would seen that iOS just "knows" how big its physical pixels are and it won't let you switch off scaling.
Our next best course of action was to reduce font sizes by 20%, cut back on whitespace and then finally explicitly change what still didn't fit.

generate ios 10 universal app splash screen sizes and filenames, iPhone SE

I am making an iOS 10 ONLY Universal App. Being a developer with poor image-handling skills, it has become too troublesome to generate the splash screen images for me. I guess that's some work for the "designers".
Nevertheless, i have to do it and I need help because what i have made doesn't work fine with the iPhone SE.
I don't care about older devices and operating system versions, but i want to cover every device that can run iOS 10. so forget iOS 6,7,8,9.
Btw, i am using Xcode 8, so forget all about Xcode 5,6,7.
There's too much of confusing content for new developers often wasting their time while they read about older versions and which might not be quite applicable anymore.
I have read the following posts/guides already.
What are the sizes used for the iOS application splash screen?
Image resolution for new iPhone 6 and 6+, #3x support added?
Image sizes required to support all iPhone devices
How to handle image scale on all the available iPhone resolutions?
Use vector artwork for iOS launch image in asset catalog?
The first SO post is so outdated, people are talking about iOS 6 & 7,
and iPhones 6, 6+, 5S, 5, 5C, 4S, 4 and the various iPads.
But no one mentioned/talks about iPhone SE.
The second SO post is also quite outdated, people are talking about iOS 7 & 8, and iPhone 6 and 6+ are mentioned.
Even though i figure out the size, there is a filenaming/convention issue.
I am looking for a table that clearly states the filename, image size(resolution) and the devices it will be applied to.
As usual, Apple's documentation provides good detail about image resolution but nothing about filename.
link -> https://developer.apple.com/ios/human-interface-guidelines/graphics/launch-screen/
I wonder if the filenames matter? I can easily modify the Contents.json file i think.
Is there some tool where i can provide my logo in vector (SVG) format
and it gives me all the splash screens with my logo in the center (with the correct filenames!)
I believe the iPhone 5/5C/6/6S/6+/7/7+ are the only 7 iPhones that support iOS 10. (i checked Wikipedia) Did i miss something?
In a universal app, is making images for iPads mandatory?
Why doesn't everyone use and everyone allow using vector images directly? I hope i can use SVG, and it is easy enough, it looks like currently that is infeasible. correct if i am wrong.

How is one to thoroughly test iOS apps with all the various devices of different screen size?

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:

How to format app properly on an ipad from an iphone app in xcode?

I've written an app in Xcode and I set it for iPhone, but now I want to make the app available for iPad. I don't want to go through the trouble of making it universal, is there a way I can run this iPhone app on my iPad correctly formatted?
You can just set the target Device to iPad and run it. See below. Your UI may or may not look good depending on if you properly used either AutoLayout or Springs and Struts.
The iPad is a very different canvas for a UI than the iPhone and there is no definition of what "correctly formatted" really means when going from one to the other. It's a subjective matter and a computer is not going to decide if it looks good for you. As such, you may not get what you are looking for.

How to upgrade your project for ios 3.0 to ios 6.0 onwords

Right now I am working on non-arc project for ios3.0. They haven't designed anything by interface builder. Everything coded is both for landscape view and portrait view separately. My Problem is when I try to add the same image for background of another screen, it appears to be cropped. also enabling the auto resize subviews gives me error. When I try to set views for portrait and landscape view, it doesn't work.
one more thing, that project is only developed for iPad. if they want it to be done for iPhones, should i have to start from scratch separately for iPhone because of above mentioned problems ?
please suggest me if the upgraded app will support for 64 bit ipad retina.
Thanx in advance
Make your project universal by changing the setting shown in the image below. Also it is better to drop support for iOS 3 as nobody uses it anymore and support iOS 6 and above. It will give much more options and flexibility regarding frameworks and layouts.
To support 64-bit devices you have to build with iOS 5 or higher as minimum supported iOS version. Best practice is to support the two latest releases (iOS 6 and 7 at this moment) as most iOS users update their devices fast after each os release.

Resources