Как стать автором
Обновить

Комментарии 21

О разработке под iOS имею поверхностное представление, возможно, поэтому не понимаю суть претензий. Но разве iOS 14 не обратно совместима с iOS 13? — старые приложения на ней перестают работать? Или в чём проблема?
Да, некоторые перестают работать, например приложение мегафона. Некоторые с глюками, например яндекс навигатор и яндекс карты, где нельзя нормально скролить карту.
У них было время с июня, чтобы найти и пофиксить баги. Тем более такие явные, как скроллинг карты. Чего они ждали?
UPD: комментарий ниже несколько проясняет суть проблемы.
В половине случаев — нет (на сколько я помню).
В Android'е для этого есть AppCompat, а в iOS'е такого нету.

AppCompat работает в другую сторону — можно получить часть новых функций на старых версиях.

Но разве iOS 14 не обратно совместима с iOS 13? — старые приложения на ней перестают работать?
всякие неприятные баги могут вылазить. У меня например одна приложуха отказывается показывать строку состояния, хотя какой-то приуроченный к ios14 багфикс они уже выпустили
Когда появился iOS 13 с тёмной темой, встречались визуальные глюки (чёрный текст на чёрном фоне например — фон по умолчанию, а цвет текста какой-нибудь тёмно-серый).

Ещё добавился новый способ ввода текста — свайп (забыл как он в самом айосе называется, в других мобилах и в кастомных клавиатурах чаще это название встречал). Так я в рабочем приложении огрёб веселья в обработке текстовых полей, а если б я этого не сделал, веселились бы пользователи.

А насчёт «перестаёт работать» — и такое встречается. У меня например одна игрулька отвалилась — «Необходимо обновить %appname%. Это приложение должно быть обновлено разработчиком для работы под управлением этой версии iOS» (и два варианта- оставить и удалить). Но, подозреваю, её не обновляли уже очень давно.
Уже не первый раз вижу такой пост и везде только о Pocket_Camp речь.
Ну не запустилась игрушка на новой версии iOS, ну бывает.

Где большой список проблемных приложений? У меня лично все работает (как у пользователя).
Не совсем понял, а как же программа бета-тестирования iOS, по которой практически любой желающий мог себе public beta iOS 14 поставить? И насколько я помню, GM почти всегда идентичен релизу. В чем проблема?
Проблема как я понимаю в том что разработка в ios обычно ведется только под одну версию, последнюю актуальную. Т.ч. когда выкатывается новая ios, пользователи на нее массово начинают обновляться а разработчики выкатывают версию совместимую только с ней. А заранее выкатывать такую версию — лишать пользователей обновлений версии старой.

Да нет, вчера пришло ~10 обновлений программ с текстом "Встречайте версию под iOS 14", хотя я сижу на 13-ой. Народ раздул с мухи слона, потому что не дали 10 дней на подготовку, как в предыдущие релизы.


Серьезные дефекты и так за 10 дней никто не починит и не оттестирует, а бета программа длилась достаточно долго

Проблема не в дефектах, а в том чтобы старую версию ios одновременно с новой не поддерживать. А теперь представьте если бы вам «Встречайте версию под iOS 14» прилетели не вчера, а пару-тройку месяцев назад? Или вы думаете у разработчиков каждый день дорабатываемая кодовая база лежит готовая к релизу под обе версии, да еще и протестированная, чтобы выкатывать ее тут же как только фас скажут?

Нет. Большинство компаний поддерживает несколько версий iOS. Допустим, конкретно мы увеличиваем deployment target, только если в более новой версии есть что-то, что нам действительно нужно. Разумеется, меньшая фрагментация действительно позволяет покрыть 90+% пользователей поддержкой только пары версий iOS, что многие делают. А некоторым нужны самые последние фишки, и без них приложение не будет работать. Но в целом ничто не заставляет вас отключать поддержку старых версий.
Xcode 12 (который вчера вышел) позволяет собирать приложения для iOS начиная с iOS 9.

Ну я скорее не про отключать поддержку, а про учет багов и нюансов разных версий. Я конечно предполагаю что ситуация у вас получше чем на андроиде, но один черт учитывать нюансы и баги даже двух версий — не думаю что просто. Потому например в андроиде ориентируются на последнюю версию, а для поддержки прошлых используют AppCompat библиотеки. Ну и иногда вручную обработку разных версий расставляют, но гораздо реже.
Ну, как правило, у вас уже есть код, написанный под старую версию, который работает, значит, вам нужно написать код под новую версию. А если вам всё равно его писать, то можно просто обернуть его в условие проверки версии, почему бы и нет? :) Дополнительных усилий по поддержке это почти не требует (старый код уже отлажен), а пользователи будут довольны :) Конечно, будут куски, где части кода «дублируются», но я не сталкивался с ситуациями, когда это больше нескольких десятков строк на весь проект. Плюс, их очень легко потом убрать, когда вы решите отключить поддержку старой версии, потому что они явно помечены.
Как правило, просто в новой версии есть более оптимальный способ сделать что-то, благодаря новым API. Но если старый код работает, нет большого смысла в немедленном переписывании – вы только потеряете пользователей старых устройств. Ну и без этого можно жить.
Конечно, бывают ситуации, когда старый API вдруг стал работать не так в новой версии, и нужны специальные обработчики, но это не так часто и, как правило, это всего какие-нибудь несколько строк, отличающихся от версии к версии. Нет нужды отключать поддержку ради этого.
Последняя ситуация, которую я могу придумать – старые API пропали в новой версии совсем. Тут может теоретически понадобиться много переписывать, но, честно, я сходу не припомню у Apple ни одного API, которое бы пропало. Обычно API объявляют deprecated, но оно так и остаётся в системе на годы. Наверное, что-то и убирали, но были годы, чтобы к этому подготовиться.
Я веду к тому, что, как правило, если вы не хотите немедленно переписать всё на новых API, поддержка старой версии стоит очень мало и в плане времени, и в плане сложности кода.
API, которое бы пропало

Было. То за которое на них Касперский в суд подал. По сути это было как раз изменение, после которого не то что функция по другому вызывается, а вообще её больше нет.

Не говорю, что такого не было. Например, тот же UDID получать запретили. Просто это происходит настолько редко, что я даже сходу не вспомнил. А что за API с Касперским? История прошла мимо меня.
Тот же `UIAlertView` как работал, так и работает, хотя его объявили deprecated ещё в iOS 8.

Да. То что редко, я согласен.


С Касперским (и не только с ними, но вроде только Касперский в итоге пошел в суд) они закрыли функции, через которые был родительский контроль организован. Там много приложений пострадало. Они на замену им встроили в систему свой аналог (экранное время или как оно там)

То что исчезает редко — то вполне верю, в андроиде тоже многие вещи тянутся сквозь версии. Но ведь бывает еще и изменение поведения, по крайней мере в андроиде этот сценарий довольно распространен.

Тут две проблемы. Первая – не совсем проблема Apple: многие разработчики привыкли тестировать на GM, потому что от GM до релиза всегда было время. Их можно понять, но лучше бы они начинали тестировать пораньше, на то беты и выкладывают.
Но даже если вы – ответственный и дальновидный разработчик, который заранее заготовил обновление под новую версию iOS, проблема в том, что его можно опубликовать только с новой версией Xcode. И бета-версии запрещены. Обычно можно опубликовать обновление с GM-версии, что даёт разработчикам (и Apple) неделю на то, чтобы пройти ревью до выхода новой версии iOS. Таким образом, из-за действий Apple, все разработчики вынуждены опубликовать свои обновления за 1 день. А ведь ревью! Для всех разом! Сколько оно займёт? То есть, если у вас есть ломающий приложение баг в iOS 14, который можно исправить только средствами iOS 14 (новый API, к примеру), То ваши пользователи минимум пару-тройку дней не смогут пользоваться вашим приложением, и вы ничего не можете со своей стороны с этим сделать.
Но и это ещё не всё! Обычно можно публиковать обновления приложений с помощью GM-версии Xcode. Но в этот раз несколько разработчиков, как минимум, столкнулись с тем, что нельзя. Ждите релиза. А GM версию вначале выложили с одним номером билда, потом с другим, но тем же контентом, а потом с другим номером билда и другим контентом. И всё это за сутки.

ещё похоже дизайнера уволили и щас уголки скругляет программист какой-нибудь

iOS13 / iOS14:

image
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.