Иерархия модулей в Android
В многомодульном приложении разработчики могут сталкиваться с проблемами в зависимостях между модулями или навигации по проекту.
Для улучшения скорости сборки проекта автор статьи:
— разделил модули на типы,
— выстроил правила подключения модулей между собой для контроля зависимостей,
— переименовал модули, чтобы связать их нейминг с положением в проекте.
Подробнее о том, как выстроить связи между модулями в Android:
https://tprg.ru/F4Sl
#android
В многомодульном приложении разработчики могут сталкиваться с проблемами в зависимостях между модулями или навигации по проекту.
Для улучшения скорости сборки проекта автор статьи:
— разделил модули на типы,
— выстроил правила подключения модулей между собой для контроля зависимостей,
— переименовал модули, чтобы связать их нейминг с положением в проекте.
Подробнее о том, как выстроить связи между модулями в Android:
https://tprg.ru/F4Sl
#android
👍13❤1
Google празднует 5-летие с Kotlin
Прошло 5 лет с того момента, как на Google I/O объявили о поддержке Kotlin в Android Studio. В честь этого события в блоге Android Developers вышла статья о проделанной работе Kotlin Foundation за эти годы.
В статье сотрудники Google и JetBrains поделились своим мнением о Kotlin, Jetpack Compose, Android KTX и рассказали о перспективах дальнейшего развития Kotlin.
#kotlin #android
Прошло 5 лет с того момента, как на Google I/O объявили о поддержке Kotlin в Android Studio. В честь этого события в блоге Android Developers вышла статья о проделанной работе Kotlin Foundation за эти годы.
В статье сотрудники Google и JetBrains поделились своим мнением о Kotlin, Jetpack Compose, Android KTX и рассказали о перспективах дальнейшего развития Kotlin.
#kotlin #android
YouTube
5 years of Kotlin on Android #Hi5KotlinOnAndroid
We’re celebrating 5 years of Kotlin support for Android! Join us by sharing your Kotlin story using hashtag #Hi5KotlinAndroid and read our blog post for a trip down memory lane→ https://goo.gle/3w89Q8S
Subscribe to Android Developers → https://goo.gle/AndroidDevs
Subscribe to Android Developers → https://goo.gle/AndroidDevs
👍30🎉6👎3🔥1💩1
Реализация паттерна State Machine и MVI
Наверняка вы слышали про паттерн State Machine, который часто сравнивают с шаблоном State. Данный паттерн используется для создания объектов, поведение которых меняется в зависимости от состояния. Сам набор этих состояний предопределён и конечен.
В этой серии статей разбирается шаблон State Machine с архитектурой MVI:
Часть 1: https://tprg.ru/EiVB
Часть 2: https://tprg.ru/taGk
Часть 3: https://tprg.ru/YUql
#android
Наверняка вы слышали про паттерн State Machine, который часто сравнивают с шаблоном State. Данный паттерн используется для создания объектов, поведение которых меняется в зависимости от состояния. Сам набор этих состояний предопределён и конечен.
В этой серии статей разбирается шаблон State Machine с архитектурой MVI:
Часть 1: https://tprg.ru/EiVB
Часть 2: https://tprg.ru/taGk
Часть 3: https://tprg.ru/YUql
#android
👍6
Вышли новые беты для разработчиков iOS
— iOS 16 beta 7 — больших изменений нет, но Apple исправила некоторые баги в: Airplay, SwiftUI, Accessibility. Некоторые методы в UIViewController объявили устаревшими и заменили, как и MKMapLandscape в Maps. Детальнее: https://tprg.ru/yOCX
Также вчера выпустили:
— iPadOS 16 beta 7,
— watchOS 9 beta 7,
— Xcode 14 beta 6.
#ios
— iOS 16 beta 7 — больших изменений нет, но Apple исправила некоторые баги в: Airplay, SwiftUI, Accessibility. Некоторые методы в UIViewController объявили устаревшими и заменили, как и MKMapLandscape в Maps. Детальнее: https://tprg.ru/yOCX
Также вчера выпустили:
— iPadOS 16 beta 7,
— watchOS 9 beta 7,
— Xcode 14 beta 6.
#ios
👍5💩3👎1
Анимация Lottie на Kotlin
Библиотека LottieFiles использует анимации, экспортированные в виде файлов JSON из Adobe After Effect. С помощью этой библиотеки вы можете добавить любую анимацию в ваш проект.
В этом видео разбирается, как использовать Lottie:
https://youtu.be/1pEyWkTVwBY
#kotlin
Библиотека LottieFiles использует анимации, экспортированные в виде файлов JSON из Adobe After Effect. С помощью этой библиотеки вы можете добавить любую анимацию в ваш проект.
В этом видео разбирается, как использовать Lottie:
https://youtu.be/1pEyWkTVwBY
#kotlin
👍29💩3❤🔥2🤡2
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать Slack-приложение на Android
С помощью Jetpack Compose и Stream Chat SDK можно реализовать своё приложение, похожее на Slack. Внутри проекта также используются корутины и библиотека Hilt.
Исходники: https://github.com/GetStream/stream-slack-clone-android
#android
С помощью Jetpack Compose и Stream Chat SDK можно реализовать своё приложение, похожее на Slack. Внутри проекта также используются корутины и библиотека Hilt.
Исходники: https://github.com/GetStream/stream-slack-clone-android
#android
👍11
Обход средств защиты в iOS-приложениях
На Хабре вышла интересная статья об инструментах, которые помогают обходить средства защиты Jailbreak Detection и SSL-pinning.
Для обхода проверок на Jailbreak автор использовал специальное приложение SecureStorev2, где установил твики A-Bypass и Liberty. Также в статье был протестирован скрипт из Frida CodeShare для байпаса и приведены примеры обхода вручную:
https://habr.com/ru/company/dsec/blog/676094/
#ios
На Хабре вышла интересная статья об инструментах, которые помогают обходить средства защиты Jailbreak Detection и SSL-pinning.
Для обхода проверок на Jailbreak автор использовал специальное приложение SecureStorev2, где установил твики A-Bypass и Liberty. Также в статье был протестирован скрипт из Frida CodeShare для байпаса и приведены примеры обхода вручную:
https://habr.com/ru/company/dsec/blog/676094/
#ios
👍10
Подборка актуальных вакансий
— iOS-разработчик
Где: удалённо
Опыт: можно без опыта
— Android-разработчик
Где: Удалённо
Опыт: от 2 лет
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Senior Android-разработчик
Где: Москва
Опыт: от 3 лет
— Senior iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
#вакансии #работа
— iOS-разработчик
Где: удалённо
Опыт: можно без опыта
— Android-разработчик
Где: Удалённо
Опыт: от 2 лет
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Senior Android-разработчик
Где: Москва
Опыт: от 3 лет
— Senior iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
#вакансии #работа
👎12💩7👍2🔥1
Как исправить устаревшие Android API
В этой статье автор делится опытом по исправлению неподдерживаемых функции и API на примерах замены:
— устаревшего конструктора без параметров Handler,
— метода setHasOptionsMenu() на интерфейс MenuProvider,
— метода startActivityForResult() на другие Activity Result API и launcher.
Реализация и примеры здесь:
https://tprg.ru/Sw2V
#android
В этой статье автор делится опытом по исправлению неподдерживаемых функции и API на примерах замены:
— устаревшего конструктора без параметров Handler,
— метода setHasOptionsMenu() на интерфейс MenuProvider,
— метода startActivityForResult() на другие Activity Result API и launcher.
Реализация и примеры здесь:
https://tprg.ru/Sw2V
#android
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Меню Apple Watch на Jetpack Compose
Используя Jetpack Compose можно реализовать практически любой UI-дизайн, даже если это меню Apple Watch. Как создать двумерную сетку из элементов, Scale-анимацию, drag-жест для правильного смещения контента и многое другое — в этой статье:
https://tprg.ru/8X3Y
#android
Используя Jetpack Compose можно реализовать практически любой UI-дизайн, даже если это меню Apple Watch. Как создать двумерную сетку из элементов, Scale-анимацию, drag-жест для правильного смещения контента и многое другое — в этой статье:
https://tprg.ru/8X3Y
#android
👍3🎉1🤮1
This media is not supported in your browser
VIEW IN TELEGRAM
Практический пример создания View-компонента на SwiftUI
В этой статье пошаговое руководство как создать собственный Custom View для городов, используя Sruct, Computed Property и несколько функций, чтобы рассчитать количество лайков и поездок: https://tprg.ru/L71J
#swiftUI
В этой статье пошаговое руководство как создать собственный Custom View для городов, используя Sruct, Computed Property и несколько функций, чтобы рассчитать количество лайков и поездок: https://tprg.ru/L71J
#swiftUI
👍5
Ускоренная сборка с помощью Kotlin Symbol Processing
Kotlin Symbol Processing (KSP) — это упрощённый API для разработки легковесных плагинов компиляции и процессоров аннотаций. KSP похож на Kotlin Annotation Processing Tool, но работает быстрее.
В статье рассматривается реализация KSP с использованием аннотаций, SymbolProcessor, Resolver и KotlinPoet:
https://tprg.ru/OgZQ
#kotlin #android
Kotlin Symbol Processing (KSP) — это упрощённый API для разработки легковесных плагинов компиляции и процессоров аннотаций. KSP похож на Kotlin Annotation Processing Tool, но работает быстрее.
В статье рассматривается реализация KSP с использованием аннотаций, SymbolProcessor, Resolver и KotlinPoet:
https://tprg.ru/OgZQ
#kotlin #android
👍4💩2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Объясняем Kotlin Multiplatform на крестиках-ноликах
KMM позволяет разработчикам объединить всю бизнес-логику в единые модули и запускать один и тот же код на разных платформах. За последние несколько лет эту модель обсуждают всё чаще.
Разработчик Тихон Устинов рассказал о плюсах и минусах работы с KMM в проекте, а также на примере создания игры «крестики-нолики» для Android, iOS и JS продемонстрировал, как применять KMM:
https://habr.com/ru/company/rostelecom/blog/682160/
#kmm #android #ios
KMM позволяет разработчикам объединить всю бизнес-логику в единые модули и запускать один и тот же код на разных платформах. За последние несколько лет эту модель обсуждают всё чаще.
Разработчик Тихон Устинов рассказал о плюсах и минусах работы с KMM в проекте, а также на примере создания игры «крестики-нолики» для Android, iOS и JS продемонстрировал, как применять KMM:
https://habr.com/ru/company/rostelecom/blog/682160/
#kmm #android #ios
🔥14👍3💩1
Повышаем производительность приложения с Baseline Profile
Baseline profile — это классы и методы, которые заранее скомпилированы и установлены вместе с приложением.
Частичная компиляция позволяет ускорить время запуска и производительность.
В отличие от ART Cloud Profile, Baseline profile создаётся во время сборки, поэтому его легче протестировать. Для генерации данного профиля можно использовать библиотеку Macrobenchmark.
Подробнее в статье: https://tprg.ru/6DHA
#android
Baseline profile — это классы и методы, которые заранее скомпилированы и установлены вместе с приложением.
Частичная компиляция позволяет ускорить время запуска и производительность.
В отличие от ART Cloud Profile, Baseline profile создаётся во время сборки, поэтому его легче протестировать. Для генерации данного профиля можно использовать библиотеку Macrobenchmark.
Подробнее в статье: https://tprg.ru/6DHA
#android
Oбновлениe в библиотеках Jetpack
— WebKit 1.5: заменили setForceDark и setForceDarkStrategy API на setAlgorithmicDarkeningAllowed из WebSettingsCompat,
— Compose Runtime 1.3: в CompositionData был добавлен метод find,
— Room 2.5: добавлена новая аннотация Upsert для обновления существующей записи или создания новой,
— Sqlite Version 2.3: androidx.sqlite переписали с Java на Kotlin.
Подробнее: https://tprg.ru/ltBR
#android
— WebKit 1.5: заменили setForceDark и setForceDarkStrategy API на setAlgorithmicDarkeningAllowed из WebSettingsCompat,
— Compose Runtime 1.3: в CompositionData был добавлен метод find,
— Room 2.5: добавлена новая аннотация Upsert для обновления существующей записи или создания новой,
— Sqlite Version 2.3: androidx.sqlite переписали с Java на Kotlin.
Подробнее: https://tprg.ru/ltBR
#android
👍18
Danger: автоматизируем ревью на CI
Плагин Danger запускается во время процесса CI и показывает все ошибки сборки, предупреждения или результаты UI тестов, помогая разработчику не писать однотипные комментарии о кодстайле и ошибках.
Команда из Lamoda уже используют Danger в своих проектах, чтобы упростить ревью пул-реквестов. Разработчик Татьяна Родионова поделилась опытом настройки Danger и рассказала с какими сложностями она столкнулась:
https://habr.com/ru/company/lamoda/blog/681564/
#android
Плагин Danger запускается во время процесса CI и показывает все ошибки сборки, предупреждения или результаты UI тестов, помогая разработчику не писать однотипные комментарии о кодстайле и ошибках.
Команда из Lamoda уже используют Danger в своих проектах, чтобы упростить ревью пул-реквестов. Разработчик Татьяна Родионова поделилась опытом настройки Danger и рассказала с какими сложностями она столкнулась:
https://habr.com/ru/company/lamoda/blog/681564/
#android
👍3
Подборка актуальных вакансий
— Android-разработчик
Где: Удалённо
Опыт: от 2 лет
— Старший Android-разработчик
Где: Москва
Опыт: от 3 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
— iOS-разработчик
Где: удалённо
Опыт: можно без опыта
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Senior iOS-разработчик
Где: Москва
Опыт: от 3 лет
#вакансии #работа
— Android-разработчик
Где: Удалённо
Опыт: от 2 лет
— Старший Android-разработчик
Где: Москва
Опыт: от 3 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
— iOS-разработчик
Где: удалённо
Опыт: можно без опыта
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Senior iOS-разработчик
Где: Москва
Опыт: от 3 лет
#вакансии #работа
👎6👍3
Повторяем алгоритмы сортировки на практике в диаграммах Swift
В этом видеоуроке показано, как использовать Swift Charts, на примере реализации и визуализации различных алгоритмов сортировки:
https://youtu.be/UCSXF741iHI
#swiftui
В этом видеоуроке показано, как использовать Swift Charts, на примере реализации и визуализации различных алгоритмов сортировки:
https://youtu.be/UCSXF741iHI
#swiftui
👍6👎1
Вышла предварительная версия Cross device SDK для разработчиков
Cross device SDK анонсировали ещё на Google I/О. Основная функциональность данной версии: обнаружение устройств, безопасное соединение между устройствами, поддержка сессии на нескольких устройствах.
По сути, этот пакет SDK берёт на себя всю работу с протоколами обнаружения устройств, аутентификации и подключения.
Детальнее: https://tprg.ru/UKB5
#android
Cross device SDK анонсировали ещё на Google I/О. Основная функциональность данной версии: обнаружение устройств, безопасное соединение между устройствами, поддержка сессии на нескольких устройствах.
По сути, этот пакет SDK берёт на себя всю работу с протоколами обнаружения устройств, аутентификации и подключения.
Детальнее: https://tprg.ru/UKB5
#android
👍13🔥1
Как загрузить файл с помощью Retrofit
Библиотека Retrofit используется для работы с REST API и отправки запросов на удалённый сервер в Android.
Этот видеоурок поможет разобраться начинающим, как загружать файл на сервер:
https://youtu.be/fEYhQOUe0g0
#android
Библиотека Retrofit используется для работы с REST API и отправки запросов на удалённый сервер в Android.
Этот видеоурок поможет разобраться начинающим, как загружать файл на сервер:
https://youtu.be/fEYhQOUe0g0
#android
YouTube
How to Upload a File With Retrofit - Android Studio Tutorial
In this video I'll show you how you can upload an image to a remote server using multipart requests and Retrofit.
⭐ Get certificates for your future job
⭐ Save countless hours of time
⭐ 100% money back guarantee for 30 days
⭐ Become a professional Android…
⭐ Get certificates for your future job
⭐ Save countless hours of time
⭐ 100% money back guarantee for 30 days
⭐ Become a professional Android…
👍17❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Как обнаружить утечки памяти в Android-приложениях
Утечки памяти впустую тратят ресурсы приложения и рано или поздно приведут к исключению OutOfMemory. Для их обнаружения часто используется библиотека LeakCanary или Memory Profiler в Android Studio.
LeakCanary проводит анализ на наличие утечек памяти и отправляет уведомление. После нажатия на уведомление LeakCanary сбрасывает heap и предоставляет данные “Leak trace” уже в журнале или в самом приложение LeakCanary.
Разбираемся с причиной возникновения данной проблемы и LeakCanary в статье:
https://tprg.ru/yEWu
#android
Утечки памяти впустую тратят ресурсы приложения и рано или поздно приведут к исключению OutOfMemory. Для их обнаружения часто используется библиотека LeakCanary или Memory Profiler в Android Studio.
LeakCanary проводит анализ на наличие утечек памяти и отправляет уведомление. После нажатия на уведомление LeakCanary сбрасывает heap и предоставляет данные “Leak trace” уже в журнале или в самом приложение LeakCanary.
Разбираемся с причиной возникновения данной проблемы и LeakCanary в статье:
https://tprg.ru/yEWu
#android
🔥10🤔4👍3💩3