Are you sure thats recent? Its been like that ever since I started programming for the iOS platform (3 years ago) and before its something you would hear about pretty consistently with each major iOS update.
I personally don't equate fragmentation with different screen resolutions/sizes/aspect ratios. An eco system should have a large swathe of options. One size does not fit all in this case.
The fragmentation I feel in iOS comes from its tedious way to deal with the different screen types.
iOS's adaptive display lumps displays into four different categories. A category can have vastly different screen sizes and even different aspect ratios. They are...
iPad Pro, iPad (portrait, landscape)
iPhone 6 Plus (landscape)
iPhone 6, 5, 4S (landscape)
iPhone 6 Plus, 6, 5, 4S (portrait)
AutoLayout is suppose to fill in the gaps between the different resolutions here, but it doesn't do that great of a job at it. It relies heavily on hardcoded values rather than dynamic values based on the containers size. That coupled with only having 4 distinct size classes makes laying out most views near impossible to rely on AutoLayout alone, you have to manually change the constraints at runtime.
I don't find iOS's layout system to be very adaptive at all. The only thing saving it is there are only 6 different resolutions in the entire eco system. With a huge majority of the users on only one or two of those resolutions.
Dynamic layout can be created based on the size of the container, but it's not the easiest. The trick is getting used to the multiplier value and, where needed, using extra views as dynamically sized "spacer views". Not ideal I'll admit, but it can still be very powerful when used correctly.
8 comments
[ 3.3 ms ] story [ 34.6 ms ] threadThe fragmentation I feel in iOS comes from its tedious way to deal with the different screen types.
iPad Pro, iPad (portrait, landscape)
iPhone 6 Plus (landscape)
iPhone 6, 5, 4S (landscape)
iPhone 6 Plus, 6, 5, 4S (portrait)
AutoLayout is suppose to fill in the gaps between the different resolutions here, but it doesn't do that great of a job at it. It relies heavily on hardcoded values rather than dynamic values based on the containers size. That coupled with only having 4 distinct size classes makes laying out most views near impossible to rely on AutoLayout alone, you have to manually change the constraints at runtime.
I don't find iOS's layout system to be very adaptive at all. The only thing saving it is there are only 6 different resolutions in the entire eco system. With a huge majority of the users on only one or two of those resolutions.