Как работают Live Activities
- iOS выделяет ровно восемь часов на всю жизнь Live Activity, после чего выгрузит ее
- Между виджетами для home screen и live activities можно шарить весь код, за исключением связанного с обработкой жизненного цикла
- Live Activity оперирует двумя видами данных: статическими, доступными сразу при старте, и динамическими, которые продолжают поступать в течение жизни виджета
- Данные можно обновлять из приложения, находящегося в foreground, с помощью пушей или BackgroundTasks фреймворка
- iOS выделяет ровно восемь часов на всю жизнь Live Activity, после чего выгрузит ее
- Между виджетами для home screen и live activities можно шарить весь код, за исключением связанного с обработкой жизненного цикла
- Live Activity оперирует двумя видами данных: статическими, доступными сразу при старте, и динамическими, которые продолжают поступать в течение жизни виджета
- Данные можно обновлять из приложения, находящегося в foreground, с помощью пушей или BackgroundTasks фреймворка
👍23🔥2👎1
Penpot – open source аналог Figma
- Если вас беспокоит будущее Figma после покупки Adobe, или вы просто хотите попробовать бесплатную альтернативу – посмотрите на Penpot
- Помимо стандартных дизайнерских возможностей по работе с графикой и текстом, Penpot умеет создавать интерактивные мокапы приложений и поддерживает коллаборативную работу
- Если вас беспокоит будущее Figma после покупки Adobe, или вы просто хотите попробовать бесплатную альтернативу – посмотрите на Penpot
- Помимо стандартных дизайнерских возможностей по работе с графикой и текстом, Penpot умеет создавать интерактивные мокапы приложений и поддерживает коллаборативную работу
👍31
Переезд карт с OpenGL на Metal
В недалеком будущем Apple могут совсем отказаться от поддержки OpenGL, поэтому 2ГИС решили переписать весь движок карт на Metal, сделав по пути его более производительным. В статье они рассказывают с какими проблемами столкнулись на пути от первого прототипа к публикации готового релиза.
В недалеком будущем Apple могут совсем отказаться от поддержки OpenGL, поэтому 2ГИС решили переписать весь движок карт на Metal, сделав по пути его более производительным. В статье они рассказывают с какими проблемами столкнулись на пути от первого прототипа к публикации готового релиза.
Хабр
Переход на Metal
А зачем? Причина первая: уход на пенсию OpenGL для iOS/OSX. В 2018 году Apple объявила, что прекращает поддержку этого графического API, и это только вопрос времени, когда она удалит его из своих...
😢18🔥11👍3🤯1
TCA at scale
- Krzysztof Zablocki рассказывает про свой опыт использования ТСА в огромном проекте
- Основные проблемы: тесты слишком привязаны к деталям имплементации, сложно обозначить границы между action’ами, перфоманс заметно падает с ростом системы
- Krzysztof Zablocki рассказывает про свой опыт использования ТСА в огромном проекте
- Основные проблемы: тесты слишком привязаны к деталям имплементации, сложно обозначить границы между action’ами, перфоманс заметно падает с ростом системы
👍10🤯2
Официальный дизайн-кит в Sketch для iOS 16
Apple обновили официальный дизайн-кит: поддержка iPhone 14, виджеты для lock screen, новые клавиатуры, меню и куча других изменений.
Apple обновили официальный дизайн-кит: поддержка iPhone 14, виджеты для lock screen, новые клавиатуры, меню и куча других изменений.
👍27🔥3❤🔥2👎2🤩1
Курс от Google про то, как правильно писать сообщения об ошибках
- Курс сфокусирован на developer-facing ошибках, и пригодится разработчикам, которые разрабатывают библиотеки и тулинг
- Главная мысль курса – сообщения об ошибках должны отвечать на два вопроса: что пошло не так и как пользователю исправить проблему
- Курс сфокусирован на developer-facing ошибках, и пригодится разработчикам, которые разрабатывают библиотеки и тулинг
- Главная мысль курса – сообщения об ошибках должны отвечать на два вопроса: что пошло не так и как пользователю исправить проблему
👍16🤡4
Шаблон serverless приложения для AWS Lambda на Swift
AWS Lambda – максимально простой способ задеплоить бэкенд для своего проекта. Шаблон по ссылке это упрощает – с его помощью можно сгенерировать REST API, описанный в Swagger файле. И все это – целиком на Swift.
AWS Lambda – максимально простой способ задеплоить бэкенд для своего проекта. Шаблон по ссылке это упрощает – с его помощью можно сгенерировать REST API, описанный в Swagger файле. И все это – целиком на Swift.
🔥25🤡5👎2❤1
Forwarded from Coffee&Code | Community | IT | Android | iOS | Design | Frontend | Backend | DevOps | QA
Традиционный пятничный анонс на выходные 1-2 октября.
🌆Города, в которых на этой неделе пройдут встречи:
iOS:
🍏АЛМАТЫ
🍏АСТАНА
🍏ВИЛЬНЮС
🍏ГОМЕЛЬ
🍏ЕРЕВАН
🍏КАЗАНЬ
🍏МИНСК
🍏МОСКВА
🍏РОСТОВ-НА-ДОНУ
🍏САНКТ-ПЕТЕРБУРГ
🍏СТАМБУЛ
🍏ТБИЛИСИ
ANDROID:
🤖ЛИПЕЦК
🤖САНКТ-ПЕТЕРБУРГ
👩💻 Пообщаемся на технические темы, обсудим интересные события из мобильной разработки, разберем вопросы с собеседований и поделимся опытом!
❣️Также вы можете поддержать сообщество
🖇Подписывайтесь на наш LinkedIn
Ждём абсолютно всех.
🌆Города, в которых на этой неделе пройдут встречи:
iOS:
🍏АЛМАТЫ
🍏АСТАНА
🍏ВИЛЬНЮС
🍏ГОМЕЛЬ
🍏ЕРЕВАН
🍏КАЗАНЬ
🍏МИНСК
🍏МОСКВА
🍏РОСТОВ-НА-ДОНУ
🍏САНКТ-ПЕТЕРБУРГ
🍏СТАМБУЛ
🍏ТБИЛИСИ
ANDROID:
🤖ЛИПЕЦК
🤖САНКТ-ПЕТЕРБУРГ
👩💻 Пообщаемся на технические темы, обсудим интересные события из мобильной разработки, разберем вопросы с собеседований и поделимся опытом!
❣️Также вы можете поддержать сообщество
🖇Подписывайтесь на наш LinkedIn
Ждём абсолютно всех.
👍8❤🔥1👏1
Использование Allure для репортинга результатов тестов
- Сравнение нескольких вариантов репортинга: fastlane-plugin-test_center, XCTestHTMLReport и xcresults в связке с Allure
- Инструкция по подключению Allure к вашим тестам
- Разбор примера отчета
- Сравнение нескольких вариантов репортинга: fastlane-plugin-test_center, XCTestHTMLReport и xcresults в связке с Allure
- Инструкция по подключению Allure к вашим тестам
- Разбор примера отчета
👍9🔥2
Связка os_log и Console.app
Ребята из Додо рассказывают, как правильно репортить логи с помощью os_log таким образом, чтобы в Console.app можно было бы настроить удобную систему фильтров, позволяющую разбивать все сообщения по категориям и оценивать время исполнения разных функций.
Ребята из Додо рассказывают, как правильно репортить логи с помощью os_log таким образом, чтобы в Console.app можно было бы настроить удобную систему фильтров, позволяющую разбивать все сообщения по категориям и оценивать время исполнения разных функций.
🔥25👍6❤🔥5👎3🕊2
Истории победителей Apple Design Awards 2022
Начиная с июня, Apple публиковали кейс стади приложений и игр, получивших награду в Apple Design Awards. Максимально рекомендую тем, кто хочет разобраться, как лучше всего подходить к интерфейсам в своих проектах.
Начиная с июня, Apple публиковали кейс стади приложений и игр, получивших награду в Apple Design Awards. Максимально рекомендую тем, кто хочет разобраться, как лучше всего подходить к интерфейсам в своих проектах.
👍9❤🔥2🔥1
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…
👍23🔥6🤯4🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
Prism – рендеринг 3D объектов в SwiftUI
- Позволяет как отрисовывать объекты, так и анимировать кучу их свойств
- Работает с любым View в SwiftUI, совместим со всеми модификаторами
- Очень быстрый и не влияет на sizing
- Позволяет как отрисовывать объекты, так и анимировать кучу их свойств
- Работает с любым View в SwiftUI, совместим со всеми модификаторами
- Очень быстрый и не влияет на sizing
🔥43❤2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Связка pull-to-refresh и Dynamic Island
Интересный пример того, как можно обыгрывать Dynamic Island в интерфейсе.
Интересный пример того, как можно обыгрывать Dynamic Island в интерфейсе.
🔥94👍25🤡9🤩1
Различия в расчете 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 такого ограничения нет.
👍30🤡20🤯8😢2
Особенности работы с 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 состояний
🔥14
Новые материалы в HIG про графики
📊Charts: Супер подробная статья про то, как надо подходить к дизайну всех составляющих графика: данных, осей, легенды, accessibility
📈Charting data: советы по тому, как представлять данные в виде графиков
📊Charts: Супер подробная статья про то, как надо подходить к дизайну всех составляющих графика: данных, осей, легенды, accessibility
📈Charting data: советы по тому, как представлять данные в виде графиков
👍11
This media is not supported in your browser
VIEW IN TELEGRAM
Как правильно отображать строки с динамическим временем
- Если вы используете компонент Text для отображения текущего времени, то могли сталкиваться с тем, что его ширина немного прыгает при изменении времени
- Это происходит, потому что разные цифры имеют разную ширину
- Чтобы избежать этого, примените к Text модификатор monospacedDigit()
- Если вы используете компонент Text для отображения текущего времени, то могли сталкиваться с тем, что его ширина немного прыгает при изменении времени
- Это происходит, потому что разные цифры имеют разную ширину
- Чтобы избежать этого, примените к Text модификатор monospacedDigit()
🔥90👍29😱8🤡4