I am in process of creating a new universal application.
Would it be "bad" or against guidelines to create separate classes to control the iPad version?
I am using a tabbarcontroller for the iPhone version and a splitview for the iPad version.
It seems easier in my case to create new classes to handle all the iPad stuff.
Thank you for your time!
Nope, not bad or against guidelines at all.
In my own universal apps, I use separate XIB's for iPad versus iPhone interfaces. And sometimes different (or additional) classes for iPads as well.
Probably one of the more important things is that the functionality is roughly the same between iPad & iPhone versions... will the tab bar view do the same thing the split view do, for example?
Related
Currently I was designed and developed my app in iPhone . Now I wanted make my app universal(iphone and iPad).Please guide me what will be the efforts and challenges on design and development ? could you please explain the steps.
While developing a app and want to makeit a universal app you should have to -
Make sure the design compatible for both iPhone and iPad. you can check it
from physical devices or form the simulator.
Make sure all the fields are ok (not breaking down while switching the
devices).
Make sure all the scrolling are working for both iPhone and iPad.
The main efforts will be on the following areas.
UI
You will need to obtain a new design suited for iPad depending on what you already have. If it is a simple interface, you port it to be viewed on iPad without a new design. But usually you need a iPad specific design.
You will have to change the layout of most screens to make it look good on the iPad. If auto layout is already used, it will be a little bit simpler. Otherwise I guess you will need to start thinking about separate storyboards and xibs for iPad specific screens.
Code
Assuming there is no additional functionality specific to the iPad, the main areas of change in code will be the those handling view presentation logic, navigation and animation. It all depends on the design you need to implement, but generally I would say you will need to change code that handles animation, presents new view controllers, handles storyboards etc.
Resources
You will need to provide resources specific to your iPad design.
Testing
Obviously you will need to do a LOT of testing :).
Eg: For example, location handling. There are no modern iPhones without GPS hardware, but iPads without cellular capabilities do not have GPS. So you location handling code might have to be rechecked. (It broke for me :))
AppStore
You will need to provide app store screenshots for the iPad screens.
I have completed an iPad app which only available on iPad iTune store.
But client wants to have different design but similar functionality application for iPhone as well. Some of new feature must be added to iPhone version. I can use most of the functionalities in iPad version and have a new project and build iPhone from scratch!
My requirements will be change during time. New requirements could be for both or either of them. Therefore, I need to add new features in both applications time to time and maintain both applications as well. This app is pretty much complex with more than 150 classes. I need some advice to know is it better to have only one application to works on both devices or it is better practice to have separate project for each iPhone and iPad?
EDIT
I want to use split view controller and vertical menu bar in iPad and side menu and horizontal menu bar in iPhone.
if you want to have two separate iPhone/iPad apps on the store, just make two targets of your application. This will mean you'll probably will use two different storyboards, but that's up to you. Go to your project settings and make two separate targets - one for iPad, one for iPhone. Edit the target general settings where one should only deploy for iPad while the other for iPhone. Posted some pictures below:
You'll want to also go to Manage Schemes, remove the current schemes you have and add the targets you just made. Then set these macros in your iPhone build so you can just edit one code base without needing to edit both the phone and tablet code -
Some example Code:
// Just for Phone Target
#ifdef PHONE
- (void)somePhoneMethod;
#endif
// For both phone and tablet device
- (void)aMethod;
I'd like to add to what everyone has said and if there isn't too much difference just make a universal app.
Use Auto layout and maintain in a single storyboard.
If you know about classes ,Autolayout Strong then my preference is
AutoLayout.
It will reduce your time and easiest handling.
this is Classes here if you like to do vertical layout only for ipad means ,you need to select like this
like this you can choose only for ipad,iphones,portrait,landscape like this :),Its upto your decision.
If UI is same for both so its better to use existing just check in classes for iPad and iPhone.
I'm working on an iOS app, that should work fine with both iphones and ipads.
As I know we can build the app as universal or convert iphone storyboard into ipad storyboard.What I want to know is, what is the best way from these and, when we launch app to app store, is it a problem to have two storyboards one for iphone and another for ipad.
What I want to know is, what is the best way
That depends on your needs. Do you want the interface to be the same on iPhone and iPad, except sized differently? Then you may be able to use a single storyboard and rely on autolayout to adapt to different devices. If you want different interfaces on iPhone and iPad, perhaps to take better advantage of a much larger screen, then use different storyboards for each device type. You should still use autolayout in each storyboard, though, because within each device type there are several different screen sizes.
is it a problem to have two storyboards one for iphone and another for iPad
No.
Two storyboards for each type of device is a best way. As a result you will have more usable and careful UX for both types. But this way require a little bit more time for developing.
I'm going to create a Universal iOS application using Swift. The functionality for the iPhone and iPad versions is 70% the same but some parts are different. The app will support all orientations.
What is the best approach for a universal architecture?
Should I use separate storyboards and separate classes for iPhone/iPad with separate targets or use the same files?
Separate storyboards would be the better option if you are planning to have very different layouts between the iPhone and iPad storyboards.
Personally, I would try to use the same storyboard for both and utilize both size classes and auto-layout (theres a good tutorial on auto-layout here) to adjust the views as #RDSpinz suggested in his comment.
I have an app that is nearing completion. So far I have just been using the iPhone storyboard to map out the navigation, but I would also like the app to work on the iPad. Is there a way to just "make it work" or do I have to re-do by hand the entire app flow on the iPad's storyboard?
Thanks!
Considering they have different resolutions, and aspect ratios, you really just have to grin and bear it, and convert it all manually. You can at least copy the storyboard file to a new one, and adjust the views one by one to be ipad-sized
If you made it a universal app, I'd suggest creating another storyboard targeted for iPad and work from scratch. You can still use all the controllers and methods therein for your new views (considering there's nothing very specific) with some slight modifications to adjust for the iPad.