Surf Mobile Team
1.87K subscribers
420 photos
42 videos
1 file
141 links
Комьюнити мобильных разработчиков Surf. Делимся экспертизой, разбираем инструменты и тренды для создания приложений под Android и iOS 📲

💬 Чат → https://t.me/+zo5DrfHdxqYwMzgy
Другие команды Surf: https://clck.ru/3G5Yhy
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать кастомный layout в Compose
На примере меню Apple Watch

Почему Compose
В отличие от View, на Compose сделать кастомный layout проще. Разработчик сосредоточен на бизнес-логике задачи. Ему не нужно искать в недрах исходников и документации информацию, где её лучше расположить.

Как сделать собственный layout
1️⃣ Создать контейнер для отображения сетки элементов. Для этого нужен Layout, лежащий в основе всех контейнеров в Jetpack Compose.

2️⃣ Обработать drag-жест для правильного смещения контента: реализуется с помощью корутин внутри кастомного Modifier.

3️⃣ Реализовать OverScroll и анимацию для него: должен получиться bounce-эффект, как на Apple watch.

4️⃣ Реализовать Scale-анимацию, близкую к меню Apple watch. Элементы в меню двигаются по сферической траектории: понадобится формула эллиптического параболоида.

5️⃣ С помощью Saver сделать механизм, чтобы Layout умел переживать поворот экрана.

Где почитать подробности
Статья Олега Жило с пошаговой инструкцией.
Исходники проекта на GitHub.
🔥7
Начинающим Android-разработчикам: что знать и уметь, чтобы устроиться на работу
В Surf и другие компании

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

🔹 Какие фундаментальные концепции изучить.
🔹 Какие книжки прочитать.
🔹 Какие паттерны проектирования знать.
🔹 Какими библиотеками уметь пользоваться.

А также он ответил на извечные вопросы:
🤔 Нужно ли учить Java.
🤔 Пригодится ли при трудоустройстве пет-проект.

Смотри видео — переходи по ссылке.

Что ещё интересно узнать про трудоустройство? Давайте обсудим!
🔥112
🤣8🔥4👍3
🤓 Нет, это не случайные мемы, а реальные слайды с собраний Android-отдела!

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

Форматы собраний разные:
1️⃣ Обмен знаниями: рассказываем о новых технологиях, библиотеках и полезных практиках, новостях в Android-разработке.
2️⃣ Новости и ретроспективы: обсуждаем, что нового произошло в отделе и в компании.
3️⃣ Лайвкодинг: один или несколько коллег в прямом эфире кодят интересную фичу.
4️⃣ Рассказы о проектах: с какими сложностями сталкиваемся и как их решаем.
5️⃣ Круглый стол: собираемся и обсуждаем тему или событие. Например, новинки с Google I/O.
6️⃣ Рассказы о себе: коллегам интересно узнать, кто ты, какой у тебя опыт и чем увлекаешься.

👨‍💻 Кто выступает на собрании

На собрании может выступить любой желающий. Сначала выбирается тема и формат выступления. Когда тема утверждена, сотруднику выделяется рабочее время на исследование: можно начинать готовиться к собранию и искать материалы.

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

Главное правило: презентация – это подсказка для доклада, а не сам доклад. На ней отображается основная информация, а не полотно нечитаемого текста размером 9. Приветствуются мемы и гифки.

Всё готово? Можно выступать! Бояться выступать не стоит, здесь все свои и не съедят. Плюс всем действительно интересно послушать про что-то новое для себя – это выгодно для всех принимающих участие в собрании сторон.

🤷‍♂️ Что дальше

Собрание будет записано и отправлено в архив, чтобы любой желающий сотрудник Surf смог её найти и посмотреть. За последнее время мы сделали объемные доклады:

🔹 Сравнение баз данных в Android
🔹 Ряд докладов про архитектуру MVI, которую мы используем в наших проектах
🔹 Доклад про reverse engineering
🔹 Разбор, что такое Accessibility и зачем она нужна
🔹 Как работать с бэкграундом в Android с помощью Work Manager

И это только верхушка айсберга! Архив ведётся с 2019 года, и очень много собраний и интересных тем уже было раскрыто. Также у нас есть база данных с нераскрытыми интересными темами, если у желающего выступить нет никаких идей.

Рекомендуем взять эту практику к себе в компанию: это развивает разработчиков в хард- и софт-скиллах. А ещё это интересное времяпровождение!
👍4🔥43
Выбери тему ближайшего прямого эфира

14 декабря проведём в этом канале прямой эфир. О чём он будет — решать тебе. Вот четыре темы на выбор ⬇️

1️⃣ Compose vs XML: сравним доступные библиотеки и тулзы, базовые кейсы вроде анимации, производительность и другие аспекты.

2️⃣ Оптимизация приложений: как сделать так, чтобы приложение работало быстро даже на Xiaomi за 5к.

3️⃣ История развития Android: от Android 4 до Android 13. Обсудим, что изменилось за это время и как поддерживать разные версии ОС.

4️⃣ Стартап, e-com, банкинг, иностранный продукт: отличия при разработке. У нас есть опыт работы на разных проектах. Обсудим, какие есть отличия, где комфортнее работать, расскажем интересные кейсы из практики.
14 декабря — баттл «Compose vs XML»

С небольшим отрывом в нашем голосовании победила тема сравнения Compose и XML 🥳

Это значит, что 14 декабря мы соберёмся в прямом эфире и сравним:
🔹 производительность,
🔹 простоту в освоении и использовании,
🔹 размер APK,
🔹 различные плюшки из студии для обеих подходов,
🔹 стабильность используемых компонентов,
🔹 навигацию,
🔹 организация файлов в проекте.

Ведущие эфира
😎 Алексей — Android TeamLead
👨‍💻 Герман — Android Developer
🙋‍♂️ Тимур — Android Developer

Приходите с вопросами и мнением по теме!

🗓 14 декабря, среда
16:00
📍 Telegram-канал Surf Android Team
👍12🔥4🤣1
Прямой эфир начнём ровно через 2 часа! Придёшь? Ставь 👍
👍18
Начинаем эфир! Вопросы оставляйте в комментах под этим постом 😉
Live stream started
Live stream finished (1 hour)
Audio
Обещали — делимся.

Устраивайтесь поудобнее, наливайте чашечку кофе и слушайте запись нашего баттла «‎Compose vs XML» в формате подкаста.

Остались вопросы? Пиши в комментариях, с удовольствием продолжим дискуссию.

Таймлайны:

00:00 — Приветствие.
00:39 — Пара слов о ведущих.
01:30 — О формате эфира.
02:23 — Вводная о Сompose и XML.
03:45 — Производительность.
14:43 — Простота освоения и использования.
22:03 — Размер APK.
24:08 — Cтабильность.
32:20 — Мультиплатформенность.
37:17 — Ответы на вопросы из чата.
40:59 — Сustom Views.
45:30 — Организация файлов в проекте.
51:12 — Анимации.
53:30 — Фрагменты.
56:40 — Навигация.
1:01:28 — Итог. Надо ли отказываться от XML?
1:06:51 — Ответы на вопросы из чата.
🔥8👍2
Зачем разработчики разделяют сборки для разных сторов

🔹 Предыстория

В середине 2019 года США запретили распространять сервисы Google (GMS) на Huawei-устройствах. Тогда Huawei создал аналогичное ПО — Huawei Mobile Services (HMS), которое дублирует многие функции GMS.

В HMS появился магазин приложений AppGallery, сервис доставки пушей Push Kit, сервис аналитики Analytics Kit и другие аналогичные по функциональности библиотеки.

У разработчиков определенно добавилось работы: при реализации многих фич теперь необходимо было проверять, GMS или HMS используются на устройстве. Поэтому на девайсах в качестве сторонних зависимостей использовались библиотеки и от Google, и от Huawei.

Так длилось пару лет, но весной 2022 года разработчики приложений начали массово получать запреты на обновления в Play Store и предупреждения, что приложение может быть удалено. Причиной этого было использование Huawei-сервисов внутри APK: Google счёл это небезопасным.

🔹 Решение: разделение сборок с помощью ProductFlavor

Наверное, многие знакомы с понятием buildTypes — это различные настройки сборки APK для дебага и релиза.

Но Flavors — немного другая вещь: она позволяет настроить сборки для сторов с включением разных фич, использования различных ресурсов. Например, фичи для платных и бесплатных пользователей, локализованные картинки для разных стран.

💬 Было бы вам интересно прочитать про детальную настройку различных типов сборок? Пишите в комментариях
🔥5👍3
Как Android работает в автомобилях

Есть две системы: Android Auto и Android Automotive OS.

Android Auto 
Система для автомобилей и встраиваемых магнитол. Телефон подключается к совместимому автомобилю, и водитель может взаимодействовать с приложениями телефона с помощью экрана автомобиля и голосовых команд. 

Android Auto обеспечивает простой способ навигации, прослушивания мультимедиа и сообщений и многого другого.

Android Automotive OS
Android Automotive OS (AAOS) — информационно-развлекательная платформа, встроенная в автомобиль автопроизводителем. 

Водители могут загружать совместимые мультимедийные приложения прямо в машину — без телефона. Для взаимодействия используется интерфейс, разработанный для экрана автомобиля.

Какая между ними разница
Android Auto и Android Automotive OS не стоит путать между собой 🙅

Если говорить упрощённо: 
👉 С Android Auto пользователь шарит экран на монитор в машине через подключение телефона напрямую к компьютеру авто. 

👉Android Automotive OS — отдельная ОС, которая работает без участия смартфона. Android Automotive OS относительно свеж, машины на рынке с его поддержкой начали появляться пару лет назад.

Полезные ссылки

🔹 UX/UI гайдлайны 
🔹 Документация
🔹 Клевый доклад
🔹 Тестирование
🔹 Как 2ГИС делал свое приложение
🔹 Кейс с примером внедрения поддержки авто в существующее приложение
👍7🔥4👏2
Windows Subsystem for Android (WSA)

В 2021 году компания Microsoft выпустила новую операционную систему Windows 11. Одна из главных фич — запуск Android-приложений внутри системы безо всяких эмуляторов. Рассказываем на карточках, как это работает.

Полезные ссылки:

🔹 Официальная документация Microsoft

🔹 Способы установки WSA

🔹 Установка GApps

🔹 Подключение по ADB и установка сторонних APK вне сторов
🔥5👍3👏1