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

SDK

App Annie запустила аналитику установленных в приложениях SDK

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

AppTractor

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

/

Автор:

Все данные доступны в App Annie Intelligence. Теперь команды по продажам могут использовать данные о мобильных SDK и рынке приложений для привлечения более перспективных потенциальных клиентов и заключения более крупных сделок.

Ускоренное создание потока продаж

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

Отбор наиболее перспективных потенциальных клиентов

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

  • количество установленных SDK атрибуции рекламы, загрузки, доход, активные пользователи, доля показов — для продаж рекламы
  • количество установленных SDK рекламных платформ, долявыполненных показов, активные пользователи, длительность сеанса вприложении, загрузки, доходы — для работы с издателями

Оценка своих позиций: измерение доли рынка SDK рекламных платформ

Вам интересно, в скольких приложениях установлен SDK определенной рекламной платформы? App Annie обеспечивает полный обзор экосистемы SDK. Сравнивайте свою долю рынка с долей рынка конкурентов. Отслеживайте, какие платформы теряют и приобретают издателей. Ищите возможности расширения охвата. Получайте подробную информацию о лидерах рынка, включая популярные и доминирующие рекламные платформы — для этого отслеживайте доли установленных приложений и доли загрузок, а также установки и удаления новых SDK. Отфильтровывайте данные по рынкам и категориям приложений, чтобы выявлять области для расширения охвата и определять наилучший подход к позиционированию своего решения.

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

Разработка

Как сделать HTML5-приложение на Corona

10 июля движок для создания 2D-приложений Corona обновился до версии 2018.3326. Это значит, что поддержка платформы HTML5 наконец вышла в открытую бету, и создание HTML5-приложений доступно всем пользователям.

AppTractor

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

/

Автор:

Что такое HTML5-игры и почему они важны

Легкие онлайн-игры на основе HTML5 запускаются во вкладке любого браузера или внутри знакомых всем приложений: в социальных сетях или мессенджерах. Чтобы начать HTML5-игру, не нужно скачивать приложения из App Store или Google Play или обновлять плагины браузера  достаточно выбрать игру парой кликов из каталога встроенной в социальную сеть / мессенджер игровой платформы. Подобные платформы уже есть во «ВКонтакте» (Direct Games), в Facebook (Instant Games) и даже в Telegram и китайском WeChat. Благодаря этому аудитория игр расширяется: пользователи ждут новых игр, а девелоперы с удовольствием их создают, адаптируя новые жанры, усложняя игровые механики.

Волну популярности HTML5-игр давно обсуждают авторитетные издания, а эксперты наблюдают за тем, как HTML5-приложения диктуют правила рынку и отвоевывают пользователей у магазинов игр и приложений.

Все указывает на то, что пора собирать свое первое HTML5-приложение и зарабатывать на нем, пока это не сделал ваш сосед. Поэтому сегодня рассказываем и показываем, как поставить готовую игру на HTML5-рельсы и разместить ее на платформах Facebook Instant Games и VK Direct Games с помощью движка Corona.

Портирование в HTML5:

  1. Заходим на сайт Corona Labs и скачиваем на свой компьютер последнюю версию Corona 2018.3326.

  1. После установки ПО и открытии Corona Simulator создайте аккаунт в открывшемся окне – Corona Developer Login или зайдите под существующим.
  2. Теперь самое интересное – начинаем портировать игру в HTML5-формат. Мы покажем на примере игры из Corona Marketplace. Скачиваем и открываем игру в Corona Simulator: Open Project -> Папка игры -> main.lua. Даже если у вас несколько файлов .lua, выбираем сначала main.

  1. Чтобы cобрать из вашего проекта HTML5-приложение, выберите в меню Corona Simulator — File -> Build -> HTML5(BETA).

  1. В открывшемся окне портирования задайте имя и расположение файла. Что делать с опциями под галочками:
    – Include Standard resources означает, что ваша игра сможет использовать стандартные элементы Corona (кнопки, фигуры) — рекомендуемая для начинающих;
    – Create FB Instant archive (создает архив файлов, который потом пригодится для портирования проекта на игровую платформу Facebook) — ставьте галочку.

  1. После нажатия OK запустится портирование игры в HTML5-формат. В окне Corona Simulator Console отобразятся списком все файлы приложения и итоговый вес игры.
  2. Когда портирование закончится, игра автоматически откроется в системном браузере. Можно также открыть в любом удобном браузере, нажав в всплывающем окне на Open in Browser, чтобы запустить игру. Внешне она будет выглядеть одинаково во всех браузерах, в том числе, в мобильных.

  1. В папке с готовым HTML5-приложением вы найдете zip-архив для загрузки игры на Facebook Instant Games.

Портирование на Facebook Instant Games

  1. Зарегистрируйтесь на странице Facebook для разработчиков (developers.facebook.com) -> Начать работу (или «Мои приложения», если аккаунт уже есть).

  1. На странице всех ваших приложений Facebook -> Добавить новое приложение (developers.facebook.com/apps).
  2. В открывшемся каталоге приложений выберите «Моментальные игры» (Instant Games)

  1. Добавьте иконки, название и описание будущей игры начиная с вкладки «Информация».
  2. Во вкладке Веб-хостинг -> Загрузить версию загружаем zip-архив, из папки с вашим HTML5-приложением.

Помните, что размер приложения не должен превышать 5МБ. Это связано с использованием webview, который существенно ограничивает производительность устройства;

Facebook предоставляет свой сервер для моментальных игр, беспокоится о собственном нет необходимости.

  1. Когда загрузка завершится, в панели загрузки выберите значок звезды, чтобы передать приложение в производство.

  1. Теперь можно посмотреть, как выглядит и работает игра: Настройки в левой панели -> Основное -> Веб-игры на Facebook -> вставляем в адресную строку браузера ссылку из окна «URL Страницы веб-игр Facebook».

  1. Осталось только заполнить все настройки приложения, включая вкладки «Лидеры», «Проверка», «Рекомендации», «Отзывы», «Покупка в приложении» и отправить игру на проверку. И вуаля, ваша игра уже в левом меню среди других на Facebook Instant Games!

Портирование в VK Direct Games

  1. Активируйте плагин VK Direct Games в Corona Marketplace. Зайдите на страницу плагина и нажмите кнопку Activate;

  1. В своем проекте в файле build.settings установите плагин VK Direct Games. Как это сделать описано в документации к плагину;
  2. Соберите из вашего проекта HTML5-приложение как описано выше.
  3. Готовое HTML5-приложение перенесите на свой сервер. Если нет сервера, можно воспользоваться сервисом GitHub, который организует ваш сервер по адресу yourname.github.io;
  4. Наберите в браузере строку yourname.github.io и проверьте, что ваше приложение работает корректно, помните, что игры в ВК должны занимать не более 10МБ;
  5. Зайдите на страницу в VK для разработчиков. Выберите пункт «Мои приложения» из верхней панели и нажмите кнопку «Создать приложение»;

  1. Выберите пункт «Встраиваемое приложение», заполните поле названия и описания игры и нажмите кнопку «Перейти к загрузке приложения»;

  1. На ваш телефон должно прийти уведомление о создании вами игры — вам надо подтвердить это действие, чтобы продолжить;
  2. Добавьте иконки для описания игры, как указано на странице «Информация»;

  1. В левой панели выбираете пункт «Настройки» и выбираете тип приложения iFrame, включаете состояние «Видно всем» и самое главное, в поле «Мобильная версия»: добавляете адрес вашей HTML5-игры (пример: https://yourname.github.io);
  2. Важно! Оставьте поле адрес iFrame пустым;

  1. Сохраните настройки — иконка вашей игры будет в левой панели — нажмите на нее — у вас появится экран игры и кнопка «Отправить на телефон»;

  1. Подключите телефон через USB к компьютеру, погасите приложение VK и нажмите кнопку «Отправить на телефон» — вы услышите звук пуш-нотификации;
  2. Смахните сверху вниз по экрану телефона и выберите пуш-нотификацию — ваша игра запустится внутри приложения VK;

Bingo! Теперь ваша игра есть на ведущих игровых платформах, а также во вкладках самых популярных десктопных и мобильных браузеров.

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

Медиа

Android Dev Подкаст. Выпуск 70. React Native. Впиливать или выпиливать?

Мы обходили стороной вопросы кроссплатформенных фреймворков, но вот настал час для обсуждения одной и самых модных и более-менее стабильных платформ. Мы пригласили разработчиков с большим стажем. В мир Reat Native кто-то пришел из Andorid, кто-то из iOS, а кто-то из веб – и тем и интереснее получилась беседа. Надеемся, что к концу выпуска, слушатель, вместе с ведущими, сформирует свое мнение о React Native и будет готов к обсуждению внедрения этого фреймворка на работе.

AppTractor

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

/

Автор:

Мы обходили стороной вопросы кроссплатформенных фреймворков, но вот настал час для обсуждения одной и самых модных и более-менее стабильных платформ. Мы пригласили разработчиков с большим стажем. В мир Reat Native кто-то пришел из Andorid, кто-то из iOS, а кто-то из веб – и тем и интереснее получилась беседа. Надеемся, что к концу выпуска, слушатель, вместе с ведущими, сформирует свое мнение о React Native и будет готов к обсуждению внедрения этого фреймворка на работе.

Материалы

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

Дизайн и прототипирование

17 лекций о разработке интерфейсов Школы разработки интерфейсов Яндекса

Этой весной в Яндексе прошла очередная Школа разработки интерфейсов. Школа рассчитана на начинающих разработчиков, которые всерьёз интересуются созданием интерфейсов и уже знают азы, но пока не набрались опыта. Чтобы освоить программу Школы могли все желающие, Яндекс выпустил видеокурс — он объединяет все лекции, которые читались в ШРИ весной.

AppTractor

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

/

Автор:

Материалы для самоподготовки

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

Все лекторы — сотрудники Яндекса. Они работают над интерфейсами разных сервисов компании — Поиска, Карт, Дзена, Директа — и подкрепляют рассказ примерами из личного опыта. В конце они приводят ссылки на дополнительные материалы — если тема интересна, будет понятно, куда двигаться дальше.

Курс даёт базовую теорию. Тех, кто хочет применить знания на практике, Яндекс приглашает на очные занятия в Школу разработки интерфейсов. Практики будет много — слушателей ждут семинары, домашние задания и работа над учебными проектами. Для поступления нужно заполнить анкету и решить тестовое задание.

Обучение в Школе бесплатное. Набор открыт в трёх городах: Москве, Симферополе и Минске. Жители других мест могут приехать на учёбу в столицу: тем, кто пройдёт отбор, Яндекс оплатит дорогу и проживание в хостеле.

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

Реклама

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

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

Вакансии

Популярное

X
X

Спасибо!

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