Connect with us

Разработка

Кто украдет Android у Google?

Бывший сотрудник Google рассуждает о самых больших проблемах платформы Android.

Анна Гуляева

Опубликовано

/

     
     

Дисклеймер: Это мои персональные мнения. Многие из них, вероятно, неверны. Я не говорю от имени своего работодателя Grab. Читайте это с долей скептицизма.

Я до сих пор не уверен, почему моя статья “Почему я ушел из Google” привлекла столько внимания. Каким-то образом её перевели на 80 языков, и в тот день популярнее неё стала только колонка о сексе от Натали Портман, что было намного интереснее.

Как бы то ни было, на мой текст поступило несколько интересных ответов. Человек из Пакистана предложил купить мне пиво, если я когда-нибудь буду в его городе. Кто-то из Лондона предложил мне тысячу долларов за часовой разговор по телефону о рынке голосового поиска, и это предложение я вежливо отклонил, так не знаю ничего полезного об этом. На вечеринке ко мне подошел парень из России и сказал, что у меня много врагов.

Многие люди не поняли ключевого посыла и спрашивали: “Это же просто сервис для поездок?” Я пытался нарисовать более широкую картину, но это прошло мимо людей, поэтому не думаю, что я справился. Когда-нибудь я вернусь к этой точке и посмотрю, могу ли я что-то исправить. Но не сегодня. Сегодня я хочу немного поговорить об Android: это только мое персональное мнение в качестве любителя-разработчика приложений для Android и iOS.

Я думаю об Android с тех пор, как мы пытались нанять мобильных разработчиков, что должно было быть простым заданием. Но оказалось, что сейчас они нужны на рынке больше всего. Они нужны Grab и всем вокруг, но людей недостаточно.

Почему же всем нужны мобильные разработчики? Потому что веб медленно умирает. Мои знакомые почти в каждом отделе Google показывали мне мрачные графики, которые показывают, что использование веб постепенно падает, так как весь мир переходит на мобайл. Вероятно, вы помните, как Facebook перешел с web-first на mobile-first? Facebook тогда почти умер. Я не имею в виду, что компания погибла бы за одну ночь, но они прошли через экзистенциальный кризис, когда поняли, что должны стать мобильной компанией или уйти в забвение.

Им удалось, но это было непросто, так как стек разработки на Android — это большая проблема.

Кухня Android

В Google многие инженеры слишком высокомерны, чтобы заниматься мобильным или веб-программированием. “Я не занимаюсь фронтендом”, — говорят они с максимальным снобизмом. Это явление я называю “DAG презрения”, где DAG означает направленный ациклический граф, который похож на блок-схему. На вершине горы высокомерия находятся инженеры поиска, которые пишут на C++, который считается круче Java, которая круче Python, который круче JavaScript. А поиск считается круче рекламы, которая круче приложений, которые круче инструментов, которые круче фронтенда. Программисты любят презирать друг друга. И если вам не повезло работать мобильным инженером в Google, вы застряли у подножия нескольких тотемных столбов, с которых на вас все смотрят сверху вниз.

Я занимался несколькими вещами, от системного программирования систем до масштабной инженерии данных, дизайна компилятора, сервисных фреймворков, разработки игр, веб-программирования и мобильной разработки, и могу сказать вам, что фронтенд-разработка ничуть не проще, если не сложнее. В бэкенде всё чисто, организованно, лежит по полочкам и параллельно, это рай по сравнению с беспорядком, в который превратилось веб-программирование за последние 25 лет. А веб-программирование — это поездка на Бали по сравнению с мобильной разработкой, в том числе и iOS.

А Android хуже всего. Android-разработчики — это герои. Программирование на Android — это ждать двадцать минут, чтобы увидеть, что случится, если вы измените одну строку кода. И любое изменение с вероятностью в 80% не будет работать с первого раза, так как матрица совместимости функции невероятно непонятна. Конечно, вы можете использовать X, и вы можете использовать Y, но вы не можете использовать X вместе с Y.

А совместимость с устройствами? Для моей игры Wyvern есть несколько сердитых отзывов в Google Play, так как она почему-то не работала на устройствах LG. Я купил на eBay телефон LG, чтобы протестировать баг, и обнаружил, что существует два API для получения кликов в списке прокрутки, но один из этих API не работает на LG.

Вот что произошло: несколько конкурентов придумали свои фреймворки для Android. Я говорю не просто о библиотеках для недостающих функций, а о замене для целого стека разработки Android. У Microsoft есть Xamarin, у Adobe — Cordova, у Facebook — React Native. Посмотрите: Framework7, Appcelerator Titanium, Onsen, Sencha, Kendo, XDK, Ionic, Mobile Angular, Unity. Что происходит? Как будто все, кто пытался заниматься Android-разработкой, сдались и решили создать свой стартап, чтобы сделать все лучше.

А Google ответил: “Вот так? Вы не можете соревноваться с нами, потому что мы собираемся соревноваться сами с собой!” – и компания запустила Flutter, серьезный стек для Android-разработки, который конкурирует с нативным Android, и существование которого команда Android отказывается признавать.

Нападение на Android

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

Некоторые из них (особенно React Native) очень близки к этому. Если одному из них удастся занять достаточно большую долю на рынке, то Android станет частью экосистемы, которая уже не будет под контролем Google.

Это, кажется, не слишком большая проблема, так как у Google есть контроль над Google Play, производителями оборудования, лицензиями и так далее. Но если все мобильные разработчики начнут использовать фреймворк X, тогда любой другой производитель оборудования или ОС может создать свою платформу (например, Windows), которая будет поддерживать фреймворк X напрямую, и это полностью устранит Google из процесса. И многие, если не все, компании хотели бы это сделать.

В Google решили ничего не менять. Они удваивают ставку на нативное Android-программирование с официальной поддержкой языка Kotlin, что было большим шагом для нативных Android-программистов. Мне нравится Kotlin — это будущее Java. Но давайте признаем: мобильный рынок движется не туда. Люди пишут кросс-платформенные приложения по двум причинам. Во-первых, они хотят, чтобы приложение компании работало на двух платформах и им не пришлось делать двойную работу. Во-вторых, программирование на Android все ещё имеет много проблем, даже с Kotlin, поэтому многие компании начинают все с нуля с чем-то более простым.

Если вы разрабатываете на Android или iOS, вам стоит попробовать React Native, чтобы в течение 30 секунд понять, насколько это удобнее, только если вы не создаете игру, потому что тогда вам все равно придется использовать Unity.

Для приложений на тему бизнеса и продуктивности React Native предлагает хорошую производительность, кросс-платформенную совместимость, невероятные инструменты и улучшенную скорость разработки. Помните, что я сказал, что увидеть изменение одной строки в обычном Android-стеке занимает 20 минут? В React Native все мгновенно.

Это значит, что вы можете запускать функции в 10 раз быстрее, что означает более быстрое время выхода на рынок и другие преимущества. Отказ от нативного программирования в пользу быстрых кросс-платформенных фреймворков — это выигрышная стратегия. Я подозреваю, что отдел Android в Google не знает, хорошим или плохим решением для них являются кросс-платформенные фреймворки, но, видимо, они считают, что плохим, иначе они вкладывали бы больше сил во Flutter.

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

Чтобы это исправить, Google работает над “официальной” системой сборки приложений Android, которая основана на сложной системе Gradle, но Google добавляет несколько специфических для Android вещей. Она становится все сложнее и сложнее, и иногда даже сами инженеры не понимают различия между её частями. В чем разница между build type, product flavor и flavor dimension? Они добавляют сложности, потому что считают, что эти функции важны для больших приложений и компаний. Ирония здесь в том, что большие компании отказываются от неё в пользу Buck — системы сборки для Android от Facebook.

Хотя Google понимает, что существует проблема, они ставят на решения, которые никому не нравятся: нативный стек с безумно усложненной системой сборки Gradle. И они теряют разработчиков, а рынок занимают сторонние платформы.

Фланговые атаки

На Android нападают не только со стороны стека разработки. Существуют и другие способы, которыми кто-то может “украсть” Android у Google. Один из подходов — создать более успешный магазин. Google Play вызывает множество споров на уровне компаний и государств, потому что Android является открытой системой, но Google Play на 100% контролируется Google. Cyanogen был первой попыткой, которую поддерживали Microsoft и Twitter. Хотя она провалилась из-за внутренних споров внутри компании, это была первая серьезная попытка атаковать уязвимое место – Play Store.

Кто ещё пытается сделать конкурирующий магазин? Вы угадали — Джефф Безос, потому что нельзя стать первым триллионером в мире, не украв Android у Google. Магазин приложений Amazon уже впечатляет, и в гонке Amazon и Google Amazon со временем становится все лучше.

Существует и третья атака на Android, прямо в больное место — в рекламу. Android-приложение Facebook стало таким большим, что стало настоящей платформой, и теперь вы можете предлагать свою рекламу в приложении напрямую. Например, The New York Times может купить там размещение рекламы, и все деньги уйдут Facebook.

В Китае то же самое сейчас делает WeChat. Приложение WeChat стало процветающей платформой для создания и развертывания других приложений и рекламы. Это целый маркетплейс внутри самого приложения. Facebook и WeChat сами по себе стали рекламными каналами.

Будем честны: единственная причина, по которой Google создала Android, — это потому, что он является каналом рекламы. Google — это крупнейшая рекламная компания в мире, и они всегда находятся под угрозой от других компаний, которые хотят привлечь ваше внимание в свои каналы вместо каналов Google. В этом заключается и атака на сетевую нейтральность, так как провайдеры хотят показывать вам рекламу сами.

Когда вы видите как компания вроде Facebook, Google, Amazon или Microsoft пытаются попасть в новый бизнес, это борьба за каналы. Google Chrome — это канал для контроля над доступом в веб. XBox — это канал против PlayStation, который был угрозой для PC в качестве канала для выхода онлайн из дома. Youtube, Instagram и WhatsApp — это каналы воспроизведения. Контентная война HBO, Amazon и Netflix тоже идет за канал воспроизведения. Amazon Echo — это канал воспроизведения, а ваш дом — это одна из крупнейших битв за канал. Даже Google-карты — это канал воспроизведения локальной рекламы. Компании хотят, чтобы вы смотрели свой любимый контент через их канал, чтобы они получали доход от рекламы или подписок.

Android — это, вероятно, самый важный канал Google, если не сейчас, то через десять лет. Они не могут потерять над ним контроль. Google подвергается атакам с трех разных сторон, и ни на одну из этих угроз компания не реагирует должным образом.

Тем временем…

Это может казаться бесполезной спекуляцией, но на нас в Grab это влияет, так как мы принимаем важные решения об использовании стека технологий для мобильных приложений, которые являются каналами для наших пассажиров, водителей, агентов и так далее.

Если существует какой-либо риск того, что Google потеряет контроль над Android, лучше всего будет использовать кросс-платформенный фреймворк. И если вы находитесь в условиях жестокой конкуренции и вам нужен быстрый запуск, вам нужно что-то другое, а не нативный Android. Android все ещё гонится за Gradle, и он никогда не будет быстрым, потому что существующие проблемы сложно скрыть.

Среди кросс-платформенных вариантов React Native кажется победителем. Он нравится веб-разработчикам, которые составляют самую большую аудиторию разработчиков в мире. С этим сложно состязаться. Grab начал вкладывать силы в React Native, чтобы увидеть, смогут ли он выполнить свои обещания.

Это хорошее время быть мобильным разработчиком. Если вы разработчик, который не занимается мобайлом, стоит рассмотреть смену деятельности. Опыт в бэкенде и мобильной разработке превратит вас в full stack-разработчика, ещё более редкого единорога.

 

Комментарии
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement
Click to comment

You must be logged in to post a comment Login

Leave a Reply

Новости

Интересные материалы: 25.09

У нас нова куча анимаций, UI, реджектов и есть даже долг данных от Riot.

AppTractor

Опубликовано

/

Автор:

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

Комментарии
Продолжить чтение

Медиа

Android Dev Подкаст. Выпуск 75. Новости об осенних релизах, либах и девфестах

У нас целый урожай релизов: Kotlin 1.3RC, OpenJDK11, Androidx1.0, и даже Flutter готовит свой 1.0RC! Ну и то, что вы любите: ругаем кривые либы и мамкиных архитекторов, хвалим девфесты и хорошие статейки. А ещё Денис свалил из Сингапура, а к нам вернулся блудный сын Даня!

AppTractor

Опубликовано

/

Автор:

У нас целый урожай релизов: Kotlin 1.3RC, OpenJDK11, Androidx1.0, и даже Flutter готовит свой 1.0RC! Ну и то, что вы любите: ругаем кривые либы и мамкиных архитекторов, хвалим девфесты и хорошие статейки.

А ещё Денис свалил из Сингапура, а к нам вернулся блудный сын Даня!

Материалы:

Комментарии
Продолжить чтение

Новости

Интересные материалы: 24.09

Начинаем новую неделю с чатов, дизайн-процессов и трендов.

AppTractor

Опубликовано

/

Автор:

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

Комментарии
Продолжить чтение

Новости

Digest MBLTdev: Новости для iOS разработчиков №187

В течение недели топовые iOS-разработчики Руслан Гуменный, Саша Черный, Сергей Бендак, Вадим Дробинин, Юрий Петухов и директор по продукту VK Иван Козлов собирают для вас интересные и полезные ссылки на статьи, необходимые для прочтения каждому начинающему и опытному разработчику. В каждом выпуске – новости, коды, инструменты, дизайн и прочее.

e-Legion

Опубликовано

/

Автор:

Герой недели — Amazon. Отсыпали от души. Столько новых устройств как-то даже не припоминается. Микроволновка, настенные часы и устройство для автомобиля, которые позволяют использовать голосовые команды Алексы. Разве не прекрасно? Команда микроволновке «приготовь попкорн», команда автомобилю без необходимости запускать приложение — это же здорово. А один из членов Дорогой редакции недавно пытался связать Айфон с CarPlay в Genesis G70 и не смог. Не соединяет и всё. Машина за 2 млн рублей, в которой ты не смог с первого раза подключиться к CarPlay или Echo Auto за 3200 рублей? Да-да, сравнение не блещет корректностью, но идею вы поняли.

Неделя до MBLT DEV 2018

Посмотрите приветствие от спикера MBLT DEV Джона Фокса из Netflix. Посмотрите до конца, оно классное! Программа конференции опубликована. Спикеры пакуют чемоданы. Пора и билетом обзавестись.

WWW.FACEBOOK.COM

Foundation Release Notes

Про iOS 12 последние несколько месяцев много пишут и говорят, но конкретный список технических нововведений только-только опубликовали.

DEVELOPER.APPLE.COM

Migrating to Unified Logging, Swift Edition

До сих пор используете NSLog и print? Пора переходить на систему Unified Logging, она и к ресурсам менее требовательна, и обработку подобных логов выполнять проще. Об особенностях использования os_log рассказано в этом материале.

WWW.BIGNERDRANCH.COM

Bloom Filters and Swift 4.2

Hasher — универсальная хэш-функция, добавленная в Swift 4.2. На примере показано её применение для построения структуры данных, которая используется в Medium для отслеживания статуса прочтения статей.

KHANLOU.COM

Swift Associated Types With Default Values

Одной из недокументированных особенностей Associated Types является возможность установки значения по умолчанию. В этом случае при поддержке протокола можно не определять typealias. В материале показано практическое применение для этого кейса.

SWIFTROCKS.COM

Animating Table View Cells Display

Пример того, как можно улучшить визуальное восприятие пользователем таблиц в вашем приложении. На простых прототипах показаны реализации анимации движения, появления и отскока ячеек.

WWW.VADIMBULAVIN.COM

Type-Safe Swift Models

Автор статьи рассказывает о том, как можно улучшить подход к проектированию моделей в связке с Codable.

BLOG.USEJOURNAL.COM

Marzipan: Porting iOS Apps to the Mac

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

PSPDFKIT.COM

Fireworks in UIViews

Пятничное. Порадуйте ваших пользователей маленьким фейерверком.

SZULCTOMASZ.COM

Sublime Merge

Если вас по какой-то причине не устраивает консоль, разработчики редактора Sublime выпустили клиент для Git.

WWW.SUBLIMEMERGE.COM

Supporting iPhone XS Max and XR

Очерк о размере дисплеев, разрешениях, масштабировании и size-классах в новых моделях iPhone.

USEYOURLOAF.COM

Designing for Siri Shortcuts

Siri Shortcuts уже доступны для всех, поэтому самое время озадачиться нюансами их проектирования.

BLOG.MAXRUDBERG.COM

Apple Tech Talks

Apple рассказывает об особенностях адаптации приложений для новых iPhone XS и XR, а также о подходах к разработке дизайна для Apple Watch Series 4.

DEVELOPER.APPLE.COM

Apple Watch Series 4 Faces without CGI effects

Красивое видео о том, как новые анимации для часов были сняты без использования компьютерных эффектов.

APPLEINSIDER.COM

What’s new in Swift 5.0

Буквально несколько дней назад состоялся релиз Swift 4.2, а у нас уже есть возможность познакомиться со Swift 5.0. Raw strings облегчают работу при формировании регулярных выражений, а метод count(where:) для коллекций является заменой связки методов filter() и count(). О других нововведениях можно узнать из примеров в статье.

WWW.HACKINGWITHSWIFT.COM

Предыдущие выпуски Digest MBLTDEV и подписка доступны на официальном сайте. Всё бесплатно и никакого спама, честно!

Комментарии
Продолжить чтение

Реклама

Наша рассылка

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Вакансии

Популярное

X
X

Спасибо!

Теперь редакторы в курсе.