Ускорение старта приложения DoorDash
DoorDash оптимизировали время старта приложения на 60% с помощью следующего:
🖌️Переезд со
🤷♂️Отказ от использования
👀Аудит сторонних фреймворков, и перенос инициализации на время после вызова
Перевод на русский язык
DoorDash оптимизировали время старта приложения на 60% с помощью следующего:
🖌️Переезд со
String(describing:)
на ObjectIdentifier
– это помогло избавиться от подкапотных protocol conformance checks.🤷♂️Отказ от использования
AnyHashable
в пользу все того же ObjectIdentifier
.👀Аудит сторонних фреймворков, и перенос инициализации на время после вызова
main()
.Перевод на русский язык
❤🔥30👍11💅6🔥4🤡1🌭1
Новые Tech Talks от Apple
👀Обзор последних фичей iOS из призмы тех, кто разрабатывает enterprise приложения
👀Metal Performance HUD с данными о производительности графики в реалтайме
👀Поддержка SharePlay в Game Center
👀Миграция на App Intents
👀Подключение Apple Pay к приложению
👀Обзор последних фичей iOS из призмы тех, кто разрабатывает enterprise приложения
👀Metal Performance HUD с данными о производительности графики в реалтайме
👀Поддержка SharePlay в Game Center
👀Миграция на App Intents
👀Подключение Apple Pay к приложению
Apple
Level up your apps and games - Discover - Apple Developer
Explore the latest developer videos and learn about Metal, SharePlay, enterprise apps and more.
👍10🤡4🌭2❤1💅1
Как следить за позицией скролла в SwiftUI
Перевод на русский язык
ScrollView
в SwiftUI, в отличие от UIScrollView
из UIKit, не дает простого способа следить за изменением позиции скролла. В статье разбирается, как с помощью GeometryReader
можно получать текущий фрейм content view, а потом переводить его в нужную нам систему координат. Как бонус – вспомните, как вообще под капотом работает скролл!Перевод на русский язык
🤡27👍22🔥2👎1💅1
Темизация кастомных компонентов SwiftUI
Большой гайд по использованию SwiftUI view style API для того, чтобы переиспользовать стили между различными кастомными компонентами в приложении. Помимо цветов, выравнивнивания и других визуальных параметров, темизации так же поддаются и параметры accessibility.
Перевод на русский язык
Большой гайд по использованию SwiftUI view style API для того, чтобы переиспользовать стили между различными кастомными компонентами в приложении. Помимо цветов, выравнивнивания и других визуальных параметров, темизации так же поддаются и параметры accessibility.
Перевод на русский язык
👍29🔥1💅1
Как создавать кастомные SF Symbols
Если вы хотите использовать один из существующих SF Symbols, но он не до конца вас устраивает, его можно подкрутить вручную:
📥Экспортируйте его из SF Symbols через File->Export, и откройте в Sketch
🖌️Подкрутите нужный вам слой
📤Экспортируйте его в SVG и перенесите обратно в SF Symbols
Перевод на русский язык
Если вы хотите использовать один из существующих SF Symbols, но он не до конца вас устраивает, его можно подкрутить вручную:
📥Экспортируйте его из SF Symbols через File->Export, и откройте в Sketch
🖌️Подкрутите нужный вам слой
📤Экспортируйте его в SVG и перенесите обратно в SF Symbols
Перевод на русский язык
❤17💅9👍7😱5😁2
Как ускорить инкрементальный билд, если вы используете SwiftLint
Если вы видите такой ворнинг в своем проекте, то статья помодет не только избавиться от него, но и существенно ускорить инкрементальный билд, благодаря тому, что SwiftLint будет запускаться не всегда.
Перевод на русский язык
warning build: Run script build phase 'SwiftLint' will be run during every build because it does not specify any outputs
Если вы видите такой ворнинг в своем проекте, то статья помодет не только избавиться от него, но и существенно ускорить инкрементальный билд, благодаря тому, что SwiftLint будет запускаться не всегда.
Перевод на русский язык
🤡16👍6💅6🔥5🗿1
Перевод GitHub Action Runners на self hosted macOS виртуалки
- Cilicon – инструмент для запуска macOS виртуалок, под капотом которого используется Virtualization Framework.
- Авторы Cilicon используют его для того, чтобы экономить на дорогих macOS агентах в GitHub.
- Помимо экономии, они получили профит и в скорости – MacBook Pro на M1 справляются с задачами где-то в 3 раза быстрее обычных агентов.
Перевод на русский язык
- Cilicon – инструмент для запуска macOS виртуалок, под капотом которого используется Virtualization Framework.
- Авторы Cilicon используют его для того, чтобы экономить на дорогих macOS агентах в GitHub.
- Помимо экономии, они получили профит и в скорости – MacBook Pro на M1 справляются с задачами где-то в 3 раза быстрее обычных агентов.
Перевод на русский язык
🔥17👍4🤡2😱1💅1
This media is not supported in your browser
VIEW IN TELEGRAM
Play – инструмент для работы с дизайном интерфейсов на iOS
Кажется, это первый полноценный редактор UI на мобильных устройствах. Из интересного:
*️⃣Импорт из Figma
*️⃣Разработка интерактивных макетов с поддержкой жестов
*️⃣В макеты можно встраивать нативные контролы iOS
Кажется, это первый полноценный редактор UI на мобильных устройствах. Из интересного:
*️⃣Импорт из Figma
*️⃣Разработка интерактивных макетов с поддержкой жестов
*️⃣В макеты можно встраивать нативные контролы iOS
🤔28🔥16👍5❤🔥1💅1
Конференция Podlodka iOS Crew про инфраструктуру
👀Поддержка AB тестирования и аналитики для большого проекта
👀Выстраивание архитектуры сложных CI/CD скриптов
👀Решение dependency hell с помощью Bazel
👀Работа с App Store Connect API без Fastlane
👀Продвинутые фичи Firebase, Gitlab CI и GitHub Actions
А так, все как вы любите – куча воркшопов, разбор экспертами ваших кейсов, прикладные tips&tricks и куча общения в закрытом сообществе в Телеге.
📆Даты: 27 февраля – 3 марта
👀Поддержка AB тестирования и аналитики для большого проекта
👀Выстраивание архитектуры сложных CI/CD скриптов
👀Решение dependency hell с помощью Bazel
👀Работа с App Store Connect API без Fastlane
👀Продвинутые фичи Firebase, Gitlab CI и GitHub Actions
А так, все как вы любите – куча воркшопов, разбор экспертами ваших кейсов, прикладные tips&tricks и куча общения в закрытом сообществе в Телеге.
📆Даты: 27 февраля – 3 марта
podlodka.io
Онлайн-конференция Podlodka iOS Crew, сезон #16
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам iOS-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
👍12🔥5🤡2💅1
Эволюция архитектуры iOS приложения Facebook
10 лет быстрого роста команды и постоянно меняющихся требований привели архитектуру Facebook к следующему состоянию:
🤯Классов настолько много, что Xcode не может их загрузить.
📦Apple SDK практически нигде не используется напрямую, вокруг всего написаны свои абстракции.
🛠️Куча кодогенерации на Buck.
⏰Если отключить кастомные механизмы кеширования, билд приложения занимает сутки.
В статье разбирается, как кодовая база дошла до такого состояния и как принимались технические решения.
Перевод на русский язык
10 лет быстрого роста команды и постоянно меняющихся требований привели архитектуру Facebook к следующему состоянию:
🤯Классов настолько много, что Xcode не может их загрузить.
📦Apple SDK практически нигде не используется напрямую, вокруг всего написаны свои абстракции.
🛠️Куча кодогенерации на Buck.
⏰Если отключить кастомные механизмы кеширования, билд приложения занимает сутки.
В статье разбирается, как кодовая база дошла до такого состояния и как принимались технические решения.
Перевод на русский язык
🤡60😱20😁5💅4❤1👍1
VK подготовили Weekend Offer в команды Дзена, Почты Mail.ru, Антиспама и Маруси для ML- и мобильных разработчиков
Java-разработчиков тоже ищут, в команде ML Дзена (для тех, кто хотел начать развиваться в ML).
Отклики всех причастных ждут до 16 февраля: до этого времени с вами свяжутся HR, коротко расскажут о командах и назначат слот для онлайн-интервью в выходные.
Оставить отклик можно тут
Java-разработчиков тоже ищут, в команде ML Дзена (для тех, кто хотел начать развиваться в ML).
Отклики всех причастных ждут до 16 февраля: до этого времени с вами свяжутся HR, коротко расскажут о командах и назначат слот для онлайн-интервью в выходные.
Оставить отклик можно тут
team.vk.company
Weekend Offer VK
Weekend Offer для ML-специалистов и мобильных разработчиков
🤡79👍9👎4🌭1💅1
ChatGPT и сториборды
Еще один пример того, как ChatGPT может помогать в рутине. Берете XML сториборды, скармливаете его нейронке, в ответ получаете практически готовый SwiftUI код.
Еще один пример того, как ChatGPT может помогать в рутине. Берете XML сториборды, скармливаете его нейронке, в ответ получаете практически готовый SwiftUI код.
Mastodon
Steve Troughton-Smith (@[email protected])
Attached: 2 images
So I crafted a storyboard in Interface Builder (pic 1). I then took that XML, pasted it into ChatGPT, and asked it to rewrite it in SwiftUI. It gave me SwiftUI code that, with the tiniest bit of massaging, I could drop into Playgrounds…
So I crafted a storyboard in Interface Builder (pic 1). I then took that XML, pasted it into ChatGPT, and asked it to rewrite it in SwiftUI. It gave me SwiftUI code that, with the tiniest bit of massaging, I could drop into Playgrounds…
🤯66👍14🔥4💅1
Как избегать ошибок в релизном пайплайне
В отличие от обычных билдов, релизный пайплайн запускается редко. Из-за этого легко пропустить появление в нем проблем, и столкнуться с ними только в сам момент релиза. Например, такие проблемы састо появляются на этапах архивации и загрузки билда в стор.
В статье предлагается схема регулярных ночных прогонов релизных пайплайнов, которые помогут заметить ошибки максимально рано, и не двигать из-за них дату релиза.
Перевод на русский язык
В отличие от обычных билдов, релизный пайплайн запускается редко. Из-за этого легко пропустить появление в нем проблем, и столкнуться с ними только в сам момент релиза. Например, такие проблемы састо появляются на этапах архивации и загрузки билда в стор.
В статье предлагается схема регулярных ночных прогонов релизных пайплайнов, которые помогут заметить ошибки максимально рано, и не двигать из-за них дату релиза.
Перевод на русский язык
www.polpiella.dev
Testing your release pipeline using Fastlane
Some processes, such as a release pipeline, are very important but do not get run frequently. In this article, I go through how scheduled CI runs can help you spot failures early and gain confidence in your important and infrequent processes, such as release…
👍5💅3👎2
Как прокачать работу с i18n в вашем приложении
На первый взгляд, в локализации нет ничего сложного – закидываешь строки в Localizable.strings, отдаешь каким-нибудь переводчикам, и готово. Но не все так просто. С ростом кодовой базы, размера команды или частоты релизов вы начнете сталкиваться с ограничениями такого подхода.
Ребята из OTUS делают классный открытый урок про разные техники работы с локализацией и полезные инструменты, которые могут упростить вам жизнь. В программе воркшопа:
🐞Проблемы с разработкой и тестированием локализации
🛠Кодогенерация с помощью SwiftGen и R.swift
🔢Тонкости работы с плюрализмом в строках
🇬🇧Автоматизация ревью строковых констант с помощью Localinter
💸Платформы для профессиональных переводов строк
Воркшоп является частью онлайн-курса «iOS Developer. Professional» от OTUS
📆16 февраля в 20:00
👉Регистрация
На первый взгляд, в локализации нет ничего сложного – закидываешь строки в Localizable.strings, отдаешь каким-нибудь переводчикам, и готово. Но не все так просто. С ростом кодовой базы, размера команды или частоты релизов вы начнете сталкиваться с ограничениями такого подхода.
Ребята из OTUS делают классный открытый урок про разные техники работы с локализацией и полезные инструменты, которые могут упростить вам жизнь. В программе воркшопа:
🐞Проблемы с разработкой и тестированием локализации
🛠Кодогенерация с помощью SwiftGen и R.swift
🔢Тонкости работы с плюрализмом в строках
🇬🇧Автоматизация ревью строковых констант с помощью Localinter
💸Платформы для профессиональных переводов строк
Воркшоп является частью онлайн-курса «iOS Developer. Professional» от OTUS
📆16 февраля в 20:00
👉Регистрация
🤡6🔥5👍2👎2❤1💅1
This media is not supported in your browser
VIEW IN TELEGRAM
Как следить за позицией указателя в macOS и iPadOS
В последнюю версию SwiftUI завезли новый модификатор
В последнюю версию SwiftUI завезли новый модификатор
onContinuousHover
. С его помощью можно следить за относительной позицией указателя мыши, когда он находится внутри границ вьюшки.👍33🔥1💅1
Цвета и цветовые пространства
Вы красите кнопки, но делаете это без уважения к цветам. Чтобы исправить ситуацию, мы записали выпуск Подлодки про то, что такое цвета, какие бывают цветовые пространства и чем они различаются, как они выглядят в картинках и градиентах и как отображаются на экранах.
Вдогонку – хорошая статья за авторством гостя про историю развития цвета в CSS и новый формат OLKCH.
Вы красите кнопки, но делаете это без уважения к цветам. Чтобы исправить ситуацию, мы записали выпуск Подлодки про то, что такое цвета, какие бывают цветовые пространства и чем они различаются, как они выглядят в картинках и градиентах и как отображаются на экранах.
Вдогонку – хорошая статья за авторством гостя про историю развития цвета в CSS и новый формат OLKCH.
podlodka.io
Podlodka #305 – Цвета и цветовые пространства
Специально для тех, кто считает несправедливыми шутки про “покраску кнопок”, мы с головой ушли в увлекательный и непростой мир представления цвета в компьютерных системах. Так вот, цвета – это очень сложно! Вместе с Андреем Ситником разбираемся почему.
💅24👍3🔥2👎1
Репозиторий с подборками кастомных SF Symbols
На прошлой неделе я выкладывал пост с инструкцией по импорту кастомных SF Symbols. Вы можете не только рисовать их сами, но и импортировать уже подготовленные для вас.
На прошлой неделе я выкладывал пост с инструкцией по импорту кастомных SF Symbols. Вы можете не только рисовать их сами, но и импортировать уже подготовленные для вас.
🔥33💅9🤩3
Ограничения работы с ML на девайсе
Если вы планируете запускать нейронку прямо на пользовательском девайсе, то стоит быть готовым к разным проблемам и ограничениям. Список основных – в статье.
Если вы планируете запускать нейронку прямо на пользовательском девайсе, то стоит быть готовым к разным проблемам и ограничениям. Список основных – в статье.
Swift with Konstantin
Avoiding the Hidden Hazards: Navigating Non-Obvious Pitfalls in ML on iOS | Swift with Konstantin
A list of the most common pitfalls when using CoreML to run your neural networks on Apple platforms.
👎9👍7💅1
Формулы, описывающие относительное восприятие размеров
Я думаю, вы часто встречались с тем, что фигуры разной формы, вписанные в квадрат одного размера, воспринимаются человеческим глазом как неравные. Обычно в таких ситуациях дизайнеры начинают подгонять размеры на глаз. На самом деле, многие из таких преобразований можно делать не наугад, а используя понятные формулы. В статье разбирается несколько таких частых случаев.
Я думаю, вы часто встречались с тем, что фигуры разной формы, вписанные в квадрат одного размера, воспринимаются человеческим глазом как неравные. Обычно в таких ситуациях дизайнеры начинают подгонять размеры на глаз. На самом деле, многие из таких преобразований можно делать не наугад, а используя понятные формулы. В статье разбирается несколько таких частых случаев.
👍33💅9