mobDev()
157 subscribers
62 photos
5 videos
98 links
🔥 Твой фид мобильной разработки
➡️ Новости, статьи, видео, квизы
👨‍💻 #android #ios #crossplatform
Download Telegram
Эта ошибка едва не стоила разработчику жизни...
3 технологии Android-разработки, которые умрут в 2022 💀

Интересный материал на медиуме: автор прогнозирует 3 технологии разработки, которые станут неактуальны до конца этого года. Вытеснят их (вполне ожидаемо) вездесущий Jetpack Compose, корутины и StateFlow.

Если вкратце, то прощаться по мнению автора пора со следующими технологиями:

— Android View на XML (→ Jetpack Compose)
— LiveData (→ StateFlow)
— Activity Lifecycle APIs (→ Lifecycle Aware Coroutine)

При прочтении конечно стоит помнить, что все это лишь прогнозы, хотя такой исход по итогам 2022 на самом деле вполне вероятен.

#android
👍4
Kotlin 1.6.20 уже на подходе, и вот как будет выглядеть Context Receiver

Фича все еще значится в стадии прототипа, поэтому не исключено, что это не финальная версия.

В любом случае, попробовать новый синтаксис на JVM можно будет уже скоро, сразу после релиза 1.6.20

Полный список ожидаемых изменений в 1.6.20 — здесь

#android
Microsoft Snippet — библиотека для измерения времени исполнения кода

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

Несколько технологий для такого замера уже существуют (среди них Hugo, Android Profiler и TimeLogger), однако полного функционала ни одна из них не предлагает — например, Hugo позволяет замерять только отдельные методы, а Android Profiler и вовсе затормаживает работу приложения

Решение пришло откуда не ждали, а именно от разработчика из Microsoft — он создал библиотеку Microsoft Snippet, которая позволяет отслеживать блоки кода любого размера и не требует много ресурсов

Посмотреть, как работает Snippet, можно здесь

#android #lib
Подробный гайд по Concurrency и Multithreading на iOS

Большой гайд про параллелизм и многопоточность. Прочитать стоит в первую очередь тем, плохо ориентируется в теме — материал объясняется подобно и со множеством примеров.

Что внутри?

👉 Main thread vs. background thread
👉 Async/await and Actor
👉 GCD vs. OperationQueue
👉 Group dispatch / DispatchGroup

#ios
👍3
Планы на завтра: дождаться, пока студия придет в себя после Invalidate Caches
This media is not supported in your browser
VIEW IN TELEGRAM
Набор базовых анимаций на Jetpack Compose

4 стандартные анимации для Compose в одном репозитории:

— счетчик с поворотом
— idle лайк
— индикатор загрузки
— кнопка голосового набора

Сами анимации лежат здесь, а в блоге также есть подробная статья с примерами кода

#android #compose
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядная визуализация данных. AsyncTask -> Loader -> LiveData -> StateFlow

#android
😁8
В интернет слили скриншоты распределения ресурсов на твоем компьютере 🙈
😁10🤯1
Хорошая серия статей по системному дизайну

Практики системного дизайна на мобильных ОС. Всего 5 частей, 2 теории и 3 практических задачи с разбором:

👉 A Simple Framework For Mobile System Design Interviews
👉 Additional Topics For Mobile System Design Interviews
👉 Mobile System Design Exercise: File Downloader Library
👉 Mobile System Design Exercise: Caching Library
👉 Mobile System Design Exercise: Image Library

Статьи неплохо вводят в тему, так что читать стоит в первую очередь тем, кто не до конца ориентируется в системном дизайне, архитектуре, использовании модулей и т.д.
👍4
Koin 3.2 Beta + Roadmap на 2022 🗺

Koin — очень крутая и набирающая популярность технология для Kotlin Injections, и недавно вышел анонс новой версии 3.2 Beta. Вкратце:

— Режим выпуска обновлений приводится к стандарту 1 раз в полгода (примерно так это делает команда Kotlin)

— Koin получил спонсорскую поддержку от компании Kotzilla, что позволит вложить больше средств в разработку

— Внедрена фича под названием Constructor DSL: она позволяет добавлять компоненты в проект по имени класса, т.е. без использования get()

— Добавлена поддержка Kotlin Native Memory Model

Более подробная информация, а также роадмап на 2022 год — по ссылке

#android
👍6💩1
Настраиваем Android CI через GitHub Actions 🧩

Android Continuous Integration (CI) — система, позволяющая автоматически создавать и тестировать приложение каждый раз, когда отправляется запрос на обновление. Таким образом, экономится время на регулярных билдах и тестах

Настроить CI сейчас можно полностью через сервис GitHub Actions: от создания CI flow до Unit-тестов

Больше информации и подробная инструкция по настройке — по ссылке

#android
👍4
Большой гайд по стилизации текста на Jetpack Compose 🧩

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

Выравнивание текста, цвета, вес шрифта, жир/курсив и прочее отлично настраивается на Compose, подробнее — по этой ссылке

Инструкции там довольно элементарные, но иметь такой гайд под рукой никогда не помешает

#android #compose
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Анимированный Bottom Bar для Android-приложений 🧩

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

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

Полностью на Kotlin. Ссылка на GitHub: https://github.com/akshay2211/BubbleTabBar

#android #ui
👍5
Внедрение зависимостей через Anvil 🛠

Anvil — плагин для компилятора Kotlin, упрощающий внедрений зависимостей (Dependency Injection). Работает все это помощью Dagger за счет автоматического слияния модулей и компонентов

Вся основная информация на гитхаб странице плагина, ну а в этой статье на медиуме — примеры и неплохой гайд по использованию связки Dagger + Anvil

#android #kotlin
👍3
Реализуем список через карточки на iOS 🧩

Карточки — универсальный элемент интерфейса, через который можно реализовать широкий спектр задач.

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

В статье предлагается три варианта реализации:

• UITableView (классика)

• UICollectionView + UICollectionViewFlowLayout (для iOS 11+)

• UICollectionView + UICollectionViewCompositionalLayout (для iOS 13+, наиболее оптимальный вариант на мой взгляд)

Сама статья — по ссылке, а также здесь гитхаб с полным кодом описанного проекта.

#ios
👍5
Когда начал пользоваться библиотекой, не прочитав документацию 📃
😁9
Строим графики на SwiftUI 🧩

SwiftUI Charts — простая утилита для построения графиков на iOS. Стилей много, кастомизация неплохая, реализация полностью на Swift.

Возможных юзкейсов тоже в достатке: от фитнес приложений с контролем веса до кошельков с анализом доходов/расходов.

Материалы:
Сама библиотека на GitHub
Поясняющая статья по работе со SwiftUI Charts

#ios #swiftui
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Улучшенный компонент смахивания для Compose 🧩

Swipe To Action — классический элемент мобильного UX, позволяющий не вызывать громоздкое меню для быстрых действий, а осуществлять их свайпом

В Compose уже давно есть встроенный SwipeToDismiss — он работает аналогичным образом, однако исполнение свайп-действия удаляет элемент, что не всегда удобно

Поэтому если нужно выполнить действие и оставить элемент на экране, можно использовать кастомный компонент Swipe

Материалы:
Страница Swipe на GitHub

#android #compose
Осуществляем Version Control правильно 🧩

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

В статье по ссылке ниже рассматриваются 3 основных способа осуществления контроля версий:

— Build Number (классика через X.Y.Z)
— Git Commit Number (привязка к git)
— CI/CD Generated (наиболее сложный и разнообразный вариант)

Материалы:
🔗 Статья на Medium

#ios #android
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Валидатор паролей для Android 🧩

PasswordValidationView — еще одна полезная библиотека, готовая для быстрого встраивания в проект. Элемент пригодится в любых приложениях, использующих учетные записи с логином/паролем.

Валидатор анализирует введенный пароль и сообщает, если он не проходит по требованиям безопасности — например, не хватает цифр или символов верхнего регистра.

Материалы:
🔗 Страница на GitHub

#android #ui
👍2