Так получилось, что теперь у меня есть опыт разработки под обе лидирующие мобильные платформы — iOS и Android. Неудивительно, что процесс программирования под эти операционные системы похож — сказывается мобильная специфика. Однако пересесть с iOS на Android оказалось тяжело.
Сначала я хотел написать о технических деталях, например, более сложном создании UI, который в Android верстается руками через xml-файлы. Или о неудобном подцеплении обработчиков кнопок. Или о механизмах персистентности. Или о сложной работе с анимацией... Потом я понял, что некоторые вещи в Android реально круты, например, Intents или Content Providers. Или адаптеры и курсоры для таблиц. Далее пришло понимание, что с технической точки зрения обе платформы имеют свои преимущества и недостатки, и кому-то, скорее всего, ближе подход Google, а кому-то, как мне, всё равно решения от Apple кажутся более логичными.
Другими словами, вроде всё хорошо, но почему-то всё равно остаётся ощущение, что разрабатывать под Android тяжелее и не так увлекательно. Разгадка кроется на поверхности — во всём виноваты инструменты разработки.
Первое, что вызывает недоумение (и культурный шок пользователя OS X) — феерическая корявость Eclipse. Xcode же, наоборот, поражает своей мощью, простотой и логичностью. Visual Studio может поспорить с ним в плане продвинутости, но, на мой взгляд, нет инструмента удобнее, чем Xcode. То же самое можно сказать и про симуляторы/эмуляторы, документацию, примеры, процесс отладки, настройки проекта, профилирование — во всех этих компонентах Apple далеко впереди.
Надеюсь, что Google исправит ситуацию, тем более что уже давно обещают выпуск Android Studio на базе IntelliJ IDEA. Пока же кодинг под Android напоминает неравную борьбу с Eclipse и ADT, после которой написать что-нибудь под iPhone — сплошное удовольствие.