Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Гости и ведущие нового выпуска подкаста «Сушите вёсла» обсуждают особенности разработки, новинки в сфере и пробуют понять, какую архитектуру выбрать. Спойлер: любую!
Артём Кулаков и Рома Чорыев — разработчики Redmadrobot и они записывают подкасты, где обсуждают различные стороны создания ИТ-продуктов. В одиннадцатом выпуске делятся опытом и шутят шутки гости — Дима Суздалев, Android-техлид KODE, и Вася Чирвон, руководитель Android-практики Redmadrobot SPB.
Прикладываем ссылку на свежий выпуск, тайминг и ответы на несколько важных вопросов.
Каково это – быть Android-разработчиком
Конечно же, есть свои сложности и проблемы, но это как и в любой профессии.
Дима Суздалев подметил, что опыт Android-разработчика – это про то, что ты знаешь «куда ходить не надо». Ну а если ты все-таки пришел не туда, то знаешь, как это «не туда» обойти.
А вот Рома сравнил Android-разработку с хождением в веригах (тяжелые железные цепи): идти можно, но, так сказать, больновато. В пример привел знакомую для любого разработчика ситуацию, когда элемент, от которого ты ждешь обычного поведения, вдруг перестает работать. Или, например, такое случается вообще только на конкретном устройстве («привет» многотысячному парку китайских девайсов).
Или вот как еще бывает: допустим, в Google есть баг в API, который отрабатывает конкретным образом. Ты уже к этому привык, не забываешь делать обходной путь и во всех проектах с этим живешь. Но вдруг в какой-то момент Google исправляет этот баг, и теперь все, что ты делал до этого, ломает приложение. И снова с этим приходится что-то делать.
Про новинки в области Android-разработки
В последнее время чуть ли не каждый год Google представляет разные полезные штуки для разработчиков: Jetpack Compose, Navigation Component, Data Store и прочие Security Identity Credentials.
Дима рассказал, что ему нравится подход Google к разработке Jetpack Compose. Он успел его уже опробовать и особенно отметил гайды и отличную документацию, где все пояснено и есть примеры кода.
Что касается Navigation Component, то эта библиотека показывает себя хорошо как инструмент для несложных приложений. С ее помощью можно быстро накидать навигацию и неплохо ею управлять. Ребята подметили, что было бы совсем хорошо, если бы Google добавил туда быструю генерацию графа.
Подробное обсуждение Dagger/Hilt и Anvil с 01:02:02.
Не Google единым (можно и Huawei, но по чуть-чуть)
В свободном Android-мире есть не только Google, который в студии поругали. Существует ещё и корпорация Huawei, создавшая интересный прецедент на рынке.
Кто не в курсе: Huawei сделала свои аналоги сервисов Google, кроме того, и интерфейс кодлабов был скопирован практически один в один. Компания хорошо вложилась в маркетинг для освещения этой истории. Итог — по продажам своих смартфонов Huawei вышла в топ, обогнав даже «гигантских гигантов» Apple и Samsung. Правда, в основном это случилось из-за китайского рынка, уверен Рома.
Стоит заметить, что эта ситуация открывает определенные возможности: хорошо, когда есть выбор и существует не только Google. Если и другие крупные компании начнут предоставлять альтернативу Google Play Services, то это будет полезно для всех. Но это неминуемо добавит проблем разработчикам, например, с фрагментацией. Появление вторых, третьих и т.д сервисов заставит знать десять разновидностей одного и того же.
Пара слов о кроссплатформенной разработке
Рядом с Android- и iOS-разработкой развивается отдельный и достаточно большой мир кроссплатформенной разработки.
В нем есть как традиционные подходы, работающие до сих пор, так и пара новинок, которые очень активно обсуждаются внутри комьюнити последние года два. Речь о Flutter и Kotlin Multiplatform.
Насколько же они удобны и применимы? Гости в студии единогласно решили, что «Flutter не хватает Kotlin». А подробнее с 01:15:27.
Строили и построили: архитектура Android-приложений
Сегодня для проектирования приложения недостаточно просто взять традиционную архитектуру, необходимо посмотреть на конкретные задачи бизнеса и самостоятельно создать ее с нуля.
«Конечно же, в голове общие подходы проектирования держать нужно, но «натягивать сову на глобус не стоит»», – говорит Артем. Если бизнес-задачи не ложатся в привычный clean и MVVM, следовательно, не нужно их использовать. Вот и все.
Важно понимать, что архитектура — это не инструкция, а набор решений, которые можно применить в работе. Вася Червон объяснил это так: «Ты знаешь, что плита должна иметь определенный вес, чтобы не раздавить стены, или же стены должны быть настолько прочными, чтобы ее выдержать. И чтобы строить, необходимо держать эти правила в голове».
Это всё вопрос опыта, поэтому, если разработчик не очень понимает, какую архитектуру нужно делать, то стоит проконсультироваться со старшим товарищем. Но, конечно, не с тем, кто скажет: «Делай MVVM, это круто».
Для эффективных архитектурных решений нужно читать много книг по проектированию систем, чтобы понимать, в каких ситуациях какие решения могут меняться и как их применять. Подробнее о книгах с 01:35:06.
Предыдущие выпуски «Сушите вёсла»
Слушайте нас там, где удобно: YouTube, Soundcloud, Apple Podcasts, Google Podcasts
Давайте обсудим выпуск в Telegram-чате.
Артём Кулаков и Рома Чорыев — разработчики Redmadrobot и они записывают подкасты, где обсуждают различные стороны создания ИТ-продуктов. В одиннадцатом выпуске делятся опытом и шутят шутки гости — Дима Суздалев, Android-техлид KODE, и Вася Чирвон, руководитель Android-практики Redmadrobot SPB.
Прикладываем ссылку на свежий выпуск, тайминг и ответы на несколько важных вопросов.
- 1:58 – Вася Чирвон рассказывает о том, как он попал в Android-разработку.
- 03:25 – А теперь Дима Суздалев о своем пути.
- 14:52 – Куда движется платформа Android.
- 25:05 – Сложно ли разрабатывать приложения под Android.
- 34:30 – Сложнее ли стать хорошим Android-разработчиком, чем iOS-разработчиком.
- 58:01 – Немного о Jetpack Compose.
- 01:02:02 – Чуть-чуть о Hilt.
- 01:03:15 – Кроссплатформенная разработка: KMM/Flutter – стоит ли игра свеч?
- 01:20:02 – UI и мультиплатформа.
- 01:27:14 – Архитектура мобильных приложений.
Каково это – быть Android-разработчиком
Конечно же, есть свои сложности и проблемы, но это как и в любой профессии.
Дима Суздалев подметил, что опыт Android-разработчика – это про то, что ты знаешь «куда ходить не надо». Ну а если ты все-таки пришел не туда, то знаешь, как это «не туда» обойти.
А вот Рома сравнил Android-разработку с хождением в веригах (тяжелые железные цепи): идти можно, но, так сказать, больновато. В пример привел знакомую для любого разработчика ситуацию, когда элемент, от которого ты ждешь обычного поведения, вдруг перестает работать. Или, например, такое случается вообще только на конкретном устройстве («привет» многотысячному парку китайских девайсов).
Или вот как еще бывает: допустим, в Google есть баг в API, который отрабатывает конкретным образом. Ты уже к этому привык, не забываешь делать обходной путь и во всех проектах с этим живешь. Но вдруг в какой-то момент Google исправляет этот баг, и теперь все, что ты делал до этого, ломает приложение. И снова с этим приходится что-то делать.
Разработка похожа на Lego – местами сложно, но прикольно! Ты сидишь и строишь. И тебе это нравится, ведь если не любишь Lego, то не будешь в него играть ;)
Про новинки в области Android-разработки
В последнее время чуть ли не каждый год Google представляет разные полезные штуки для разработчиков: Jetpack Compose, Navigation Component, Data Store и прочие Security Identity Credentials.
Дима рассказал, что ему нравится подход Google к разработке Jetpack Compose. Он успел его уже опробовать и особенно отметил гайды и отличную документацию, где все пояснено и есть примеры кода.
Что касается Navigation Component, то эта библиотека показывает себя хорошо как инструмент для несложных приложений. С ее помощью можно быстро накидать навигацию и неплохо ею управлять. Ребята подметили, что было бы совсем хорошо, если бы Google добавил туда быструю генерацию графа.
Подробное обсуждение Dagger/Hilt и Anvil с 01:02:02.
Не Google единым (можно и Huawei, но по чуть-чуть)
В свободном Android-мире есть не только Google, который в студии поругали. Существует ещё и корпорация Huawei, создавшая интересный прецедент на рынке.
Кто не в курсе: Huawei сделала свои аналоги сервисов Google, кроме того, и интерфейс кодлабов был скопирован практически один в один. Компания хорошо вложилась в маркетинг для освещения этой истории. Итог — по продажам своих смартфонов Huawei вышла в топ, обогнав даже «гигантских гигантов» Apple и Samsung. Правда, в основном это случилось из-за китайского рынка, уверен Рома.
Стоит заметить, что эта ситуация открывает определенные возможности: хорошо, когда есть выбор и существует не только Google. Если и другие крупные компании начнут предоставлять альтернативу Google Play Services, то это будет полезно для всех. Но это неминуемо добавит проблем разработчикам, например, с фрагментацией. Появление вторых, третьих и т.д сервисов заставит знать десять разновидностей одного и того же.
Пара слов о кроссплатформенной разработке
Рядом с Android- и iOS-разработкой развивается отдельный и достаточно большой мир кроссплатформенной разработки.
В нем есть как традиционные подходы, работающие до сих пор, так и пара новинок, которые очень активно обсуждаются внутри комьюнити последние года два. Речь о Flutter и Kotlin Multiplatform.
Насколько же они удобны и применимы? Гости в студии единогласно решили, что «Flutter не хватает Kotlin». А подробнее с 01:15:27.
Строили и построили: архитектура Android-приложений
Сегодня для проектирования приложения недостаточно просто взять традиционную архитектуру, необходимо посмотреть на конкретные задачи бизнеса и самостоятельно создать ее с нуля.
«Конечно же, в голове общие подходы проектирования держать нужно, но «натягивать сову на глобус не стоит»», – говорит Артем. Если бизнес-задачи не ложатся в привычный clean и MVVM, следовательно, не нужно их использовать. Вот и все.
Важно понимать, что архитектура — это не инструкция, а набор решений, которые можно применить в работе. Вася Червон объяснил это так: «Ты знаешь, что плита должна иметь определенный вес, чтобы не раздавить стены, или же стены должны быть настолько прочными, чтобы ее выдержать. И чтобы строить, необходимо держать эти правила в голове».
Это всё вопрос опыта, поэтому, если разработчик не очень понимает, какую архитектуру нужно делать, то стоит проконсультироваться со старшим товарищем. Но, конечно, не с тем, кто скажет: «Делай MVVM, это круто».
Для эффективных архитектурных решений нужно читать много книг по проектированию систем, чтобы понимать, в каких ситуациях какие решения могут меняться и как их применять. Подробнее о книгах с 01:35:06.
Полезные материалы
- Android. Clean Is Dead. Заблуждаетесь;
- Anvil — плагин для упрощения даггеризации вашего приложения;
- Доклад Rich Hickey о Simple vs Easy;
- A Philosophy of Software Design — книга про дизайн софта, определение его сложности, подходы к уменьшению, хорошо читается, чёткие определения;
- Очень крутой обзор архитектурных проблем как паттернов и способов их решения;
- Чистая архитектура. Искусство разработки программного обеспечения;
- Объектно-ориентированный анализ и проектирование;
- Опыт добавления HMS в проект от команды Redmadrobot SPb.
Предыдущие выпуски «Сушите вёсла»
- QA для начинающих: как протестировать ракету или самолёт;
- Архитектор ПО: зачем он нужен и в чём его проклятие;
- CTO от стартапа до корпорации и обратно;
- Источник правды: как аналитик учит менеджера и разработчика работать вместе;
- Очередь в backend: за чем стоим и с чего начать свой путь;
- Пандемия и ИТ-бизнес: как адаптироваться, и что делать дальше.
Слушайте нас там, где удобно: YouTube, Soundcloud, Apple Podcasts, Google Podcasts
Давайте обсудим выпуск в Telegram-чате.