Scaling for multiple devices - objective-c

So I am creating an app that will be released in the App Store available for iPhone 4/4s and iPhone 5.
In my project I am using storyboard for the interface.
At the moment not every object is able to aline perfect with the objects above so when I for example test on iphone 4 every thing gets messed up.
How can I fix the place of the object.
Do I have to hardcode this? Or can I use storyboard for this.

I think autolayout should suffice in most cases. You can check out a comprehensive tutorial here: http://floatlearning.com/2012/11/designing-for-multiple-screens-in-ios/

Related

Upgrade project for iPhone X and iOS 11

I'm working on very old project which is written in objective-C and it's all views and controllers are written programatically. (There are not even XIBs, except some cells)
I've already open project in latest Xcode 9.3 and resolve all error and dependencies and compiled it successfully.
But now I want to upgrade the whole project to give support for iOS 11 and iPhone X layout, and I also want to add storyboards and remove all programatically controllers. It's also compatible for iPad and iPhone both.
Can anyone suggest me how to start it and what to keep in mind?
It's huge project so I'm bit confuse either would I make it or not. (I don't wanna introduce swift at the moment, first I'll update it for iPhone X layout and storyboards, then I'll think about swift too)
First of all start with creating UI on storyboard with autolayout.
Remove the resizing views conditions from the code.
Use size class to support both iPhone and iPad.
so basically first 3 steps will solve 70% of your issues.
My suggestion is don't move to the swift before doing all this.

How to deal with the ios Launch files

It has been a while since I created my last app and I missed the change with the launch file (since titanium 5.2.0).
I want my app to have a custom splashscreen (full screen image). In the past I used the various png files for the splashscreens Default.png, Default#2x.png etc.
I'm testing with the launch file and the custom Storyboard. At the moment it's not clear to me how I can achieve the behavior i want: A full screen image in the splash screen.
What is the best approach?
Thanks for the help.
Go to http://docs.appcelerator.com/platform/latest/#!/guide/Icons_and_Splash_Screens-section-29004897_IconsandSplashScreens-iOSgraphicassetrequirementsandoptions and take a look at the Purpose column. You'll see 9 splash screen sizes. You have to make each of them and put them in app/assets/iphone. Note that you have to name them exactly as told in the table.
This worked for me, Ti-5.4.0 tested on iPhone 7, iPad Air, iPhone 4S and iPhone 6S Plus.
Since version 5.2 storyboards were introduced. You can use them or you can disable it and use the "old" method to implement splashscreens.
To disable it, add this to tiapp: (of course, within the existing ios section in tiapp
<ios>
<enable-launch-screen-storyboard>false</enable-launch-screen-storyboard>
</ios>
To use it, look at the documentation how to implement it correctly.

Xcode 7 - Multiple Storyboards

After finishing an app, what code do I have to put in appdelegate.m to be able to make it run view controllers depending on the device's size?
You should not use multiple storyboards to handle different devices in an iOS app. Please see the Apple documentation:
Adaptive User Interfaces
And in particular the section on Auto Layout to learn how to properly handle making your user interface adaptable to current and future devices.

how to make an ios app adaptive in Xcode 6.1(objective C) using auto layouts or any other simple approach

I am very new to Xcode and so as with auto layouts and i want to make my app which i've created, adaptive in a very easy way. I have seen lots of tutorials on internet but nothing helped me with my app. so i don't know how to make my app adaptive. so i need a help.
I have made an app that generate report in second view controller after providing inputs in first view controller.so i need to see how can i use auto layouts in my respective app to make it adaptive or there any easy way to get the results. i have seen all the videos related to it.
thanks in advance.
The best way is to use Auto Layout and Size Classes. This way your app will work with all iPhone sizes and all iPads. It will also behave correctly in portrait and landscape.
For more details, you will need to read and watch a lot of documentations/WWDC videos.

NSStatusItem app development

I'm beginning some OS X development, I am reasonably accomplished with objective C and UIKIT.
There doesn't seem to be as much online about moving from iOS development to OS X as I thought there would be!
Anyway, I found a decent tutorial over a Ray Wenderlich, that basically explained the differences, (multiple NSWindows, then add to them NSViewControllers etc)
What I would like to do is make a little app that shows info in the status bar (beside the Wifi icon etc)
Basically all it does is have an NSStatusitem that has it's title set with info I want shown (e.g. current song title)
I've got one going and it's working ok so to my question:
I've got Application is agent (UIElement) (so I cannot see a dock icon or menubar)
The code for my little app all resides in the app delegate, now from iOS dev i'm sure this is not the right place for this code, but since the app is a just a status bar item, that has it's title updated I don't think I need a UIViewController etc....
Where should my apps logic go?
Anything online to transition from iOS to OS X?
As you dont have much work with NSWindows and NSViews, you surely dont need NSWindowController or NSViewController.
And I think for this kind of app even your AppDelegate class is enough and best place to put all your logic.
If you have some models then you can break your code upto that, and use it in the AppDelegate itself.
Transition from iOS to OSX.
If you are good in Objective-C then you dont have to worry about few more Cocoa-Controls especially GUI levels, you have full support of Documentation.
Switching between iOS to OSX, vice-versa is not to difficult, but yes if you end up with system level then you need to interact with OSX too.
As stated earlier, if you know Objective-C well, then you should not face major problems. However, there are some differences. I found these following documents helpful:
About Developing for Mac
Migrating from Cocoa Touch