С каждым новым обновлением ОС необходимо выполнять множество новых требований, иначе к определенному времени вы столкнетесь с «ограничительными мерами» в отношении вашего приложения. Обычно это делается во имя «безопасности» и «конфиденциальности», но на деле все сводится к прыжкам через ряд обручей для поддержки старых и новых телефонов, в результате чего кодовые базы становятся сложными и замусоренными условиями «если/то» для различных SDK. Такие дела.
Часто разработчики тратят огромное количество времени на то, чтобы убедиться в актуальности своего приложения, чтобы не столкнуться с ограничительными мерами. Это отвлекает от разработки функций и в конечном итоге увеличивает стоимость мобильной разработки и обслуживания. Да, приложения необходимо обновлять, и другие технологии, такие как веб, ничем не отличаются от этого. Но в браузерах/платформах очень редко можно встретить требования обновить веб-приложение или в противном случае столкнуться с последствиями, в то время как в мобильных устройствах это обычное явление.
Добавьте к этому алфавитный суп из сладких шаблонов проектирования, которые «нужно использовать», чтобы «оставаться актуальным», и вы будете делать что-то просто ради того, чтобы делать. Просто потому что Google, Apple или какая-нибудь уважаемая технологическая компания в своем блоге сказала, что это правильно. В итоге вы не можете понять, как отображается экран, потому что перепрыгиваете через несколько уровней абстракции, потому что так «рекомендуется» делать. Однако почти все разработчики, с которыми я общаюсь, ненавидят это, потому что это чертовски запутанно, но это принимается как необходимое зло. Поэтому, нехотя, мы с этим справляемся.
Но стоит ли вся эта возня с обручами того?
Для некоторых вещей, возможно. Но, вероятно, не для всех, более того, я бы сказал, что в большинстве случаев в этом нет необходимости. Вам действительно нужна Use Case реализация для обновления текстового поля? Да ладно. Серьезно? Это становится смехотворным.
Все сводится к тому, что большинство инженеров-программистов любят все усложнять просто потому, что им нравится реализовывать что-то умное. Я сам делал так в прошлом. Однако я очень люблю KISS и являюсь его поклонником уже более десяти лет. Отвлекусь… Вернемся к тому, что разработчики уходят с мобильных нативных платформ.
Теперь добавьте сюда длительное время сборки и сложность тестирования, и неудивительно, что многие разработчики мобильных нативных приложений переходят на что-то другое, более разумное, например, на веб. Конечно, у веба есть свои проблемы, но они мизерны по сравнению с проблемами мобильных нативных разработчиков.
Все это говорит о том, что Google и Apple все больше и больше затрудняют разработчикам выпуск и поддержку качественных мобильных приложений, но при этом рекламируют свои релизы как очередную великую вещь. При этом никаких реальных инноваций в мобильной сфере не происходит уже почти 10 с лишним лет.
- Новый UI тулкит? Круто, брат.
- Новая модель безопасности? Скукота.
- ИИ во всем? Смотрите! Белка!
Да, кстати, обновите свое приложение до X к дате Y, иначе мы ограничим ваше приложение, его использование и распространение.
Подождите, что?
Не, спасибо, не надо.
В первый раз, когда вы сталкиваетесь с этим, это просто неприятность, а потом это превращается в настоящую досаду, и вы понимаете…
Эти мобильные штучки уже не так интересны. Вы понимаете, что тратите все свое время на борьбу с платформой и очень мало времени на создание чего-либо. Создание — это самое интересное. Создание — это радость. Когда вы убираете радость из уравнения, это перестает приносить удовольствие, и тогда вы начинаете задаваться вопросом…
Есть ли что-то лучше? Что-то более увлекательное, что позволит мне создавать вещи быстрее, с быстрыми циклами обратной связи и более разумным тестированием?
Именно тогда мобильные разработчики часто пробуют что-то новое, например, веб-разработку (часто на основе JavaScript, Ruby, Python и т. д.), и обнаруживают, что жизнь на другой стороне безумно весела и продуктивна.
Не успеешь оглянуться, как некоторые из этих разработчиков создают собственные веб-продукты/проекты и постепенно покидают садистский и мазохистский мир мобильной разработки.
Есть ли способ исправить ситуацию, чтобы избежать подобного оттока разработчиков?
Честно говоря, я не уверен, что есть, но мне бы хотелось верить. Дело в том, что Google и Apple любят власть, которую они имеют над разработчиками приложений, потому что это дает им возможность создать сад, где они могут заставить разработчиков подчиняться правилам, которые они создают. Одним из таких критических правил является принуждение пользователей к моделям монетизации с помощью покупок в приложениях, которые в конечном итоге пополняют карманы Google и Apples за счет 30% налога на покупки, списывая их с вашего счета. Я знаю… Нет, дело не в деньгах, дело в контроле, а контроль — это то, что Google и Apple не собираются отдавать без боя.
Итак, у вас есть выбор: работать под гнетом правил Биг Теха, где они могут ограничивать, замедлять или даже запрещать ваше приложение по любой причине, которую сочтут нужной. При этом они забирают 30% ваших доходов. Не забудьте сказать спасибо, потому что вы знаете… «они оказывают вам услугу»… Что за фигня. В качестве альтернативы вы можете пойти туда, где все действительно бесплатно: в Интернет.
Лично я знаю, что в конце концов вернусь в Интернет. На самом деле, я никогда не покидал его полностью — это моя первая настоящая любовь к программному обеспечению. Так получилось, что сейчас я нахожусь в обоих лагерях (мобильном и веб). Но в конце концов я покину лагерь мобильных нативных разработчиков и вернусь в веб на все время. Все больше и больше разработчиков следуют этому примеру по тем же причинам — потому что мы устали от мобильных нативных вотчин.