Лайфхакер
Лайфхакер
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Выгодные покупки
Новости
Здоровье
Спорт и фитнес
Покупки
Технологии
Отношения
Кино
Реклама
МакрадарТехнологии
19 ноября 2013

Android vs iOS: какая платформа лучше для разработчиков

Фото автора Сергей Суягин
Сергей Суягин

Android vs iOS: какая платформа лучше для разработчиков

Android vs iOS. Извечная тема для интернет-баталий, которая уже успела порядочно всем поднадоесть. Не спешите пропускать текст этой статьи и сразу же переходить к изливанию своего единственно правильного мнения в комментариях. Сегодня мы снова поговорим о том, какая система лучше, но совсем в другом ключе.

Разработчики — те, кто создают ключевую часть любой платформы, то есть приложения. Именно от качества инструментов разработки, предоставляемых им платформой, зависит конечный результат. Так под какую систему лучше писать? На этот вопрос ответит опытный разработчик приложений, успевший засветиться как в App Store, так и в Google Play.

Выбор платформы — фундаментальная проблема для любого нового проекта. Android или iOS? С учётом последних новостей о том, что Android успешно захватил 80% рынка, выбор становится ещё сложнее. Не имеет значения, что менеджеры и прочие не слишком осведомлённые с техническими аспектами вопроса люди думают об этом. Другое дело — разработчики.

Каково их мнение? Преимущество той или иной платформы здесь напрямую зависит от её способности сделать их жизнь лучше.

И под словом «их» я имею ввиду «нашу». Помимо авторской деятельности на TechCrunch я занимаюсь разработкой в HappyFunCorp. Кроме того, не так давно я создал дуэт опенсорсных приложений в рамках своего проекта-любимчика. Именно эти приложения я буду использовать для сравнения.

Для справки: ранее я успел написать несколько Android и iOS приложений, как для личных нужд, так и по работе. В частности, я написал мобильные клиенты для своего новостного агрегатора Scanvine, который собирает необычно популярные истории из социальных медиа. Исходники моих приложений можно найти на Github (Android | iOS), а сами приложения доступны в Google Play и App Store.

Ну что же, пусть начнётся битва.

Среда

Вы по-прежнему можете писать код в текстовых редакторах, и многие так делают до сих пор, но с точки зрения производительности куда полезнее использовать интегрированную среду разработки (Integrated Development Environment — IDE).

В случае с Apple у нас есть Xcode, и работать в этой среде — удовольствие. Она гибкая, быстрая, мощная и способна помогать, не становясь излишне навязчивой. И она же становится всё лучше, несмотря на сложные и параноидальные меры, предпринимаемые Apple с целью удержания полного контроля над iOS приложениями и устройствами. Отладчик работает плавно, а симулятор — быстр и отзывчив.

А что насчёт Android? Ох, Android. На данный момент актуальной средой разработки под него является Eclipse, кастомизированный кучкой Android плагинов, и это ДО НЕПРИЛИЧИЯ плохо. Медленный, неуклюжий, нелогичный, зачастую откровенно непонятный, плохо продуманный, излишне сложный — сущий бардак. Его отладчик настолько неудобен, что большую часть времени я провожу в ковыряниях с логами, в то время как с Xcode в моём распоряжении настоящий инструмент-охотник за багами. Не стоит забывать и о эмуляторе Android, которому сначала требуется несколько минут для загрузки, а потом он не может подключиться к ADB.

Справедливости ради нужно сказать, что Google знает об этой проблеме, и они работают над новой Android Studio IDE:

В настоящее время Android Studio доступна в качестве раннего превью. Некоторые функции ещё не доделаны, либо не реализованы, что может вызвать ошибки. Если использование незаконченного продукта вызывает у вас неудобство, то вы можете загрузить и продолжить использовать ADT Bundle (Eclipse с плагином ADT).

Приятно видеть, что они работают над проблемой, но всё же удивительно — через 4 с половиной года после покупки моего первого Android подобный бардак по-прежнему является пределом совершенства, которого смогла достичь среда разработки под Android.

Тут побеждает iOS, безоговорочно.

Конфигурирование

Под внешним лоском Xcode и Objective‑C скрываются ужасы Лавкрафта из эпохи программирования семидесятых. Шучу, я шучу… но всё же. Макросы и файлы заголовков, проекты, цели, схемы и конфигурации сборки, и ужасающе-пугающий список параметров сборки. А ещё невероятные открытия в стиле «Оу, ваш сторонний код не поддерживает ARC? Просто добавьте флаг ‑fno-objc-arc». Просто? Нет!

В Android у тебя есть один файл манифеста, и Eclipse как правило полностью пересобирает приложение каждый раз, когда ты сохраняешь какой-либо файл. Мне бы хотелось большей ясности в случаях, когда ты, к примеру, получаешь сообщение об ошибке из-за того, что некорректно настроил права, но это незначительный недочёт. Конфигурирование Android приложений выполняется просто и элегантно.

Тут побеждает Android.

Дизайн интерфейса

Казалось бы, здесь Apple безусловно выйдет победителем. С их конструктором ты получаешь возможность легко и быстро собрать простой и красиво выглядящий интерфейс. Проблема в том, что чем дольше я работал с конструктором, тем меньше он мне нравился. Это ещё один момент, когда открывается сложность конфигурирования — инструмент идеально подходит для создания простых вещей, но с развитием приложений простые вещи становятся вдруг сложными, и мне действительно не нравятся эти многоэкранные Storyboards, которые Apple добавила примерно год назад.

В теории Android снабжается сопоставимыми инструментами визуализации, но на практике ты пишешь XML файлы, содержащие инструкции по отрисовке, что при определённом везении приводит к правильному отображению приложения на всём многообразии форматов экранов Android устройств. Apple двигается тем же путём, и их Auto Layout явно затачивается под будущее расширение вариаций экранов на iOS устройствах.

В то же время Android предоставляет разработчикам наборы иконок, тогда как iOS разработчики вынуждены обращаться к сторонним сервисам, либо рисовать собственные значки.

В этом раунде победителя выбрать сложнее, но я отдам предпочтение iOS по двум причинам. Во-первых, она по-прежнему гораздо проще — всего 3 размера экрана (включая iPad) и 2 формата соотношения сторон. Многообразие Android в этом плане добавляет сложностей. Второй момент заключается в привлекательности дефолтных визуальных элементов (всплывающие меню, сообщения и так далее). У iOS всё это выглядит куда привлекательнее.

Тут побеждает iOS.

Язык

Android приложения пишутся на Java, iOS — на Objective‑C. Существуют исключения наподобие Xamarin, но в большинстве случаев такое разделение справедливо.

Я учился писать на Java, и поначалу особо не думал об Objective‑C, во многом из-за его громоздкости.

Строка вроде:

String s2 = s1.replace(“abc”,”xyz”);

Превращается в нём в:

NSString *s2 = [s1 stringByReplacingOccurrencesOfString:@"abc" withString:@"xyz"] ;

Но в процессе знакомства этот язык мне очень понравился. Он лучше и чище, чем Java.

При этом у Java тоже есть плюсы. К примеру, более простое отслеживание и отлавливание ошибок. Несколько последних лет у Android было ещё одно очень серьёзное преимущество в плане сбора мусора, то есть автоматического очищения памяти от ненужных объектов, но теперь у iOS умеет то же самое, и преимущество фактически сошло на нет. С учётом последнего факта победа здесь достаётся iOS.

Тут побеждает iOS.

API

У Android и iOS есть огромные библиотеки программного обеспечения, доступные разработчикам, и если говорить в общем, то они довольно схожи: API для работы функций самого телефона и связи, API для доступа в сеть, арсенал средств просмотра, включая мощный WebView — практически аналог полноценного браузера.

Большинство работы при этом выполняется контроллерами, и в общем iOS ViewController является эквивалентом Android Activity.

Чего действительно нет у Android, так это полноценного аналога фреймворка Core Data. Да и в целом система чище и лучше спроектирована. Для примера просто сравните эти два класса в iOS, которые выполняют большую часть работы в приложении, с этими тремя эквивалентными классами в Android. В конце концов, мне гораздо больше нравится работать с iOS CollectionViewController, нежели с Android ListAdapter.

Ещё одна важная метрика: количество строк кода. Мои версии приложений для обеих платформ фактически идентичны по возможностям и функциям, но в iOS на их реализацию потребовалось 1596 строк моего кода, включая файлы заголовков, а при создании Android версии при тех же функциях потребовалось 2109 строк. Разница в 32%.

Тут побеждает iOS.

Интернет

В наши дни подавляющее большинство приложений являются скорее проводниками в Интернет, нежели самостоятельными программами. Это очень важный момент, и его стоит рассмотреть отдельно. В арсенале обеих систем есть множество инструментов и API для реализации взаимодействия с Сетью. Также обе платформы реализуют практически полноценный браузер, который можно встроить в приложение как угодно и куда угодно.

Соединения должны работать в фоне и не мешать самому приложению. Для реализации мультипоточности в Android используется AsyncTask. Он работает очень хорошо и позволяет легко определить, находится ли пользователь в Сети в данный момент. iOS также располагает подобными возможностями, но они реализованы на довольно низком уровне и не удовлетворяют потребностям разработчика.

Однако ‚существует множество сторонних библиотек с открытым исходным кодом, и они делают жизнь куда проще. Я использовал AFNetworking, и она работает так же прекрасно, как о ней говорят в рекламе.

Тут побеждает Android по умолчанию, и iOS при использовании сторонних библиотек.

Шаринг

Насколько легко вам расшарить что-либо из конкретного приложения в Facebook*, Twitter, Evernote и прочие сервисы? Казалось, что это будет первый раунд, в котором Android выиграет 100% нокаутом: у неё есть мощная система взаимодействия между приложениями под названием Intents, да и в общем Android куда более лоялен к запросу и передаче данных между приложениями.

В общем же Apple значительно догнала конкурента в возможностях шаринга. Можете не верить мне на слово, посмотрите код функции «Поделиться историей» в Scanvine на Android и на iOS. Единственная причина, по которой код iOS больше — наличие в нём более гибкого трекинга из Google Analytics, нежели в Android.

Тут ничья.

Фрагментация

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

Тут побеждает iOS.

Публикация приложения

Публикация Android приложения исключительно проста. Инструмент в Eclipse позволяет быстро собрать приложение, и у тебя в руках уже есть готовый apk файл. Отправляйте его по емейлу, размещайте на сайте, либо загрузите в Google Play, сделав его доступным по всему (почти) миру буквально за час. Тут открывается возможность отслеживать статистику установок и креш-репорты вплоть до конкретной строчки кода, из-за которой приложение вылетает. При необходимости апдейт можно выкатить мгновенно.

Публикация в App Store — это кошмар. Мой друг советует выделять в календаре разработки как минимум день на войну с сертификатами и профилями дистрибуции. Не важно, сколько раз вы делали это раньше, и насколько проще пытается сделать этот процесс очередная версия Xcode — у вас всё равно будет много проблем. Тестирование приложения станет ещё большей проблемой, если только не использовать TestFlight. Добавим к этому iTunes Connect, который не идёт ни в какое сравнение с Google Play Developer Console.

Тут побеждает Android, безоговорочно.

Победитель

Им становится iOS, причём с некоторым отрывом. У Android есть преимущества, но в целом написать хорошее приложение под iOS остаётся куда проще, чем под Android. Добавьте сюда тот факт, что пользователи iOS более платёжеспособны, и вы получите ответ на вопрос, какая платформа должна стать приоритетной для стартапа. Вероятно, разрыв сократится после выхода Android Studio, позволив таким образом решить некоторые проблемы… но не все.

Кстати, мой основной телефон — Nexus 4, и я им очень доволен.

(via)

*Деятельность Meta Platforms Inc. и принадлежащих ей социальных сетей Facebook и Instagram запрещена на территории РФ.

Если нашли ошибку, выделите текст и нажмите Ctrl + Enter

Лучшие предложения

Хитовый видеорегистратор 2025 года от 70mai отдают со скидкой 59%

Хитовый видеорегистратор 2025 года от 70mai отдают со скидкой 59%

Надо брать: Honor 400 Lite с 12 ГБ ОЗУ и экраном 120 Гц дешевле 15 000 рублей

Надо брать: Honor 400 Lite с 12 ГБ ОЗУ и экраном 120 Гц дешевле 15 000 рублей

Что подарить ребёнку? 10 идей для детей от 0 до 10 лет

Что подарить ребёнку? 10 идей для детей от 0 до 10 лет

15 удобных кроссовок со скидками до 68% на распродаже 11.11

15 удобных кроссовок со скидками до 68% на распродаже 11.11

робот пылесос tuvio

Робот-пылесос Tuvio купили 5 тысяч раз. Сейчас его отдают со скидкой 65%

Надо брать: утеплённые кроссовки от Golden Camel со скидкой 59%

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

Надо брать: пауэрбанк Baseus на 145 Вт с выдвижным проводом и скидкой 56%

Надо брать: пауэрбанк Baseus на 145 Вт с выдвижным проводом и скидкой 56%

Самый популярный рюкзак от Tigernu отдают со скидкой 62%

Самый популярный рюкзак от Tigernu подешевел в два раза на распродаже AliExpress

Это интересно
VK Education запускает кейс-чемпионат для студентов с призовым фондом 1 млн рублей

VK Education запускает кейс-чемпионат для студентов с призовым фондом 1 млн рублей

Как найти работу, где помогают расти и поддерживают на старте

Как найти работу, где помогают расти и поддерживают на старте

В России запустили производство вакцины от вируса папилломы человека полного цикла

В России запустили производство вакцины от вируса папилломы человека полного цикла

С высоты профессии. 3 вдохновляющие истории девушек, которые чинят и проектируют самолёты

С высоты профессии. 3 вдохновляющие истории девушек, которые чинят и проектируют самолёты

Комментарии
Ihor Vovk
19.11.13 20:42
Наверное, имеется ввиду, в текстовых редакторах
Руслан Шашков
06.12.13 06:12
Но ведь есть уже давно AppCode того же разработчика, который Android Studio делает (http://www.jetbrains.com/objc/). Это я по поводу ремарки под заголовком "Победитель".
Trots Anatoly
14.12.13 09:35
раз с nexus 4, и коммент пишу тоже с
Артём Шалаев
31.01.14 20:11
Для андроид всегда была и есть лучшая IDE - Intellij IDEA. На основе которой и делается Android Studio. Так что первый пункт в топку. Как может быть простая и лаконичная java хуже этого перегруженного архаичного objective-c? А поймать исключение - вообще целая эпопея ) И как в шаринге может быть ничья, если в андроиде шаринг встроен в систему, а в ios, если мне не изменяет память, это все делается сторонними либами, где поддерживаемые приложения весьма ограничены. На счет простоты - ну не знаю... я изучаю сейчас ios после android. И мне очень сложно. То, что я делал в 2 клика, в 2 строчки кода на android, я хз как сделать это на ios... как-то не логично... пока понравился сторибоард разве что. Но к примеру, такая мелочь, как клавиатура, которая перекрывает инпуты - для андроида вообще нонсенс, т.к. система сама заботится о расположении вью и клавиатуры относительно друг друга.
Артём Шалаев
31.01.14 20:11
Для андроид всегда была и есть лучшая IDE - Intellij IDEA. На основе которой и делается Android Studio. Так что первый пункт в топку. Как может быть простая и лаконичная java хуже этого перегруженного архаичного objective-c? А поймать исключение - вообще целая эпопея ) И как в шаринге может быть ничья, если в андроиде шаринг встроен в систему, а в ios, если мне не изменяет память, это все делается сторонними либами, где поддерживаемые приложения весьма ограничены. На счет простоты - ну не знаю... я изучаю сейчас ios после android. И мне очень сложно. То, что я делал в 2 клика, в 2 строчки кода на android, я хз как сделать это на ios... как-то не логично... пока понравился сторибоард разве что. Но к примеру, такая мелочь, как клавиатура, которая перекрывает инпуты - для андроида вообще нонсенс, т.к. система сама заботится о расположении вью и клавиатуры относительно друг друга.
Володя Кириченко
15.03.16 10:36
Ещё один вопрос: Насколько мне известо, чтобы можно было публиковать свои приложения либо игры сколько нужно заплатить на каждой из платформ чтобы иметь возможность чтобы опубликовать своё приложение ?
Алексей Пономарь
15.03.16 10:38
Для iOS аккаунт разработчика стоит 100$ в год, для Android — единовременно 25$
Володя Кириченко
15.03.16 10:39
Спасибо :)
Что вы могли пропустить
DJI представила Neo 2 — дрон для новичков с голосовым и жестовым управлением
DJI представила Neo 2 — дрон для новичков с голосовым и жестовым управлением
0
Вчера
Новости
Устройства
Надо брать: Honor 400 Lite с 12 ГБ ОЗУ и экраном 120 Гц дешевле 15 000 рублей
Надо брать: Honor 400 Lite с 12 ГБ ОЗУ и экраном 120 Гц дешевле 15 000 рублей
0
Вчера
Покупки
Устройства
Google не будет полностью ограничивать установку приложений из сторонних источников
Google не будет полностью ограничивать установку приложений из сторонних источников
0
Вчера
Android
Новости
Как правильно перезагружать роутер и зачем это делать
Как правильно перезагружать роутер и зачем это делать
0
Вчера
Ликбез
Технологии
Apple добавила в MacBook эффект кольцевой лампы для видеозвонков
Apple добавила в MacBook эффект кольцевой лампы для видеозвонков
0
Вчера
Новости
Технологии
Представлен бюджетный смартфон Nubia V80 Design с ИИ-кнопкой и дизайном как у iPhone 17 Pro Max
Представлен бюджетный смартфон Nubia V80 Design с ИИ-кнопкой и дизайном как у iPhone 17 Pro Max
0
Вчера
Новости
Устройства
Инсайдер раскрыл название, дату релиза и характеристики «трикладушки» Samsung
Инсайдер раскрыл название, дату релиза и характеристики «трикладушки» Samsung
0
Вчера
Новости
Устройства
Надо брать: пауэрбанк Baseus на 145 Вт с выдвижным проводом и скидкой 56%
Надо брать: пауэрбанк Baseus на 145 Вт с выдвижным проводом и скидкой 56%
0
Вчера
Покупки
Устройства
Раскрыт официальный дизайн Honor 500 и 500 Pro — они будут очень похожи на iPhone Air
Раскрыт официальный дизайн Honor 500 и 500 Pro — они будут очень похожи на iPhone Air
0
Вчера
Новости
Устройства
Valve представила гибрид консоли и ПК Steam Machine — а ещё новые VR-шлем и контроллер
Valve представила гибрид консоли и ПК Steam Machine — а ещё новые VR-шлем и контроллер
0
Вчера
Новости
Устройства
OpenAI представила GPT‑5.1 — более умную ИИ-модель с новыми пресетами личности
OpenAI представила GPT‑5.1 — более умную ИИ-модель с новыми пресетами личности
0
Вчера
Веб-сервисы
Новости
Надо брать: субфлагман Realme GT7 с аккумулятором 7 000 мА·ч и скидкой 64%
Надо брать: субфлагман Realme GT7 с аккумулятором 7 000 мА·ч и скидкой 64%
0
12 ноября
Покупки
Устройства
Названы 10 самых продаваемых смартфонов на «Чёрной пятнице» в Китае
Названы 10 самых продаваемых смартфонов на «Чёрной пятнице» в Китае
0
12 ноября
Новости
Устройства
Надо брать: компактный 8-дюймовый планшет Xiaomi Pad Mini со скидкой 43%
Надо брать: компактный 8-дюймовый планшет Xiaomi Pad Mini со скидкой 43%
0
12 ноября
Покупки
Устройства
Microsoft прекратила поддержку двух версий Windows 11
Microsoft прекратила поддержку двух версий Windows 11
0
12 ноября
Windows
Новости

Новые комментарии

Аватар автора комментария
Кроха Картоха24 минуты назад

0 / 0

всё самое вкусное написали)))
6 продуктов, которые помогают уменьшить стресс и беспокойство
Аватар автора комментария
Роман Аяпергенов1 час назад

0 / 0

Ежедневно принимаю холодный душ после утренней пробежки. После этого готов лететь в космос. Чувствую себя на максимуме энергии и скорости мышления. Это конечно не единственное решение. Нужен системный подход.
Проверка лайфхака: помог ли мне контрастный душ быстрее просыпаться
Аватар автора комментария
Roman1 час назад

0 / 0

Купил себе такой HONOR X16 (BRI-7211)в прошлом году, сверх чёткий экран 120 герц, в любом браузере можно держать бесконечное число вкладок для офисных работ он шустрый, Word или Excel файл запускает за 1 секунду AutoCad за 4 секунды, тянет любую программу и игру бесшумный холодный такое ощущение что там пассивное охлаждение, Windows летает запуск за 5 секунд ставил на него три вида Linux ни каких проблем встроенное в процессор видеоядро 780m удивляет, играю онлайн с сыном в Фортнайт выдает чистые 60 фпс при том что сынуля сидит за мощным ПК видеокартой 4080 и имеет 120 фпс отличный результат не нарадуюсь, заказывайте именно серию BRI-7211 (идет в описании товара) Этот ноутбук Вам хватить минимум на 10 лет, на любые задачи, есть нейропроцессор для продвинутой обработки фото и видео, перевода в режиме реального времени и др. В начале 2025 года его продавали за 135 000 рублей я нашел его в 2 раза дешевле брал здесь https://market.yandex.ru/cc/7zmiiR ближайшее время планирую купить еще дочке
Обзор Honor MagicBook X16 AMD 2025 — бюджетного офисного ноутбука, на котором можно играть
Аватар автора комментария
Olga Gordeeva9 часов назад

0 / 0

А вилкой - то зачем протыкать?
Насыпной пирог с творогом
Не просто плохое настроение: 6 фактов о депрессии, которые нужно знать каждому

Не просто плохое настроение: 6 фактов о депрессии, которые нужно знать каждому

Лайфхакер
Информация
О проектеРубрикиРекламаРедакцияВакансииДля начинающих авторов
Подписка
TelegramВКонтактеTwitterViberYouTubeИнициалRSS
Правила
Пользовательское соглашениеПолитика обработки персональных данныхПравила применения рекомендательных технологийПравила сообществаСогласие на обработку персональных данныхСогласие для рекламных рассылокСогласие для информационной программы
18+Копирование материалов запрещено.
Издание может получать комиссию от покупки товаров, представленных в публикациях