Как работают Live Activities
- iOS выделяет ровно восемь часов на всю жизнь Live Activity, после чего выгрузит ее
- Между виджетами для home screen и live activities можно шарить весь код, за исключением связанного с обработкой жизненного цикла
- Live Activity оперирует двумя видами данных: статическими, доступными сразу при старте, и динамическими, которые продолжают поступать в течение жизни виджета
- Данные можно обновлять из приложения, находящегося в foreground, с помощью пушей или BackgroundTasks фреймворка
- iOS выделяет ровно восемь часов на всю жизнь Live Activity, после чего выгрузит ее
- Между виджетами для home screen и live activities можно шарить весь код, за исключением связанного с обработкой жизненного цикла
- Live Activity оперирует двумя видами данных: статическими, доступными сразу при старте, и динамическими, которые продолжают поступать в течение жизни виджета
- Данные можно обновлять из приложения, находящегося в foreground, с помощью пушей или BackgroundTasks фреймворка
Penpot – open source аналог Figma
- Если вас беспокоит будущее Figma после покупки Adobe, или вы просто хотите попробовать бесплатную альтернативу – посмотрите на Penpot
- Помимо стандартных дизайнерских возможностей по работе с графикой и текстом, Penpot умеет создавать интерактивные мокапы приложений и поддерживает коллаборативную работу
- Если вас беспокоит будущее Figma после покупки Adobe, или вы просто хотите попробовать бесплатную альтернативу – посмотрите на Penpot
- Помимо стандартных дизайнерских возможностей по работе с графикой и текстом, Penpot умеет создавать интерактивные мокапы приложений и поддерживает коллаборативную работу
Переезд карт с OpenGL на Metal
В недалеком будущем Apple могут совсем отказаться от поддержки OpenGL, поэтому 2ГИС решили переписать весь движок карт на Metal, сделав по пути его более производительным. В статье они рассказывают с какими проблемами столкнулись на пути от первого прототипа к публикации готового релиза.
В недалеком будущем Apple могут совсем отказаться от поддержки OpenGL, поэтому 2ГИС решили переписать весь движок карт на Metal, сделав по пути его более производительным. В статье они рассказывают с какими проблемами столкнулись на пути от первого прототипа к публикации готового релиза.
Хабр
Переход на Metal
А зачем? Причина первая: уход на пенсию OpenGL для iOS/OSX. В 2018 году Apple объявила, что прекращает поддержку этого графического API, и это только вопрос времени, когда она удалит его из своих...
TCA at scale
- Krzysztof Zablocki рассказывает про свой опыт использования ТСА в огромном проекте
- Основные проблемы: тесты слишком привязаны к деталям имплементации, сложно обозначить границы между action’ами, перфоманс заметно падает с ростом системы
- Krzysztof Zablocki рассказывает про свой опыт использования ТСА в огромном проекте
- Основные проблемы: тесты слишком привязаны к деталям имплементации, сложно обозначить границы между action’ами, перфоманс заметно падает с ростом системы
Krzysztof Zabłocki
Composable Architecture @ Scale
Last week I spoke at NSSpainX to talk about how to use Composable Architecture in larger projects, the kind of issues you might run into and how you can work around them.
Mentioned articles are:
- Exhaustive testing in TCA
- TCA Action Boundaries
- TCA Action…
Mentioned articles are:
- Exhaustive testing in TCA
- TCA Action Boundaries
- TCA Action…
Официальный дизайн-кит в Sketch для iOS 16
Apple обновили официальный дизайн-кит: поддержка iPhone 14, виджеты для lock screen, новые клавиатуры, меню и куча других изменений.
Apple обновили официальный дизайн-кит: поддержка iPhone 14, виджеты для lock screen, новые клавиатуры, меню и куча других изменений.
Курс от Google про то, как правильно писать сообщения об ошибках
- Курс сфокусирован на developer-facing ошибках, и пригодится разработчикам, которые разрабатывают библиотеки и тулинг
- Главная мысль курса – сообщения об ошибках должны отвечать на два вопроса: что пошло не так и как пользователю исправить проблему
- Курс сфокусирован на developer-facing ошибках, и пригодится разработчикам, которые разрабатывают библиотеки и тулинг
- Главная мысль курса – сообщения об ошибках должны отвечать на два вопроса: что пошло не так и как пользователю исправить проблему
Шаблон serverless приложения для AWS Lambda на Swift
AWS Lambda – максимально простой способ задеплоить бэкенд для своего проекта. Шаблон по ссылке это упрощает – с его помощью можно сгенерировать REST API, описанный в Swagger файле. И все это – целиком на Swift.
AWS Lambda – максимально простой способ задеплоить бэкенд для своего проекта. Шаблон по ссылке это упрощает – с его помощью можно сгенерировать REST API, описанный в Swagger файле. И все это – целиком на Swift.
Forwarded from Coffee&Code | Community | Mobile | Android | iOS
Традиционный пятничный анонс на выходные 1-2 октября.
🌆Города, в которых на этой неделе пройдут встречи:
iOS:
🍏АЛМАТЫ
🍏АСТАНА
🍏ВИЛЬНЮС
🍏ГОМЕЛЬ
🍏ЕРЕВАН
🍏КАЗАНЬ
🍏МИНСК
🍏МОСКВА
🍏РОСТОВ-НА-ДОНУ
🍏САНКТ-ПЕТЕРБУРГ
🍏СТАМБУЛ
🍏ТБИЛИСИ
ANDROID:
🤖ЛИПЕЦК
🤖САНКТ-ПЕТЕРБУРГ
👩💻 Пообщаемся на технические темы, обсудим интересные события из мобильной разработки, разберем вопросы с собеседований и поделимся опытом!
❣️Также вы можете поддержать сообщество
🖇Подписывайтесь на наш LinkedIn
Ждём абсолютно всех.
🌆Города, в которых на этой неделе пройдут встречи:
iOS:
🍏АЛМАТЫ
🍏АСТАНА
🍏ВИЛЬНЮС
🍏ГОМЕЛЬ
🍏ЕРЕВАН
🍏КАЗАНЬ
🍏МИНСК
🍏МОСКВА
🍏РОСТОВ-НА-ДОНУ
🍏САНКТ-ПЕТЕРБУРГ
🍏СТАМБУЛ
🍏ТБИЛИСИ
ANDROID:
🤖ЛИПЕЦК
🤖САНКТ-ПЕТЕРБУРГ
👩💻 Пообщаемся на технические темы, обсудим интересные события из мобильной разработки, разберем вопросы с собеседований и поделимся опытом!
❣️Также вы можете поддержать сообщество
🖇Подписывайтесь на наш LinkedIn
Ждём абсолютно всех.
Использование Allure для репортинга результатов тестов
- Сравнение нескольких вариантов репортинга: fastlane-plugin-test_center, XCTestHTMLReport и xcresults в связке с Allure
- Инструкция по подключению Allure к вашим тестам
- Разбор примера отчета
- Сравнение нескольких вариантов репортинга: fastlane-plugin-test_center, XCTestHTMLReport и xcresults в связке с Allure
- Инструкция по подключению Allure к вашим тестам
- Разбор примера отчета
Связка os_log и Console.app
Ребята из Додо рассказывают, как правильно репортить логи с помощью os_log таким образом, чтобы в Console.app можно было бы настроить удобную систему фильтров, позволяющую разбивать все сообщения по категориям и оценивать время исполнения разных функций.
Ребята из Додо рассказывают, как правильно репортить логи с помощью os_log таким образом, чтобы в Console.app можно было бы настроить удобную систему фильтров, позволяющую разбивать все сообщения по категориям и оценивать время исполнения разных функций.
Истории победителей Apple Design Awards 2022
Начиная с июня, Apple публиковали кейс стади приложений и игр, получивших награду в Apple Design Awards. Максимально рекомендую тем, кто хочет разобраться, как лучше всего подходить к интерфейсам в своих проектах.
Начиная с июня, Apple публиковали кейс стади приложений и игр, получивших награду в Apple Design Awards. Максимально рекомендую тем, кто хочет разобраться, как лучше всего подходить к интерфейсам в своих проектах.
30 лайфхаков, которые могут повысить вашу продуктивность
💡Как быстро деманглить Swift код
💡Определение размера View без влияния на лэйаут
💡Простой градиент для заголовков навбара
💡Использование препроцессорных директив в Info.plist
💡Как быстро деманглить Swift код
💡Определение размера View без влияния на лэйаут
💡Простой градиент для заголовков навбара
💡Использование препроцессорных директив в Info.plist
www.fadel.io
30 tips to make you a better iOS developer
If you’d like to know more about the ins and outs of iOS/macOS development, you can find me on Twitter.
.image img { display: block; margin-left: auto; margin-right: auto; border-radius: 12px; } .image-caption { font-style: normal; display: inherit; text…
.image img { display: block; margin-left: auto; margin-right: auto; border-radius: 12px; } .image-caption { font-style: normal; display: inherit; text…
This media is not supported in your browser
VIEW IN TELEGRAM
Prism – рендеринг 3D объектов в SwiftUI
- Позволяет как отрисовывать объекты, так и анимировать кучу их свойств
- Работает с любым View в SwiftUI, совместим со всеми модификаторами
- Очень быстрый и не влияет на sizing
- Позволяет как отрисовывать объекты, так и анимировать кучу их свойств
- Работает с любым View в SwiftUI, совместим со всеми модификаторами
- Очень быстрый и не влияет на sizing
This media is not supported in your browser
VIEW IN TELEGRAM
Связка pull-to-refresh и Dynamic Island
Интересный пример того, как можно обыгрывать Dynamic Island в интерфейсе.
Интересный пример того, как можно обыгрывать Dynamic Island в интерфейсе.
Различия в расчете corner radius в Android и iOS
- Если в Android выставить квадрату шириной 40dp corner radius 30dp, то он будет выглядеть в точности, как corner radius 20dp
- В iOS такого не происходит, и с повышением значения corner radius форма квадрата продолжает меняться
- Так происходит потому, что в Android есть внутреннее ограничение на то, что corner radius не может быть больше, чем половина самой короткой стороны фигуры. В iOS такого ограничения нет.
- Если в Android выставить квадрату шириной 40dp corner radius 30dp, то он будет выглядеть в точности, как corner radius 20dp
- В iOS такого не происходит, и с повышением значения corner radius форма квадрата продолжает меняться
- Так происходит потому, что в Android есть внутреннее ограничение на то, что corner radius не может быть больше, чем половина самой короткой стороны фигуры. В iOS такого ограничения нет.
Особенности работы с Dynamic Island
- При конфигурации WidgetKit для Dynamic Island нужно задать вьюшки для четырех состояний: compact leading, compact trailing, expanded и minimal
- Expanded-состояние делит все пространство виджета на 4 области, и позволяет задать, в каких из них конкретно мы хотим отображать контент
- Можно задавать background color для compact и minimal состояний
- При конфигурации WidgetKit для Dynamic Island нужно задать вьюшки для четырех состояний: compact leading, compact trailing, expanded и minimal
- Expanded-состояние делит все пространство виджета на 4 области, и позволяет задать, в каких из них конкретно мы хотим отображать контент
- Можно задавать background color для compact и minimal состояний
Новые материалы в HIG про графики
📊Charts: Супер подробная статья про то, как надо подходить к дизайну всех составляющих графика: данных, осей, легенды, accessibility
📈Charting data: советы по тому, как представлять данные в виде графиков
📊Charts: Супер подробная статья про то, как надо подходить к дизайну всех составляющих графика: данных, осей, легенды, accessibility
📈Charting data: советы по тому, как представлять данные в виде графиков
This media is not supported in your browser
VIEW IN TELEGRAM
Как правильно отображать строки с динамическим временем
- Если вы используете компонент Text для отображения текущего времени, то могли сталкиваться с тем, что его ширина немного прыгает при изменении времени
- Это происходит, потому что разные цифры имеют разную ширину
- Чтобы избежать этого, примените к Text модификатор monospacedDigit()
- Если вы используете компонент Text для отображения текущего времени, то могли сталкиваться с тем, что его ширина немного прыгает при изменении времени
- Это происходит, потому что разные цифры имеют разную ширину
- Чтобы избежать этого, примените к Text модификатор monospacedDigit()