Подборка актуальных вакансий
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Senior iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
— Старший Android-разработчик
Где: Москва
Опыт: от 3 лет
#вакансии #работа
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Senior iOS-разработчик
Где: Москва
Опыт: от 3 лет
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
— Старший Android-разработчик
Где: Москва
Опыт: от 3 лет
#вакансии #работа
👎18👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Создаём Dialog, Snackbar и Toast на Android
В этом уроке вы изучите как:
— использовать диалоговые окна,
— показать индикатор загрузки,
— создать кастомный Toast и SnackBar.
Переходите на гайд для детального разбора:
https://tprg.ru/o7nc
#android
В этом уроке вы изучите как:
— использовать диалоговые окна,
— показать индикатор загрузки,
— создать кастомный Toast и SnackBar.
Переходите на гайд для детального разбора:
https://tprg.ru/o7nc
#android
💩6🤮3🤔2❤1👍1
Какие сервисы Accessibility существуют на Android
Accessibility Services помогают адаптироваться людям с ограниченными возможностями в приложении.
— TalkBack зачитывает информацию с экрана,
— Voice Access позволяет управлять устройством с помощью голосых команд,
— Live Captions преобразовывает речь в субтитры.
В этой статье вы подробно узнаете о доступных сервисах на Android и найдете примеры, как улучшить их под ваше приложение:
https://tprg.ru/5LB7
#android
Accessibility Services помогают адаптироваться людям с ограниченными возможностями в приложении.
— TalkBack зачитывает информацию с экрана,
— Voice Access позволяет управлять устройством с помощью голосых команд,
— Live Captions преобразовывает речь в субтитры.
В этой статье вы подробно узнаете о доступных сервисах на Android и найдете примеры, как улучшить их под ваше приложение:
https://tprg.ru/5LB7
#android
👍9
Состоялся релиз Android 13
15 августа Google выпустил новую версию Android. К сожалению, пока только для Pixel. Что нового?
— новый интерфейс выбора фотографий и видео,
— средства разработки приложений обновили до OpenJDK 11,
— появился API, который позволяет привязывать к приложению индивидуальные настройки языка,
— добавлена поддержка MIDI 2.0,
— аудиодескрипция в Accessibility.
Детальнее в этой статье:
https://tprg.ru/9TD6
#android
15 августа Google выпустил новую версию Android. К сожалению, пока только для Pixel. Что нового?
— новый интерфейс выбора фотографий и видео,
— средства разработки приложений обновили до OpenJDK 11,
— появился API, который позволяет привязывать к приложению индивидуальные настройки языка,
— добавлена поддержка MIDI 2.0,
— аудиодескрипция в Accessibility.
Детальнее в этой статье:
https://tprg.ru/9TD6
#android
👍15🤮1
Как запустить мобильное приложение с помощью PWA
Разработка PWA не требует SDK для конкретных платформ и мало чем отличается от обычной веб-разработки.
Мы решили разобрать отличительные качества таких приложений, а также способы интеграции PWA в веб-сайт:
https://tproger.ru/articles/kak-zapustit-mobilnoe-prilozhenie-za-tri-nedeli-s-pomoshhju-pwa/
#pwa
Разработка PWA не требует SDK для конкретных платформ и мало чем отличается от обычной веб-разработки.
Мы решили разобрать отличительные качества таких приложений, а также способы интеграции PWA в веб-сайт:
https://tproger.ru/articles/kak-zapustit-mobilnoe-prilozhenie-za-tri-nedeli-s-pomoshhju-pwa/
#pwa
👍8
Реализуем сторис на Flutter
В видео вы узнаете, как создать виджет stories с возможностью использования:
— индикатора прогресса для каждого элемента истории,
— жестов для предыдущего или следующего сторис,
— картинок или видео (в гайде используются однотонные изображения, но вы можете использовать любое фото или видео).
Посмотреть можно тут:
https://youtu.be/x1EoKmhYjB0
#flutter
В видео вы узнаете, как создать виджет stories с возможностью использования:
— индикатора прогресса для каждого элемента истории,
— жестов для предыдущего или следующего сторис,
— картинок или видео (в гайде используются однотонные изображения, но вы можете использовать любое фото или видео).
Посмотреть можно тут:
https://youtu.be/x1EoKmhYjB0
#flutter
🔥17👍1👏1
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