Why is iOS Development so Convoluted?

Ok, I'm clearly missing something with iOS development. I've been developer for over 10 years and I'm jumping into iOS development now and absolutely everything seems to be a near impossible task to accomplish, when it is literally 2-3 lines of code to implement something using HTML/CSS/Javascript/Java etc. it seems to be a days worth of time trying to figure out how to actually implement something so unbelievably simple. Let me start with a few examples;


- Responsive design: This seems to be focused around Constraints (but not to 'margins' or this breaks everything), yet this then breaks when you try and add something else into the middle and move items around in the storyboard, so you have to reset all the constraints and start again. Time and time again. What am I missing here?


- Picker View: This is a simple select/option in HTML. I've yet to find any working code online that can implement this. I'm just looking for a simple Country selector to allow users to choose details


- Date View: I haven't event started looking at this yet, I'm anticipating even more problems with this when it comes to date formats / working with dates etc.


The offical documentation from Apple is abysmal and every tutorial you find online is out of date or doesn't work. I'm at a loss here. I'm seriously thinking of just giving up on iOS development for a couple of years until the ecosystem grows up a bit and is possible to understand and implement the very basic things.


Am I missing something here while tearing my hair out? Or is it really this bad? Tips, guides, pointers, all useful. Any pros out here, please, point me in the right direction to pick this up quickly. This post is out of frustration after reading through all of the official guidelines and many tutorials online too.


Another prime example of this.... posting this question - having to figure out what on earth 'enter the name of a place' means, England?

Replies

I do not normally respond to posts that are posted in an inappropriate subforum, but here goes.


Adding an item in the middle - I select the vertical space constraint where I want to insert something, edit it to a large value (100 or 200 or something) to make space on the storyboard, then delete that constraint. Then I add my view in the middle, control-drag or use the tie fighter menu to add appropriate space / size constraints, and hit Adjust Frames. Everything falls back in order.


Picker views - UIPickerView is the standard. RTFM on that one. Yes it's more complicated than a simple drop down because it supports multiple components and changing the contents on the fly, including your custom views or whatever. It deliberately does not look like a web site drop down menu; the iOS HIG discourages making apps look like web sites. The jury is still out on whether UIPickerView is an optimal interface, but it is the platform standard. Which leads us to the next point...


Date picker - UIDatePicker is the platform standard. As a user I find it god awful. Really don't like it. In my apps I had to roll my own (found and modified a third party, actually) calendar-style picker. Working with dates is easy as long as you don't ever try and convert back and forth between localized user entered text 😝 If you use the system date picker you will be OK as it gives you a Date which represents an immutable instant in time independent of all time zone or localization / formatting details.


Documentation is weak, I agree. You would think the "related items" when looking at the reference for a class might point you to relevant sample code or even the documentation for delegate protocols used by that class. But no.

Thanks. This is good to know that it's not just me. I tried following the tips for adding items in the middle as you outlined above, this did not work for me for some reason. I'm going to go and work on other projects for a while and wait until everything gets better in the iOS ecosystem. It's a shame as a platform of this size really should be better documented. I just don't have the time to be randomly playing with things to try and get something to work. I feel a lot of questions appearing on Stackoverflow for every minor aspect when I do start to pick this up again...

Just wait until you're trying to implement a simple file selector ("Document Picker" in Apple parlance). The Apple documentation for it sounds like some kind of writeup on how to calibrate rocket engines, with words I've never heard and incredibly convoluted ways to deal with the file if it's returned.

It also doesn't help that all examples on the net for anything are now for Swift, after I had barely learned Objective-C. So am I supposed to learn yet another obscure language now or what?