Kotlin 1.6.20 уже на подходе, и вот как будет выглядеть Context Receiver
Фича все еще значится в стадии прототипа, поэтому не исключено, что это не финальная версия.
В любом случае, попробовать новый синтаксис на JVM можно будет уже скоро, сразу после релиза 1.6.20
Полный список ожидаемых изменений в 1.6.20 — здесь
#android
Фича все еще значится в стадии прототипа, поэтому не исключено, что это не финальная версия.
В любом случае, попробовать новый синтаксис на JVM можно будет уже скоро, сразу после релиза 1.6.20
Полный список ожидаемых изменений в 1.6.20 — здесь
#android
Microsoft Snippet — библиотека для измерения времени исполнения кода ⏲
Оптимизация времени выполнения кода — важная задача, от выполнения которой напрямую зависит опыт использования приложения: многие пользователи и вовсе могут отказаться от продолжения работы с ним из-за слишком долгих загрузок
Несколько технологий для такого замера уже существуют (среди них Hugo, Android Profiler и TimeLogger), однако полного функционала ни одна из них не предлагает — например, Hugo позволяет замерять только отдельные методы, а Android Profiler и вовсе затормаживает работу приложения
Решение пришло откуда не ждали, а именно от разработчика из Microsoft — он создал библиотеку Microsoft Snippet, которая позволяет отслеживать блоки кода любого размера и не требует много ресурсов
Посмотреть, как работает Snippet, можно здесь
#android #lib
Оптимизация времени выполнения кода — важная задача, от выполнения которой напрямую зависит опыт использования приложения: многие пользователи и вовсе могут отказаться от продолжения работы с ним из-за слишком долгих загрузок
Несколько технологий для такого замера уже существуют (среди них Hugo, Android Profiler и TimeLogger), однако полного функционала ни одна из них не предлагает — например, Hugo позволяет замерять только отдельные методы, а Android Profiler и вовсе затормаживает работу приложения
Решение пришло откуда не ждали, а именно от разработчика из Microsoft — он создал библиотеку Microsoft Snippet, которая позволяет отслеживать блоки кода любого размера и не требует много ресурсов
Посмотреть, как работает Snippet, можно здесь
#android #lib
Medium
Meet Microsoft Snippet — an Android Library for Measuring Code Execution Time
Improve the performance of your apps
Подробный гайд по Concurrency и Multithreading на iOS
Большой гайд про параллелизм и многопоточность. Прочитать стоит в первую очередь тем, плохо ориентируется в теме — материал объясняется подобно и со множеством примеров.
Что внутри?
👉 Main thread vs. background thread
👉 Async/await and Actor
👉 GCD vs. OperationQueue
👉 Group dispatch / DispatchGroup
#ios
Большой гайд про параллелизм и многопоточность. Прочитать стоит в первую очередь тем, плохо ориентируется в теме — материал объясняется подобно и со множеством примеров.
Что внутри?
👉 Main thread vs. background thread
👉 Async/await and Actor
👉 GCD vs. OperationQueue
👉 Group dispatch / DispatchGroup
#ios
Medium
The Complete Guide to Concurrency and Multithreading in iOS
Main thread vs. background thread. Async/await and Actor. GCD vs. OperationQueue. Group dispatch, how to empower background thread, and…
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Набор базовых анимаций на Jetpack Compose
4 стандартные анимации для Compose в одном репозитории:
— счетчик с поворотом
— idle лайк
— индикатор загрузки
— кнопка голосового набора
Сами анимации лежат здесь, а в блоге также есть подробная статья с примерами кода
#android #compose
4 стандартные анимации для Compose в одном репозитории:
— счетчик с поворотом
— idle лайк
— индикатор загрузки
— кнопка голосового набора
Сами анимации лежат здесь, а в блоге также есть подробная статья с примерами кода
#android #compose
Хорошая серия статей по системному дизайну
Практики системного дизайна на мобильных ОС. Всего 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
Статьи неплохо вводят в тему, так что читать стоит в первую очередь тем, кто не до конца ориентируется в системном дизайне, архитектуре, использовании модулей и т.д.
Практики системного дизайна на мобильных ОС. Всего 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
Статьи неплохо вводят в тему, так что читать стоит в первую очередь тем, кто не до конца ориентируется в системном дизайне, архитектуре, использовании модулей и т.д.
Medium
A Simple Framework For Mobile System Design Interviews
The list of posts in this series:
👍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
Koin — очень крутая и набирающая популярность технология для Kotlin Injections, и недавно вышел анонс новой версии 3.2 Beta. Вкратце:
— Режим выпуска обновлений приводится к стандарту 1 раз в полгода (примерно так это делает команда Kotlin)
— Koin получил спонсорскую поддержку от компании Kotzilla, что позволит вложить больше средств в разработку
— Внедрена фича под названием Constructor DSL: она позволяет добавлять компоненты в проект по имени класса, т.е. без использования get()
— Добавлена поддержка Kotlin Native Memory Model
Более подробная информация, а также роадмап на 2022 год — по ссылке
#android
Medium
Koin 3.2 Beta & Roadmap for 2022
We have lots of new things to come and to share with you, about Koin in 2022!
👍6💩1
Настраиваем Android CI через GitHub Actions 🧩
Android Continuous Integration (CI) — система, позволяющая автоматически создавать и тестировать приложение каждый раз, когда отправляется запрос на обновление. Таким образом, экономится время на регулярных билдах и тестах
Настроить CI сейчас можно полностью через сервис GitHub Actions: от создания CI flow до Unit-тестов
Больше информации и подробная инструкция по настройке — по ссылке
#android
Android Continuous Integration (CI) — система, позволяющая автоматически создавать и тестировать приложение каждый раз, когда отправляется запрос на обновление. Таким образом, экономится время на регулярных билдах и тестах
Настроить CI сейчас можно полностью через сервис GitHub Actions: от создания CI flow до Unit-тестов
Больше информации и подробная инструкция по настройке — по ссылке
#android
Medium
Set up an Android CI using GitHub Actions
When I onboarded at Innovorder in September 2021, the Android team had a CI setup running on Google Cloud Build. It worked quite well…
👍4
Большой гайд по стилизации текста на Jetpack Compose 🧩
Стилизация текста, наравне с цветами интерфейса — один из главных способов визуального взаимодействия с пользователем. К примеру, на картинках выше один и тот же текст, однако вариант справа читается гораздо приятнее и лучше удерживает внимание
Выравнивание текста, цвета, вес шрифта, жир/курсив и прочее отлично настраивается на Compose, подробнее — по этой ссылке
Инструкции там довольно элементарные, но иметь такой гайд под рукой никогда не помешает
#android #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
BubbleTabBar — простая и симпатичная нижняя панель, элементы сделаны в виде пузырьков, переключение соответственно реализовано "перетеканием".
Вещь абсолютно универсальная и впишется в большинство приложений любого характера, особенно учитывая широкие возможности кастомизации элемента
Полностью на Kotlin. Ссылка на GitHub: https://github.com/akshay2211/BubbleTabBar
#android #ui
👍5
Внедрение зависимостей через Anvil 🛠
Anvil — плагин для компилятора Kotlin, упрощающий внедрений зависимостей (Dependency Injection). Работает все это помощью Dagger за счет автоматического слияния модулей и компонентов
Вся основная информация на гитхаб странице плагина, ну а в этой статье на медиуме — примеры и неплохой гайд по использованию связки Dagger + Anvil
#android #kotlin
Anvil — плагин для компилятора Kotlin, упрощающий внедрений зависимостей (Dependency Injection). Работает все это помощью Dagger за счет автоматического слияния модулей и компонентов
Вся основная информация на гитхаб странице плагина, ну а в этой статье на медиуме — примеры и неплохой гайд по использованию связки Dagger + Anvil
#android #kotlin
👍3
Реализуем список через карточки на iOS 🧩
Карточки — универсальный элемент интерфейса, через который можно реализовать широкий спектр задач.
К примеру, диалоговые пузырьки во многих мессенджерах — это карточки, равно как и список вакансий, поездов или фильмов в соответствующих приложениях.
В статье предлагается три варианта реализации:
• UITableView (классика)
• UICollectionView + UICollectionViewFlowLayout (для iOS 11+)
• UICollectionView + UICollectionViewCompositionalLayout (для iOS 13+, наиболее оптимальный вариант на мой взгляд)
Сама статья — по ссылке, а также здесь гитхаб с полным кодом описанного проекта.
#ios
Карточки — универсальный элемент интерфейса, через который можно реализовать широкий спектр задач.
К примеру, диалоговые пузырьки во многих мессенджерах — это карточки, равно как и список вакансий, поездов или фильмов в соответствующих приложениях.
В статье предлагается три варианта реализации:
• UITableView (классика)
• UICollectionView + UICollectionViewFlowLayout (для iOS 11+)
• UICollectionView + UICollectionViewCompositionalLayout (для iOS 13+, наиболее оптимальный вариант на мой взгляд)
Сама статья — по ссылке, а также здесь гитхаб с полным кодом описанного проекта.
#ios
👍5
Строим графики на SwiftUI 🧩
SwiftUI Charts — простая утилита для построения графиков на iOS. Стилей много, кастомизация неплохая, реализация полностью на Swift.
Возможных юзкейсов тоже в достатке: от фитнес приложений с контролем веса до кошельков с анализом доходов/расходов.
Материалы:
Сама библиотека на GitHub
Поясняющая статья по работе со SwiftUI Charts
#ios #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
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 месяца назад.
В статье по ссылке ниже рассматриваются 3 основных способа осуществления контроля версий:
— Build Number (классика через X.Y.Z)
— Git Commit Number (привязка к git)
— CI/CD Generated (наиболее сложный и разнообразный вариант)
Материалы:
🔗 Статья на Medium
#ios #android
Medium
How to version your app in a continuous development world
Let’s focus on build version numbers
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Валидатор паролей для Android 🧩
PasswordValidationView — еще одна полезная библиотека, готовая для быстрого встраивания в проект. Элемент пригодится в любых приложениях, использующих учетные записи с логином/паролем.
Валидатор анализирует введенный пароль и сообщает, если он не проходит по требованиям безопасности — например, не хватает цифр или символов верхнего регистра.
Материалы:
🔗 Страница на GitHub
#android #ui
PasswordValidationView — еще одна полезная библиотека, готовая для быстрого встраивания в проект. Элемент пригодится в любых приложениях, использующих учетные записи с логином/паролем.
Валидатор анализирует введенный пароль и сообщает, если он не проходит по требованиям безопасности — например, не хватает цифр или символов верхнего регистра.
Материалы:
🔗 Страница на GitHub
#android #ui
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем моки при помощи SwiftMockGenerator
SwiftMockGeneratorForXcode — расширение для Xcode, которое позволяет создавать моки, пустышки, стабы и шпионов в несколько кликов для проведения юнит-тестирования.
— Моки имитируют исходящее взаимодействие;
— Стабы предоставляют готовые ответы для разных сценариев.
Материалы:
🔗 Страница на GitHub
#ios
SwiftMockGeneratorForXcode — расширение для Xcode, которое позволяет создавать моки, пустышки, стабы и шпионов в несколько кликов для проведения юнит-тестирования.
— Моки имитируют исходящее взаимодействие;
— Стабы предоставляют готовые ответы для разных сценариев.
Материалы:
🔗 Страница на GitHub
#ios
👍3