Функциональное программирование в Android. Знакомство с парадигмой
Мир программирования быстро меняется. Возможно, скоро свою нишу в нём займёт и не особо популярная в кругах Android-разработчиков парадигма функционального программирования. Знания о ней помогут вам расширить кругозор, даже если вы не будете применять их на практике.
Эта статья открывает цикл материалов о функциональном программировании. В нём мы разберёмся, что из этой парадигмы можно применять в архитектуре Android-приложений, а на что стоит смотреть с осторожностью. Но прежде нужно глубже погрузиться в суть функционального программирования.
Сегодня поговорим о теории функционального программирования, её особенностях и о том, что оно может дать вашему приложению. Всё это — на примере моего собственного знакомства с функциональным программированием. Оно уже переросло в идею написать pet-проект на функциональной архитектуре, кстати, но обо всём по порядку.
https://habr.com/ru/companies/dododev/articles/917222/
#Android
👉 @developer_mobila
Мир программирования быстро меняется. Возможно, скоро свою нишу в нём займёт и не особо популярная в кругах Android-разработчиков парадигма функционального программирования. Знания о ней помогут вам расширить кругозор, даже если вы не будете применять их на практике.
Эта статья открывает цикл материалов о функциональном программировании. В нём мы разберёмся, что из этой парадигмы можно применять в архитектуре Android-приложений, а на что стоит смотреть с осторожностью. Но прежде нужно глубже погрузиться в суть функционального программирования.
Сегодня поговорим о теории функционального программирования, её особенностях и о том, что оно может дать вашему приложению. Всё это — на примере моего собственного знакомства с функциональным программированием. Оно уже переросло в идею написать pet-проект на функциональной архитектуре, кстати, но обо всём по порядку.
https://habr.com/ru/companies/dododev/articles/917222/
#Android
👉 @developer_mobila
👍3
📲Хотите научиться разрабатывать кросс-платформенные приложения с использованием Kotlin и Android?
23 июля в 20:00 МСК проведём открытый вебинар в преддверии курса «Android Developer», на котором соберем простое приложение для отображения списка контактов. Вы узнаете, как подключить сеть и локальную базу данных, и запустите приложение на Android, iOS и Desktop. Используя Kotlin и JetBrains Compose, мы покажем, как создавать кросс-платформенные приложения с минимальными усилиями.
Этот урок — идеальный старт для тех, кто хочет освоить кросс-платформенную разработку. Познакомьтесь с библиотеками для работы с сетью и базами данных, а также получите основы работы с JetBrains Compose — современным фреймворком для создания UI.
🔥Все участники получат скидку на большое обучение. Регистрация открыта: https://vk.cc/cNMTiv
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
23 июля в 20:00 МСК проведём открытый вебинар в преддверии курса «Android Developer», на котором соберем простое приложение для отображения списка контактов. Вы узнаете, как подключить сеть и локальную базу данных, и запустите приложение на Android, iOS и Desktop. Используя Kotlin и JetBrains Compose, мы покажем, как создавать кросс-платформенные приложения с минимальными усилиями.
Этот урок — идеальный старт для тех, кто хочет освоить кросс-платформенную разработку. Познакомьтесь с библиотеками для работы с сетью и базами данных, а также получите основы работы с JetBrains Compose — современным фреймворком для создания UI.
🔥Все участники получат скидку на большое обучение. Регистрация открыта: https://vk.cc/cNMTiv
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Я обогнал Google?
Навигация в Compose больше не проблема
Всем привет! Меня зовут Евгений, и я — Android-разработчик. Я не собираюсь соревноваться с Google, но, кажется, кое в чем я их все-таки обогнал.
Получив задачу написать новое приложение, я стал накидывать план: архитектуру, паттерны, фреймворки и библиотеки, которые мне понадобятся. Было решено писать полностью на Compose и для навигации использовать Jetpack Navigation. Тогда я еще не знал, какой ящик Пандоры открываю.
https://habr.com/ru/articles/918562/
#Android
👉 @developer_mobila
Навигация в Compose больше не проблема
Всем привет! Меня зовут Евгений, и я — Android-разработчик. Я не собираюсь соревноваться с Google, но, кажется, кое в чем я их все-таки обогнал.
Получив задачу написать новое приложение, я стал накидывать план: архитектуру, паттерны, фреймворки и библиотеки, которые мне понадобятся. Было решено писать полностью на Compose и для навигации использовать Jetpack Navigation. Тогда я еще не знал, какой ящик Пандоры открываю.
https://habr.com/ru/articles/918562/
#Android
👉 @developer_mobila
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Оборачиваем любой Composable красивой ленточкой
В этой небольшой статье мы узнаем, как создать модификатор ленты, который рисует контур, обтекающий любой элемент интерфейса Compose. Этот эффект можно использовать в качестве эффекта наведения курсора на нужную кнопку или для привлечения внимания к новому действию.
https://www.sinasamaki.com/wrapping-a-fancy-ribbon-around-any-jetpack-composable/
#Android
👉 @developer_mobila
В этой небольшой статье мы узнаем, как создать модификатор ленты, который рисует контур, обтекающий любой элемент интерфейса Compose. Этот эффект можно использовать в качестве эффекта наведения курсора на нужную кнопку или для привлечения внимания к новому действию.
https://www.sinasamaki.com/wrapping-a-fancy-ribbon-around-any-jetpack-composable/
#Android
👉 @developer_mobila
👍5
Работа с телевизионными каналами на Android TV: учимся использовать TIF в 2025. Стартовый гайд для разработчиков
Всем привет! Меня зовут Андрей Юрин, я android-разработчик в онлайн-кинотеатре KION. При создании приложения под Android TV у вас наверняка могут возникнуть вопросы: как получить доступ к списку телевизионных каналов и как организовать у себя трансляцию? В этом материале я отвечу на них и расскажу про взаимодействие с телевизором с помощью Android TV Input Framework (TIF), а также получение через него списка доступных каналов. По сути это первый шаг к созданию полноценного TV-приложения.
https://habr.com/ru/companies/ru_mts/articles/928726/
#Android
👉 @developer_mobila
Всем привет! Меня зовут Андрей Юрин, я android-разработчик в онлайн-кинотеатре KION. При создании приложения под Android TV у вас наверняка могут возникнуть вопросы: как получить доступ к списку телевизионных каналов и как организовать у себя трансляцию? В этом материале я отвечу на них и расскажу про взаимодействие с телевизором с помощью Android TV Input Framework (TIF), а также получение через него списка доступных каналов. По сути это первый шаг к созданию полноценного TV-приложения.
https://habr.com/ru/companies/ru_mts/articles/928726/
#Android
👉 @developer_mobila
👍3
PWA и WebView — как сделать ваше веб-приложение доступным в офлайн-режиме
Привет! Меня зовут Алексей Егоров. Сегодня поговорим про офлайн-режим в PWA и WebView, без лишней теории и с прицелом на мобильные приложения. В разработке я уже больше трёх лет, большую часть этого времени посвятил WebView и мобильным решениям. В этом материале мы разберём, как работают PWA и WebView в офлайн-режиме, посмотрим на инструменты, которые помогают реализовать такую функциональность, и в завершении я поделюсь примером: какую технологию мы выбрали для календаря и как внедрили офлайн-режим на практике.
https://habr.com/ru/companies/vk/articles/931048/
#Android
👉 @developer_mobila
Привет! Меня зовут Алексей Егоров. Сегодня поговорим про офлайн-режим в PWA и WebView, без лишней теории и с прицелом на мобильные приложения. В разработке я уже больше трёх лет, большую часть этого времени посвятил WebView и мобильным решениям. В этом материале мы разберём, как работают PWA и WebView в офлайн-режиме, посмотрим на инструменты, которые помогают реализовать такую функциональность, и в завершении я поделюсь примером: какую технологию мы выбрали для календаря и как внедрили офлайн-режим на практике.
https://habr.com/ru/companies/vk/articles/931048/
#Android
👉 @developer_mobila
👍3
🤖 Тест по Flutter проверь свои знания, готов ли ты к обучению на курсе.
Ответишь — пройдешь на курс "Flutter Mobile Developer" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса
За 6 месяцев вы освоите Dart, Flutter и ключевые инструменты разработки, создадите несколько приложений, получите поддержку преподавателей и выполните проект для портфолио.
➡️ ПРОЙТИ ТЕСТ И ОЗНАКОМИТСЯ С ПРОГРАММОЙ: https://vk.cc/cO7pt0
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Ответишь — пройдешь на курс "Flutter Mobile Developer" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса
За 6 месяцев вы освоите Dart, Flutter и ключевые инструменты разработки, создадите несколько приложений, получите поддержку преподавателей и выполните проект для портфолио.
➡️ ПРОЙТИ ТЕСТ И ОЗНАКОМИТСЯ С ПРОГРАММОЙ: https://vk.cc/cO7pt0
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👎2
Media is too big
VIEW IN TELEGRAM
Как сделать эффект «жидкого стекла» от Apple в Figma
Пошаговое руководство по созданию эффекта «жидкого стекла» в Figma — с объяснением, почему мы меняем каждое свойство.
СОДЕРЖАНИЕ:
0:00 — Вступление
0:49 — Добавление текстурного эффекта
2:09 — Добавление размытия фона
4:09 — Встраивание в кнопку с авто-лейаутом
7:04 — Создание псевдорамы с помощью внутренних теней
9:16 — Заливка кнопки и улучшение видимости текста
10:03 — Итог и завершение
источник
#Android
👉 @developer_mobila
Пошаговое руководство по созданию эффекта «жидкого стекла» в Figma — с объяснением, почему мы меняем каждое свойство.
СОДЕРЖАНИЕ:
0:00 — Вступление
0:49 — Добавление текстурного эффекта
2:09 — Добавление размытия фона
4:09 — Встраивание в кнопку с авто-лейаутом
7:04 — Создание псевдорамы с помощью внутренних теней
9:16 — Заливка кнопки и улучшение видимости текста
10:03 — Итог и завершение
источник
#Android
👉 @developer_mobila
👍4
Media is too big
VIEW IN TELEGRAM
Молот и наковальня iOS-разработчика
Василий Усов, Кирилл Шумаков
Спикеры рассказали о macOS-приложении RaifMagic — внутреннем инструменте Райффайзен Банка, который их команда создала в рамках работы над мобильным приложением для клиентов.
RaifMagic — мощный инструмент для iOS-разработчиков, созданный для упрощения, ускорения и автоматизации ежедневных рабочих задач, а также для унификации и стандартизации окружения и контроля качества программного кода. С момента создания как обертки над командной строкой приложение прошло путь эволюции и превратилось в «центр управления полетами». Если Xcode — это молот, то мы создали наковальню.
Создание внутренних инструментов для разработчиков — привычная практика для любой крупной компании. Зачастую это заканчивается созданием папки scripts с кучей bash-скриптов и постоянным запуском терминала с вводом консольных команд. Мы пошли дальше и постарались сделать инструмент с удобным графическим интерфейсом для запуска генерации проекта. Но даже не предполагали, куда это нас приведет.
Сегодня приложение имеет интегрированный с Swift Concurrency механизм запуска консольных команд, самописную систему автообновления и контроля требуемой для генерации проекта версии, систему контроля и развертывания окружения, систему проверки качества кода, систему интеграции с GitLab для назначения ревьюеров на merge requests, специальный интерфейс для работы с фича-тогглами, позволяющий контролировать срок их жизни, и многие другие функции.
Обо всем этом — в докладе. Спикеры уверены, что история окажется полезной для других команд, размышляющих над созданием подобных инструментов. А некоторые решения мы выложим в open source.
источник
#ios
👉 @developer_mobila
Василий Усов, Кирилл Шумаков
Спикеры рассказали о macOS-приложении RaifMagic — внутреннем инструменте Райффайзен Банка, который их команда создала в рамках работы над мобильным приложением для клиентов.
RaifMagic — мощный инструмент для iOS-разработчиков, созданный для упрощения, ускорения и автоматизации ежедневных рабочих задач, а также для унификации и стандартизации окружения и контроля качества программного кода. С момента создания как обертки над командной строкой приложение прошло путь эволюции и превратилось в «центр управления полетами». Если Xcode — это молот, то мы создали наковальню.
Создание внутренних инструментов для разработчиков — привычная практика для любой крупной компании. Зачастую это заканчивается созданием папки scripts с кучей bash-скриптов и постоянным запуском терминала с вводом консольных команд. Мы пошли дальше и постарались сделать инструмент с удобным графическим интерфейсом для запуска генерации проекта. Но даже не предполагали, куда это нас приведет.
Сегодня приложение имеет интегрированный с Swift Concurrency механизм запуска консольных команд, самописную систему автообновления и контроля требуемой для генерации проекта версии, систему контроля и развертывания окружения, систему проверки качества кода, систему интеграции с GitLab для назначения ревьюеров на merge requests, специальный интерфейс для работы с фича-тогглами, позволяющий контролировать срок их жизни, и многие другие функции.
Обо всем этом — в докладе. Спикеры уверены, что история окажется полезной для других команд, размышляющих над созданием подобных инструментов. А некоторые решения мы выложим в open source.
источник
#ios
👉 @developer_mobila
Пошаговое руководство по написанию эксплойта ядра iOS
Эксплойты ядра iOS всегда вызывали у меня огромный интерес. За последние годы эксплуатация ядра стала значительно сложнее, и традиционные уязвимости (например, связанные с повреждением виртуальной памяти) стали встречаться реже.
Тем не менее, летом 2023 года felix-pb выпустил три эксплойта под названием kfd. Это были первые опубликованные эксплойты ядра, работавшие на iOS 15.6 и выше.
https://habr.com/ru/companies/bastion/articles/920922/
original https://alfiecg.uk/2024/09/24/Kernel-exploit.html
#ios
👉 @developer_mobila
Эксплойты ядра iOS всегда вызывали у меня огромный интерес. За последние годы эксплуатация ядра стала значительно сложнее, и традиционные уязвимости (например, связанные с повреждением виртуальной памяти) стали встречаться реже.
Тем не менее, летом 2023 года felix-pb выпустил три эксплойта под названием kfd. Это были первые опубликованные эксплойты ядра, работавшие на iOS 15.6 и выше.
https://habr.com/ru/companies/bastion/articles/920922/
original https://alfiecg.uk/2024/09/24/Kernel-exploit.html
#ios
👉 @developer_mobila
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Лаборатория в смартфоне: изучаем эффект Доплера на палочках в Android
В этой статье мы познакомимся с эффектом Доплера, но не так, как об этом рассказывается в школьном учебнике физики, а посредством своих любопытных глазок и ушек. Поможет нам в этом специально разработанное мной приложение для Андроид-смартфона.
https://habr.com/ru/articles/920738/
#Android
👉 @developer_mobila
В этой статье мы познакомимся с эффектом Доплера, но не так, как об этом рассказывается в школьном учебнике физики, а посредством своих любопытных глазок и ушек. Поможет нам в этом специально разработанное мной приложение для Андроид-смартфона.
https://habr.com/ru/articles/920738/
#Android
👉 @developer_mobila
👍3❤2
Использование
При отображении элементов в SwiftUI иногда нужно показать их позицию в последовательности — например, для списка инструкций или ранжированных результатов.
Обычный способ сделать это — вызвать
До недавнего времени
https://nilcoalescing.com/blog/UsingEnumeratedWithListAndForEach/
#ios
👉 @developer_mobila
enumerated() с SwiftUI List и ForEach для отображения номеров элементовПри отображении элементов в SwiftUI иногда нужно показать их позицию в последовательности — например, для списка инструкций или ранжированных результатов.
Обычный способ сделать это — вызвать
enumerated() для коллекции. Этот метод возвращает EnumeratedSequence, который представляет собой последовательность пар (offset, element), где offset — это счётчик, начинающийся с нуля, а element — соответствующее значение из исходной коллекции.До недавнего времени
enumerated() не был напрямую совместим с ForEach или List в SwiftUI, так как его результат не соответствовал протоколу RandomAccessCollection. В качестве обходного решения приходилось оборачивать последовательность в массив.
RecipeStepsView: View {
let steps = [
"Chop lettuce, tomatoes, and cucumber.",
"Drizzle with olive oil and lemon juice.",
"Toss gently and serve."
]
var body: some View {
VStack(alignment: .leading) {
ForEach(
Array(steps.enumerated()), id: \.element
) { offset, step in
Text("\(offset + 1). \(step)")
}
}
}
}
https://nilcoalescing.com/blog/UsingEnumeratedWithListAndForEach/
#ios
👉 @developer_mobila
👍2❤1
NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android
Многие мои знакомые и люди в комментариях просили сделать версию под Android и Android TV. Я не очень дружу с Джавой и с Джавой под андроид в особенности, и поэтому такая перспектива меня не очень прельщала, но у меня был опыт написания android-приложений на python и kivy, который я и решил применить. После нескольких дней (и ночей) напряженного труда и танцев с бубном, мне наконец удалось создать NoDPI for Android, который практически не имеет аналогов. Именно о нем я и хочу сегодня рассказать. Надеюсь, статья будет вам полезна и интересна. Поехали!
https://habr.com/ru/articles/923566/
#Android
👉 @developer_mobila
Многие мои знакомые и люди в комментариях просили сделать версию под Android и Android TV. Я не очень дружу с Джавой и с Джавой под андроид в особенности, и поэтому такая перспектива меня не очень прельщала, но у меня был опыт написания android-приложений на python и kivy, который я и решил применить. После нескольких дней (и ночей) напряженного труда и танцев с бубном, мне наконец удалось создать NoDPI for Android, который практически не имеет аналогов. Именно о нем я и хочу сегодня рассказать. Надеюсь, статья будет вам полезна и интересна. Поехали!
https://habr.com/ru/articles/923566/
#Android
👉 @developer_mobila
👍2❤1
Media is too big
VIEW IN TELEGRAM
Dependency Injection in iOS Explained (with SwiftUI)
Chapters:
0:00 What Is Dependency Injection?
0:51 Types of Dependency Injection
1:41 Initializer Injection Example
3:08 Why Use Dependency Injection?
4:18 DI in SwiftUI: Using
6:05 Manual Injection in SwiftUI (via init)
6:44 EnvironmentObject vs Manual Injection
7:38 Manual DI vs DI Containers
8:37 When to Use DI — and When It’s Overkill
источник
#ios
👉 @developer_mobila
Chapters:
0:00 What Is Dependency Injection?
0:51 Types of Dependency Injection
1:41 Initializer Injection Example
3:08 Why Use Dependency Injection?
4:18 DI in SwiftUI: Using
@EnvironmentObject6:05 Manual Injection in SwiftUI (via init)
6:44 EnvironmentObject vs Manual Injection
7:38 Manual DI vs DI Containers
8:37 When to Use DI — and When It’s Overkill
источник
#ios
👉 @developer_mobila
👍2
📱System Design в мобильной разработке — это про архитектуру, которая выходит за рамки экранов и навигации.
Чтобы приложения масштабировались, выдерживали нагрузку и не ломались при росте — нужен системный подход.
Как выстроить его на практике? Подробно обсудим это на Podlodka Android Crew, 15-19 сентября.
В программе:
🧩 Бинарная совместимость: где с ней сталкиваются мобильные разработчики и какие ошибки чаще всего приводят к проблемам. (Абакар Магомедов, Альфа-Банк)
🏗️ Мобильный архитектор: какие решения он принимает и почему без этой роли сложно развивать сложные приложения. (Эдуард Некрутов, Blink)
⚙️ Dependency Injection в KMP: обзор фреймворков и разбор, как выбрать подходящее решение под проект. (Александр Власюк, РайффайзенБанк)
⚡️BDUI в Android: опыт от DivKit, Beduin и Duit. Как перестать хардкодить экраны и ускорить эксперименты, чтобы быстрее проверять гипотезы.
🔗 Подключайся — будет полезно
По промокоду для подписчиков скидка 500 р:android_crew_14_URPLjQ
Чтобы приложения масштабировались, выдерживали нагрузку и не ломались при росте — нужен системный подход.
Как выстроить его на практике? Подробно обсудим это на Podlodka Android Crew, 15-19 сентября.
В программе:
🧩 Бинарная совместимость: где с ней сталкиваются мобильные разработчики и какие ошибки чаще всего приводят к проблемам. (Абакар Магомедов, Альфа-Банк)
🏗️ Мобильный архитектор: какие решения он принимает и почему без этой роли сложно развивать сложные приложения. (Эдуард Некрутов, Blink)
⚙️ Dependency Injection в KMP: обзор фреймворков и разбор, как выбрать подходящее решение под проект. (Александр Власюк, РайффайзенБанк)
⚡️BDUI в Android: опыт от DivKit, Beduin и Duit. Как перестать хардкодить экраны и ускорить эксперименты, чтобы быстрее проверять гипотезы.
🔗 Подключайся — будет полезно
По промокоду для подписчиков скидка 500 р:
Эффекты в Jetpack Compose, лежащие на поверхности
Jetpack Compose, про хитрости которого пойдет речь в этой статье, уже уверенно вошел в индустрию мобильной разработки, но получение некоторых визуальных эффектов до сих пор не так очевидно, как хотелось бы.
Например – как нарисовать полупрозрачный заголовок с эффектом размытия над готовым экраном? Звучит достаточно просто, но на деле Compose не предоставляет для этого готовых инструментов. Приходится что-то изобретать. В данной статье приведен как раз один из способов «наложения» эффекта рендеринга на готовый контент (да-да, заголовок статьи именно про это – эффекты на готовой поверхности).
Дисклеймер: статья рассчитана на читателя продвинутого уровня, уже знакомого с Jetpack Compose и Android-разработкой в целом.
https://habr.com/ru/companies/finam_broker/articles/924802/
#Android
👉 @developer_mobila
Jetpack Compose, про хитрости которого пойдет речь в этой статье, уже уверенно вошел в индустрию мобильной разработки, но получение некоторых визуальных эффектов до сих пор не так очевидно, как хотелось бы.
Например – как нарисовать полупрозрачный заголовок с эффектом размытия над готовым экраном? Звучит достаточно просто, но на деле Compose не предоставляет для этого готовых инструментов. Приходится что-то изобретать. В данной статье приведен как раз один из способов «наложения» эффекта рендеринга на готовый контент (да-да, заголовок статьи именно про это – эффекты на готовой поверхности).
Дисклеймер: статья рассчитана на читателя продвинутого уровня, уже знакомого с Jetpack Compose и Android-разработкой в целом.
https://habr.com/ru/companies/finam_broker/articles/924802/
#Android
👉 @developer_mobila
👍5
Как Swift Runtime влияет на производительность iOS-приложений
В современном мире производительность приложения — ĸритичесĸи важный фаĸтор, определяющий его успех. Пользователи ожидают мгновенного отĸлиĸа и плавной работы, даже небольшие задержĸи могут негативно сĸазаться на восприятии приложения.
Для больших iOS-приложений, написанных на Swift, понимание работы Swift Runtime и его влияния на производительность — важный навыĸ разработчиĸов. Swift Runtime при исполнении ĸода отвечает за фундаментальные вещи языĸа Swift: управление памятью и систему типов в рантайме.
В статье сосредоточимся на механизмах приведения типов и создания generic-типов внутри Swift Runtime и рассмотрим один ĸонĸретный метод, ĸоторый является узĸим местом в производительности приложения. Разберем примеры ĸода, демонстрирующие, ĸогда и почему этот метод вызывается, ĸаĸово его влияние на отзывчивость приложения и ĸаĸие стратегии использовать для смягчения негативного воздействия.
https://habr.com/ru/companies/tbank/articles/947486/
#ios
👉 @developer_mobila
В современном мире производительность приложения — ĸритичесĸи важный фаĸтор, определяющий его успех. Пользователи ожидают мгновенного отĸлиĸа и плавной работы, даже небольшие задержĸи могут негативно сĸазаться на восприятии приложения.
Для больших iOS-приложений, написанных на Swift, понимание работы Swift Runtime и его влияния на производительность — важный навыĸ разработчиĸов. Swift Runtime при исполнении ĸода отвечает за фундаментальные вещи языĸа Swift: управление памятью и систему типов в рантайме.
В статье сосредоточимся на механизмах приведения типов и создания generic-типов внутри Swift Runtime и рассмотрим один ĸонĸретный метод, ĸоторый является узĸим местом в производительности приложения. Разберем примеры ĸода, демонстрирующие, ĸогда и почему этот метод вызывается, ĸаĸово его влияние на отзывчивость приложения и ĸаĸие стратегии использовать для смягчения негативного воздействия.
https://habr.com/ru/companies/tbank/articles/947486/
#ios
👉 @developer_mobila
👍2
Как обнаружить обрезку Text в SwiftUI?
SwiftUI имеет низкий порог вхождения, но использовать его правильно непросто. Именно в этом и заключается прелесть технического обучения: каждый, казалось бы, независимый аспект знаний может в какой-то момент стать ключом к решению сложных задач.
https://fatbobman.com/en/posts/how-to-detect-text-truncation-in-swiftui/
#ios
👉 @developer_mobila
SwiftUI имеет низкий порог вхождения, но использовать его правильно непросто. Именно в этом и заключается прелесть технического обучения: каждый, казалось бы, независимый аспект знаний может в какой-то момент стать ключом к решению сложных задач.
https://fatbobman.com/en/posts/how-to-detect-text-truncation-in-swiftui/
#ios
👉 @developer_mobila
👍1
Swift concurrency. Executors, Actors и их связь с потоками
В данной части из серии статей мы погрузимся чуть глубже в недра Swift Concurrency. Как определяется поток, на котором будет выполняться Task? Почему в рамках одной Task поток может меняться? Что такое Executor и на какие типы он делится? За что отвечает TaskExecutor, а за что SerialExecutor? Как определить текущий Executor по коду? Как использовать свой самописный Executor? В этой статье ответим на эти (и многие другие) вопросы.
https://habr.com/ru/articles/887240/
#ios
👉 @developer_mobila
В данной части из серии статей мы погрузимся чуть глубже в недра Swift Concurrency. Как определяется поток, на котором будет выполняться Task? Почему в рамках одной Task поток может меняться? Что такое Executor и на какие типы он делится? За что отвечает TaskExecutor, а за что SerialExecutor? Как определить текущий Executor по коду? Как использовать свой самописный Executor? В этой статье ответим на эти (и многие другие) вопросы.
https://habr.com/ru/articles/887240/
#ios
👉 @developer_mobila
👍1
