Регулярные выражения в Swift
Регулярные выражения позволяют нам выполнять сложные операции поиска и замены в тысячах текстовых файлов всего за несколько секунд, поэтому неудивительно, что они популярны уже более 50 лет. Apple обеспечивает поддержку регулярных выражений на всех своих платформах – iOS, macOS, tvOS и даже watchOS – все они используют один и тот же класс, NSRegularExpression. Это чрезвычайно быстрый и эффективный способ поиска и замены сложного текста десятки тысяч раз, и все это доступно для использования разработчиками Swift.
Rus https://habr.com/ru/articles/740044/
Eng https://www.hackingwithswift.com/articles/108/how-to-use-regular-expressions-in-swift
#ios
👉 @developer_mobila
Регулярные выражения позволяют нам выполнять сложные операции поиска и замены в тысячах текстовых файлов всего за несколько секунд, поэтому неудивительно, что они популярны уже более 50 лет. Apple обеспечивает поддержку регулярных выражений на всех своих платформах – iOS, macOS, tvOS и даже watchOS – все они используют один и тот же класс, NSRegularExpression. Это чрезвычайно быстрый и эффективный способ поиска и замены сложного текста десятки тысяч раз, и все это доступно для использования разработчиками Swift.
Rus https://habr.com/ru/articles/740044/
Eng https://www.hackingwithswift.com/articles/108/how-to-use-regular-expressions-in-swift
#ios
👉 @developer_mobila
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Своя библиотека под Android за один вечер
В процессе написания статьи она незаметно для меня трансформировалась из туториала по публикации Android-проекта как библиотеки в максимально душную статью о том, как математика пригодилась разработчику с гуманитарным бэкграундом в отрисовке анимашек. Статью подробную, разжеванную, с множеством строк кода. Возможно, не для слабонервных.
Что, если у вас появилась потребность использовать один и тот же код на Jetpack Compose между несколькими проектами, да еще так, чтобы он импортировался одинаково и автоматически на нескольких машинах? Такая ситуация может возникнуть с большой вероятностью, потому что Compose не блещет обилием предоставляемых из коробки виджетов и тулзов (хотя их количество постоянно растет). Быть может, ваш дизайнер пришел к вам с чем-то настолько диковинным, что готовыми компонентами просто не обойтись. Тогда тот пайплайн разработки и публикации собственной библиотеки, который я опишу ниже, может оказаться для вас полезным.
В качестве примера возьмем не самый очевидный элемент интерфейса — кнопку с движущейся синусоидоподобной волной. Отлично подойдет для управления, например, голосовым вводом.
https://habr.com/ru/articles/739332/
#Android
👉 @developer_mobila
В процессе написания статьи она незаметно для меня трансформировалась из туториала по публикации Android-проекта как библиотеки в максимально душную статью о том, как математика пригодилась разработчику с гуманитарным бэкграундом в отрисовке анимашек. Статью подробную, разжеванную, с множеством строк кода. Возможно, не для слабонервных.
Что, если у вас появилась потребность использовать один и тот же код на Jetpack Compose между несколькими проектами, да еще так, чтобы он импортировался одинаково и автоматически на нескольких машинах? Такая ситуация может возникнуть с большой вероятностью, потому что Compose не блещет обилием предоставляемых из коробки виджетов и тулзов (хотя их количество постоянно растет). Быть может, ваш дизайнер пришел к вам с чем-то настолько диковинным, что готовыми компонентами просто не обойтись. Тогда тот пайплайн разработки и публикации собственной библиотеки, который я опишу ниже, может оказаться для вас полезным.
В качестве примера возьмем не самый очевидный элемент интерфейса — кнопку с движущейся синусоидоподобной волной. Отлично подойдет для управления, например, голосовым вводом.
https://habr.com/ru/articles/739332/
#Android
👉 @developer_mobila
👍3
BIGO Ads для монетизации приложений
В мобильной медиации Яндекса теперь доступна крупнейшая рекламная сеть BIGO Ads. Для сервиса она уже 13-я. Среди такого количества рекламных сеток создается конкуренция, за счет которой разработчики могут выбирать наиболее выгодные условия.
У BIGO Ads широкое покрытие – Ближний Восток, Россия, страны Южной и Юго-Восточной Азии, что обеспечивает эффективную монетизацию. А подключить ее можно самостоятельно в мобильной медиации Яндекса или с помощью Простой монетизации, где за настройку отвечают эксперты.
https://yandex.ru/adv/news/partneram-prostoy-monetizatsii-i-mobilnoy-mediatsii-stala-dostupna-monetizatsiya-s-bigo-ads
👉 @developer_mobila
В мобильной медиации Яндекса теперь доступна крупнейшая рекламная сеть BIGO Ads. Для сервиса она уже 13-я. Среди такого количества рекламных сеток создается конкуренция, за счет которой разработчики могут выбирать наиболее выгодные условия.
У BIGO Ads широкое покрытие – Ближний Восток, Россия, страны Южной и Юго-Восточной Азии, что обеспечивает эффективную монетизацию. А подключить ее можно самостоятельно в мобильной медиации Яндекса или с помощью Простой монетизации, где за настройку отвечают эксперты.
https://yandex.ru/adv/news/partneram-prostoy-monetizatsii-i-mobilnoy-mediatsii-stala-dostupna-monetizatsiya-s-bigo-ads
👉 @developer_mobila
Яндекс Реклама — продвижение бизнеса и реклама в интернете
Партнёрам Простой монетизации и Мобильной медиации стала доступна монетизация с BIGO Ads
<p>Владельцам мобильных приложений, которые подключили <a href="https://ads.yandex.com/easy/?utm_source=adv&utm_medium=article&utm_content=bigo">Простую монетизацию</a> или Мобильную медиацию Яндекса, стала доступна сеть BIGO Ads.</p>
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Практическое руководство по Jetpack Compose: создаем анимированную кнопку-счетчик
Недавно передо мной возникла необходимость создать кнопку счетчика для небольшого приложения. Бороздя просторы интернета в поисках хороших готовых решений, я наткнулся на этот дизайн от Эхсана Рахими (Ehsan Rahimi) на Dribble. Придя к выводу, что воссоздать его в Compose — задача нетривиальная, я закатал рукава и принялся экспериментировать. В этом руководстве я поделюсь с вами каждым шагом, который я предпринял для реализации этого дизайна в Jetpack Compose.
https://medium.com/@domen.lanisnik/creating-an-animated-counter-button-in-jetpack-compose-444d03129510
#Android
👉 @developer_mobila
Недавно передо мной возникла необходимость создать кнопку счетчика для небольшого приложения. Бороздя просторы интернета в поисках хороших готовых решений, я наткнулся на этот дизайн от Эхсана Рахими (Ehsan Rahimi) на Dribble. Придя к выводу, что воссоздать его в Compose — задача нетривиальная, я закатал рукава и принялся экспериментировать. В этом руководстве я поделюсь с вами каждым шагом, который я предпринял для реализации этого дизайна в Jetpack Compose.
https://medium.com/@domen.lanisnik/creating-an-animated-counter-button-in-jetpack-compose-444d03129510
#Android
👉 @developer_mobila
👍5
Building a robust clean architecture / VIPER iOS app
https://www.bam.tech/article/building-a-robust-clean-architecture-viper-ios-app
#ios
👉 @developer_mobila
https://www.bam.tech/article/building-a-robust-clean-architecture-viper-ios-app
#ios
👉 @developer_mobila
Микросмартфон за 100 рублей: Покупаем смартфон 11-летней давности и… пишем под него приложения
Размер экрана — краеугольный камень мира современных смартфонов. Кто-то считает, что дисплеи должны становиться только больше, а рамки — меньше, кто-то любит «средние» дисплеи диагональю в 5+", ну а кто-то остаётся ярым поклонником и приверженцем компактных смартфонов с крошечными дисплейчиками. В наше время, купить новый смартфон с относительно небольшим дисплеем за приемлемые деньги почти нереально — самые бюджетные модели будут слишком тормозными для современного пользователя. Некоторое время назад, я купил себе бюджетный крошечный смартфон 2012 года выпуска — Samsung Galaxy Pocket, причём всего за 100 рублей. Конечно же мне захотелось довести его до ума — а доводить пришлось руками и навыками прожженного программера! Какой смартфон можно получить за 100 рублей? Читаем в статье!
https://habr.com/ru/companies/itglobalcom/articles/759112/
#Android
👉 @developer_mobila
Размер экрана — краеугольный камень мира современных смартфонов. Кто-то считает, что дисплеи должны становиться только больше, а рамки — меньше, кто-то любит «средние» дисплеи диагональю в 5+", ну а кто-то остаётся ярым поклонником и приверженцем компактных смартфонов с крошечными дисплейчиками. В наше время, купить новый смартфон с относительно небольшим дисплеем за приемлемые деньги почти нереально — самые бюджетные модели будут слишком тормозными для современного пользователя. Некоторое время назад, я купил себе бюджетный крошечный смартфон 2012 года выпуска — Samsung Galaxy Pocket, причём всего за 100 рублей. Конечно же мне захотелось довести его до ума — а доводить пришлось руками и навыками прожженного программера! Какой смартфон можно получить за 100 рублей? Читаем в статье!
https://habr.com/ru/companies/itglobalcom/articles/759112/
#Android
👉 @developer_mobila
👍4
Обзор актуальных инструментов шифрования в Android
Меня зовут Артур Илькаев, я работаю в департаменте экосистемных продуктов, мы разрабатываем VK ID SDK и все что связано с авторизацией и сессиями, в частности — мультиаккаунт.
Секретные данные требуют особого внимания при хранении и передаче. Инструменты для шифрования могут варьироваться по степени сложности, надёжности и производительности. В этом обзоре мы рассмотрим несколько таких инструментов, опишем их эффективность и расскажем о распространённых ошибках при их использовании. Статья написана по мотивам разработки мультиаккаунта, который подвёл нас к исследованию оптимального и безопасного способа хранения сессий.
https://habr.com/ru/companies/vk/articles/776728/
#Android
👉 @developer_mobila
Меня зовут Артур Илькаев, я работаю в департаменте экосистемных продуктов, мы разрабатываем VK ID SDK и все что связано с авторизацией и сессиями, в частности — мультиаккаунт.
Секретные данные требуют особого внимания при хранении и передаче. Инструменты для шифрования могут варьироваться по степени сложности, надёжности и производительности. В этом обзоре мы рассмотрим несколько таких инструментов, опишем их эффективность и расскажем о распространённых ошибках при их использовании. Статья написана по мотивам разработки мультиаккаунта, который подвёл нас к исследованию оптимального и безопасного способа хранения сессий.
https://habr.com/ru/companies/vk/articles/776728/
#Android
👉 @developer_mobila
❤3
🚀 Связные списки в алгоритмических собеседованиях
📌 "Книжного академического образования недостаточно. Книги - это замечательно, но они не помогут вам пройти собеседование. Почему? Подскажу: интервьюверы не видели красно-черных деревье со времен своего обучения в университете. Чтобы успешно пройти собеседование, нужно готовиться на реальных вопросах, встречающихся на собеседованиях" - Лакман Макдауэлл
🗓 2 декабря в 18:00 по МСК пройдет бесплатный урок по подготовке к алгоритмическим собеседования от Senior разработчика из Тинькофф и спикера HighLoad (ex-разработчика Яндекс, Huawei)
На открытом уроке решишь >8 задач, изучишь теорию, которая точно пригодится на собеседовании, и сможешь задать вопросы человеку, который успешно прошел алгоритмические секции в OZON, Tinkoff, VK, СБЕР, Яндекс и Авито
Зарегистрироваться
📌 "Книжного академического образования недостаточно. Книги - это замечательно, но они не помогут вам пройти собеседование. Почему? Подскажу: интервьюверы не видели красно-черных деревье со времен своего обучения в университете. Чтобы успешно пройти собеседование, нужно готовиться на реальных вопросах, встречающихся на собеседованиях" - Лакман Макдауэлл
🗓 2 декабря в 18:00 по МСК пройдет бесплатный урок по подготовке к алгоритмическим собеседования от Senior разработчика из Тинькофф и спикера HighLoad (ex-разработчика Яндекс, Huawei)
На открытом уроке решишь >8 задач, изучишь теорию, которая точно пригодится на собеседовании, и сможешь задать вопросы человеку, который успешно прошел алгоритмические секции в OZON, Tinkoff, VK, СБЕР, Яндекс и Авито
Зарегистрироваться
👍1
Jailbreak checker — как обезопасить свое iOS-приложение
Привет! Меня зовут Тоня, я продуктовый разработчик в продукте QIWI Кошелек. Недавно мы делали задачу по предотвращению рисков в связи с использованием приложения с Jailbreak. Хочу рассказать о трудностях, с которыми столкнулись на пути, и о том, как мы их разрешили.
https://habr.com/ru/companies/qiwi/articles/762600/
#ios
👉 @developer_mobila
Привет! Меня зовут Тоня, я продуктовый разработчик в продукте QIWI Кошелек. Недавно мы делали задачу по предотвращению рисков в связи с использованием приложения с Jailbreak. Хочу рассказать о трудностях, с которыми столкнулись на пути, и о том, как мы их разрешили.
https://habr.com/ru/companies/qiwi/articles/762600/
#ios
👉 @developer_mobila
Хабр
Jailbreak checker — как обезопасить свое iOS-приложение
Привет! Меня зовут Тоня, я продуктовый разработчик в продукте QIWI Кошелек. Недавно мы делали задачу по предотвращению рисков в связи с использованием приложения с Jailbreak. Хочу рассказать о...
👍3👎1👻1
Media is too big
VIEW IN TELEGRAM
Собеседование на Junior Android Dev у Анны Жарковой
Собеседование проходило в формате вопрос-ответ, при необходимости писали пример ответом на вопрос.
Интервьюер: Анна Жаркова, руководитель группы разработки в Usetech
источник
#Android
👉 @developer_mobila
Собеседование проходило в формате вопрос-ответ, при необходимости писали пример ответом на вопрос.
Интервьюер: Анна Жаркова, руководитель группы разработки в Usetech
источник
#Android
👉 @developer_mobila
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Как правильно обрабатывать недоступный контент в iOS 17?
В большинстве наших iOS-приложений мы, разработчики iOS, справляемся с недоступным контентом, отсутствием результатов поиска или сценариями, не имеющими подходящих данных. UI/UX-дизайнеры и мы, разработчики, используем различные подходы, чтобы обеспечить бесперебойный пользовательский опыт.
https://santoshbotre01.medium.com/how-to-handle-content-unavailable-gracefully-with-ios-17-5f1954c64be3
#ios
👉 @developer_mobila
В большинстве наших iOS-приложений мы, разработчики iOS, справляемся с недоступным контентом, отсутствием результатов поиска или сценариями, не имеющими подходящих данных. UI/UX-дизайнеры и мы, разработчики, используем различные подходы, чтобы обеспечить бесперебойный пользовательский опыт.
https://santoshbotre01.medium.com/how-to-handle-content-unavailable-gracefully-with-ios-17-5f1954c64be3
#ios
👉 @developer_mobila
👍1😁1
Собеседование на Mobile Developer: Алексей Панов (Контур)
Собеседование на позицию мобильного разработчика. Проводит Алексей Панов, Senior Android Developer в Контур.
На собеседовании будут проектировать мультиплатформенное приложение и по ходу погружаться в нюансы работы с KMP, корутинами, Compose.
00:00 Ожидание
00:21 Вступление
01:37 Знакомство с экспертом
05:28 Знакомство с кандидатом
06:53 О формате собеседования
07:30 Часть 1. KMP. Проектирование
51:50 Фидбэк по первой части
54:50 Часть 2. Корутины
01:25:48 Фидбэк по второй части
01:26:41 Часть 3. Jetpack Compose
01:35:36 Фидбэк по третьей части
01:39:24 Впечатления кандидата
01:40:17 Общий фидбэк
01:44:03 Разбор вопросов из чата
01:50:00 Заключение
https://www.youtube.com/watch?v=i45sp7O_RUc
#Android
👉 @developer_mobila
Собеседование на позицию мобильного разработчика. Проводит Алексей Панов, Senior Android Developer в Контур.
На собеседовании будут проектировать мультиплатформенное приложение и по ходу погружаться в нюансы работы с KMP, корутинами, Compose.
00:00 Ожидание
00:21 Вступление
01:37 Знакомство с экспертом
05:28 Знакомство с кандидатом
06:53 О формате собеседования
07:30 Часть 1. KMP. Проектирование
51:50 Фидбэк по первой части
54:50 Часть 2. Корутины
01:25:48 Фидбэк по второй части
01:26:41 Часть 3. Jetpack Compose
01:35:36 Фидбэк по третьей части
01:39:24 Впечатления кандидата
01:40:17 Общий фидбэк
01:44:03 Разбор вопросов из чата
01:50:00 Заключение
https://www.youtube.com/watch?v=i45sp7O_RUc
#Android
👉 @developer_mobila
👍1
SwiftUI Custom Alert View - iOS 17 - Xcode 15
0:00 Intro
0:30 Project Setup
2:49 Building Custom Alert View
https://www.youtube.com/watch?v=LaimspStHzk
#ios
👉 @developer_mobila
0:00 Intro
0:30 Project Setup
2:49 Building Custom Alert View
https://www.youtube.com/watch?v=LaimspStHzk
#ios
👉 @developer_mobila
👍1
Почему мой фоновый Worker остановился? Изучение функции StopReason в Android WorkManger
Из-за смены платформ, новых правил и кастомизации Android производителями комплектующих планирование длительных фоновых заданий стало довольно сложной задачей.
https://proandroiddev.com/why-has-my-background-worker-stopped-exploring-android-workmangers-stopreason-a0f743e6411c
#Android
👉 @developer_mobila
Из-за смены платформ, новых правил и кастомизации Android производителями комплектующих планирование длительных фоновых заданий стало довольно сложной задачей.
https://proandroiddev.com/why-has-my-background-worker-stopped-exploring-android-workmangers-stopreason-a0f743e6411c
#Android
👉 @developer_mobila
👍2
How to Create a Lazy Column With Categories in Jetpack Compose
https://www.youtube.com/watch?v=XfYlRn_Jy1g
#Android
👉 @developer_mobila
https://www.youtube.com/watch?v=XfYlRn_Jy1g
#Android
👉 @developer_mobila
YouTube
How to Create a Lazy Column With Categories in Jetpack Compose
In this video, you'll learn how you can create a categorized lazy column, for example for a contact list.
⭐ Learn all the professional technologies applied in the industry
⭐ 100% money back guarantee for 30 days
⭐ Become an industry-ready Android developer…
⭐ Learn all the professional technologies applied in the industry
⭐ 100% money back guarantee for 30 days
⭐ Become an industry-ready Android developer…
👍4
Разбор миграции данных в Swift
00:00 - Intro
00:40 - What is A SwiftData Migration?
01:19 - What Is A Lightweight Migration In SwiftData
02:05 - Defining A Versioned Schema In SwiftData
07:21 - How To Debug SwiftData
11:06 - Changing Property Names In SwiftData
16:17 - How To Create A Schema Migration Plan In SwiftData
18:41 - How To Setup Your ModelContainer With Your Migration Plan
19:41 - How To Test Your Migration Plan In SwiftData
20:40 - When To Use Custom Migrations In SwiftData
22:08 - Creating A New VersionedSchema
23:54 - How to Create a custom migration stage in SwiftData
https://www.youtube.com/watch?v=PDKaZpWuH1I
#ios
👉 @developer_mobila
00:00 - Intro
00:40 - What is A SwiftData Migration?
01:19 - What Is A Lightweight Migration In SwiftData
02:05 - Defining A Versioned Schema In SwiftData
07:21 - How To Debug SwiftData
11:06 - Changing Property Names In SwiftData
16:17 - How To Create A Schema Migration Plan In SwiftData
18:41 - How To Setup Your ModelContainer With Your Migration Plan
19:41 - How To Test Your Migration Plan In SwiftData
20:40 - When To Use Custom Migrations In SwiftData
22:08 - Creating A New VersionedSchema
23:54 - How to Create a custom migration stage in SwiftData
https://www.youtube.com/watch?v=PDKaZpWuH1I
#ios
👉 @developer_mobila
YouTube
SwiftData Migrations | SwiftData Tutorial | #11
Breaking Down Swift Data Migrations | SwiftData Tutorial
**********************************
*Timestamps:*
00:00 - Intro
00:40 - What is A SwiftData Migration?
01:19 - What Is A Lightweight Migration In SwiftData
02:05 - Defining A Versioned Schema In SwiftData…
**********************************
*Timestamps:*
00:00 - Intro
00:40 - What is A SwiftData Migration?
01:19 - What Is A Lightweight Migration In SwiftData
02:05 - Defining A Versioned Schema In SwiftData…
👍1
Mastering RecyclerView Optimizations in Android
RecyclerView - это мощный виджет в Android для эффективного отображения больших списков или сеток данных. Чтобы обеспечить производительность и отзывчивость вашего приложения, очень важно оптимизировать реализацию RecyclerView. В этой статье мы рассмотрим различные техники и концепции, которые помогут вам извлечь максимум пользы из RecyclerView.
https://medium.com/@balsikandar/mastering-recyclerview-optimizations-in-android-f937919d4dd7
#Android
👉 @developer_mobila
RecyclerView - это мощный виджет в Android для эффективного отображения больших списков или сеток данных. Чтобы обеспечить производительность и отзывчивость вашего приложения, очень важно оптимизировать реализацию RecyclerView. В этой статье мы рассмотрим различные техники и концепции, которые помогут вам извлечь максимум пользы из RecyclerView.
https://medium.com/@balsikandar/mastering-recyclerview-optimizations-in-android-f937919d4dd7
#Android
👉 @developer_mobila
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать App Clip для вашего приложения
App Clips - это уменьшенная версия вашего приложения, которая позволяет пользователям выполнять определенные задачи без необходимости загружать полное приложение. Они легкие, поскольку их размер не превышает 15 МБ, и должны быть быстрыми и интуитивно понятными в использовании.
App Clip можно запустить, отсканировав код App Clip, созданный с помощью камеры, или прикоснувшись телефоном к коду App Clip, созданному с помощью NFC. Их также можно запускать из Safari, Карт и даже Сообщений.
В этой статье я покажу вам, как создать App Clip для вашего приложения и как сгенерировать коды, которые вы можете предоставить своим пользователям для запуска App Clip.
https://www.polpiella.dev/create-app-clips/
#ios
👉 @developer_mobila
App Clips - это уменьшенная версия вашего приложения, которая позволяет пользователям выполнять определенные задачи без необходимости загружать полное приложение. Они легкие, поскольку их размер не превышает 15 МБ, и должны быть быстрыми и интуитивно понятными в использовании.
App Clip можно запустить, отсканировав код App Clip, созданный с помощью камеры, или прикоснувшись телефоном к коду App Clip, созданному с помощью NFC. Их также можно запускать из Safari, Карт и даже Сообщений.
В этой статье я покажу вам, как создать App Clip для вашего приложения и как сгенерировать коды, которые вы можете предоставить своим пользователям для запуска App Clip.
https://www.polpiella.dev/create-app-clips/
#ios
👉 @developer_mobila
👍4
ANR internals: touch dispatching through the view hierarchy
https://blog.p-y.wtf/anr-internals-touch-dispatching-through-the-view-hierarchy
#Android
👉 @developer_mobila
https://blog.p-y.wtf/anr-internals-touch-dispatching-through-the-view-hierarchy
#Android
👉 @developer_mobila
👍1