Gradle Convention Plugins для Android
Во время разработки можно столкнуться с ошибками при компиляции или конфигурации subprojects и allprojects блоков. Чтобы не копировать одни и те же скрипты при создании новых субмодулей, можно использовать Convention плагин.
Более подробно о плагине и его настройке в этой статье:
https://tprg.ru/9O4Q
#gradle #android
Во время разработки можно столкнуться с ошибками при компиляции или конфигурации subprojects и allprojects блоков. Чтобы не копировать одни и те же скрипты при создании новых субмодулей, можно использовать Convention плагин.
Более подробно о плагине и его настройке в этой статье:
https://tprg.ru/9O4Q
#gradle #android
👍6👎2
Самые раздражающие ошибки при разработке на Android
1. «The project is using an unsupported version of Gradle»
Один из возможных способов решения — проверить версию Gradle на Android Studio и сравнить совпадает ли она с установленной на вашей системе.
2. «Could not access the package manager. Is the system running?»
Проблема тайминга или блокировки экрана. Часто решается просто при перезапуске программы.
3. «Install Failed Insufficient Storage»
Стоит проверить APK файлы и убедиться, что предыдущая версия приложения была удалена.
Предлагаем дополнить список. С какими ошибками вы чаще всего встречались при программировании?
#android
1. «The project is using an unsupported version of Gradle»
Один из возможных способов решения — проверить версию Gradle на Android Studio и сравнить совпадает ли она с установленной на вашей системе.
2. «Could not access the package manager. Is the system running?»
Проблема тайминга или блокировки экрана. Часто решается просто при перезапуске программы.
3. «Install Failed Insufficient Storage»
Стоит проверить APK файлы и убедиться, что предыдущая версия приложения была удалена.
Предлагаем дополнить список. С какими ошибками вы чаще всего встречались при программировании?
#android
👍19👎2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать Google Map с использованием Jetpack Compose
Для разработки приложения нужно:
— настроить Google Cloud, чтобы сгенерировать ключ для использования Google Maps SDK API,
— добавить запрос на доступ к местоположению,
— настроить геолокацию,
— с помощью LocationCallback() получить местоположение пользователя.
В этой статье вы найдете пошаговую инструкцию:
https://tprg.ru/Mvdp
#android
Для разработки приложения нужно:
— настроить Google Cloud, чтобы сгенерировать ключ для использования Google Maps SDK API,
— добавить запрос на доступ к местоположению,
— настроить геолокацию,
— с помощью LocationCallback() получить местоположение пользователя.
В этой статье вы найдете пошаговую инструкцию:
https://tprg.ru/Mvdp
#android
❤7👍3🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
PokeCardCompose: приложение с карточками покемонов на Android
Проект PokeCardCompose был создан на основе архитектуры MVI с использованием Koin и Jetpack Compose. Приложение получает данные из сети с помощью Ktor и сохраняет в БД.
Детальнее о стеке используемых технологий читайте здесь:
https://androidrepo.com/repo/lopspower-PokeCardCompose
P.S. покемоны не прилагаются к архитектуре проекта
#android
Проект PokeCardCompose был создан на основе архитектуры MVI с использованием Koin и Jetpack Compose. Приложение получает данные из сети с помощью Ktor и сохраняет в БД.
Детальнее о стеке используемых технологий читайте здесь:
https://androidrepo.com/repo/lopspower-PokeCardCompose
P.S. покемоны не прилагаются к архитектуре проекта
#android
👍9👎5😁2
UI-тесты: Шпаргалка по Compose
Переходя с View на Compose, можно легко потеряться в многообразии API для тестирования. В этой шпаргалке собраны все основные API для покрытия приложения UI тестами:
https://tprg.ru/tPJ3
#android #compose
Переходя с View на Compose, можно легко потеряться в многообразии API для тестирования. В этой шпаргалке собраны все основные API для покрытия приложения UI тестами:
https://tprg.ru/tPJ3
#android #compose
👍16
This media is not supported in your browser
VIEW IN TELEGRAM
Полезные библиотеки на GitHub для iOS-разработчиков
1. SSZipArchive — простой Utility-класс для сжатия и распаковки файлов. С помощью ZipArchive можно открывать защищённые паролем zip-архивы, а также создавать большие (>4,3 Гб) zip-файлы.
2. YPImagePicker — image-picker в стиле Instagram. Эта библиотека даёт возможность обрабатывать изображения, видео из галереи или сделать фото из приложения.
3. SwiftCharts — фреймворк для создания диаграмм в приложении. В этой библиотеке можно найти все виды диаграмм: простые, вертикальные, линейные и настроить стиль диаграммы.
4. Flex — библиотека с набором встроенных инструментов для отладки. С помощью панели инструментов вы можете просматривать и изменять практически любую часть приложения.
#ios
1. SSZipArchive — простой Utility-класс для сжатия и распаковки файлов. С помощью ZipArchive можно открывать защищённые паролем zip-архивы, а также создавать большие (>4,3 Гб) zip-файлы.
2. YPImagePicker — image-picker в стиле Instagram. Эта библиотека даёт возможность обрабатывать изображения, видео из галереи или сделать фото из приложения.
3. SwiftCharts — фреймворк для создания диаграмм в приложении. В этой библиотеке можно найти все виды диаграмм: простые, вертикальные, линейные и настроить стиль диаграммы.
4. Flex — библиотека с набором встроенных инструментов для отладки. С помощью панели инструментов вы можете просматривать и изменять практически любую часть приложения.
#ios
👍8👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать свою анимацию с помощью SwiftUI? Гайд для начинающих
Анимация ожидания или загрузки показывает пользователю, что приложение не зависло/не закрылось, а просто ждет ответа с сервера. Такой вид анимации давно используется в YouTube, чтобы отвлечь пользователя, пока загружается контент.
По ссылке пример создания анимации загрузки:
https://tprg.ru/IAbi
#swiftui
Анимация ожидания или загрузки показывает пользователю, что приложение не зависло/не закрылось, а просто ждет ответа с сервера. Такой вид анимации давно используется в YouTube, чтобы отвлечь пользователя, пока загружается контент.
По ссылке пример создания анимации загрузки:
https://tprg.ru/IAbi
#swiftui
👍3
Создаём приложение с прогнозом погоды на Flutter
Для реализации проекта вам понадобится:
— любая среда разработки, в которой установлен Flutter SDK,
— аккаунт на сайте Tomorrow.io для доступа к данным о погоде,
— базовое понимание Dart и Flutter.
В приложение всего один экран, на котором отображается текущая погода и ежедневный прогноз на 4 дня для определенного местоположения. В этой статье автор подробно разобрал процесс разработки:
https://habr.com/ru/post/656033/
#flutter
Для реализации проекта вам понадобится:
— любая среда разработки, в которой установлен Flutter SDK,
— аккаунт на сайте Tomorrow.io для доступа к данным о погоде,
— базовое понимание Dart и Flutter.
В приложение всего один экран, на котором отображается текущая погода и ежедневный прогноз на 4 дня для определенного местоположения. В этой статье автор подробно разобрал процесс разработки:
https://habr.com/ru/post/656033/
#flutter
👍13
Иерархия модулей в 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