Подробная статья про то, как реализовать в своем SwiftUI приложении поддержку тем, если только переключения между светлой/темной темой недостаточно.
Christianselig
Theming Apps on iOS is Hard
Theming is a feature many apps have, but iOS doesn't make implementing it easy, and this post goes over the reasons why it's hard
This media is not supported in your browser
VIEW IN TELEGRAM
Ночь в Финтехе
К нам пришли ребята из Финтеха Яндекса с новыми (почти безумными) идеями. Что на этот раз? Рассказываем.
Многие из вас наверняка хотели бы сменить работу, но что-то всё время мешает: страшно, рискованно, дискомфортно. А ведь так правда бывает — сделал тестовое, прошел все секции, принял оффер, а потом вдруг понял, что все не то: коллеги душные, задачи грустные и кофе на кухне невкусный.
Все ребята из Финтеха через это когда-то проходили и теперь придумали совершенно новый формат: приглашают мобильных разработчиков к себе на пятничную офисную вечеринку — познакомиться и понять, хочется вам работать вместе или нет. Бургеры, плейстейшен, напитки и музыка – обычный вечер пятницы в офисе, где можно проникнуться атмосферой и понять, на одной ли вы волне.
Вечеринка будет в Москве, но если вы из другого города – ребята обещают организовать поездку. Все на полном серьезе — все подробности читайте здесь.
К нам пришли ребята из Финтеха Яндекса с новыми (почти безумными) идеями. Что на этот раз? Рассказываем.
Многие из вас наверняка хотели бы сменить работу, но что-то всё время мешает: страшно, рискованно, дискомфортно. А ведь так правда бывает — сделал тестовое, прошел все секции, принял оффер, а потом вдруг понял, что все не то: коллеги душные, задачи грустные и кофе на кухне невкусный.
Все ребята из Финтеха через это когда-то проходили и теперь придумали совершенно новый формат: приглашают мобильных разработчиков к себе на пятничную офисную вечеринку — познакомиться и понять, хочется вам работать вместе или нет. Бургеры, плейстейшен, напитки и музыка – обычный вечер пятницы в офисе, где можно проникнуться атмосферой и понять, на одной ли вы волне.
Вечеринка будет в Москве, но если вы из другого города – ребята обещают организовать поездку. Все на полном серьезе — все подробности читайте здесь.
Sha256 – криптографический алгоритм, который помогает получить хеш от любого произвольного сообщения. На прошлой неделе вируснулся сайт, который пошагово на понятных интерактивных схемах объясняет, как этот алгоритм работает (запустится только на десктопе). Попробуйте: во-первых, это интересно, во-вторых, очень красиво!
А если вдруг захотите почитать объяснение работы алгоритма в виде статьи, то вот довольно неплохое объяснение.
А если вдруг захотите почитать объяснение работы алгоритма в виде статьи, то вот довольно неплохое объяснение.
Sha256Algorithm
Sha256 Algorithm Explained
Sha256 algorithm explained online step by step visually
Apple вернули когда-то существовавший в документации раздел Technical Notes. В нем публикуются ответы технической поддержки на частые вопросы, которые не раскрыты в основной документации. Из интересных заметок рекомендую посмотреть на следующие:
Как поддержать HTTP/3 в приложении
Обзор всех API, связанных с работой с Wi-Fi
Алгоритм поднимания приложения по запросу от Core Bluetooth
Как поддержать HTTP/3 в приложении
Обзор всех API, связанных с работой с Wi-Fi
Алгоритм поднимания приложения по запросу от Core Bluetooth
Вводная статья в настройку Xcode Cloud для нового проекта. Если вы, как и я, совсем пропустили шумиху вокруг его анонса и старта закрытой беты, то она поможет составить себе базовое представление о сервисе.
Create with Swift
Setting up Xcode Cloud for Automated Builds, Tests and Distribution
This tutorial shows how to enable Xcode Cloud workflows to leverage the new cloud based toolchain to build, test and distribute apps.
Вы уже попробовали Xcode Cloud?
Anonymous Poll
1%
Да, кайф
1%
Да, не кайф
40%
Нет, но хотел бы
21%
Нет, и не планирую
36%
Посмотреть результаты
Как показал мой недавний опрос и его бурное обсуждение в комментариях, Auto Layout продолжает очень активно использоваться в кодовых базах, и разбираться в нем должен любой iOS разработчик. Я обязательно соберу подборку полезных статей по теме на следующей неделе, а пока – бегите регистрироваться на воркшоп по Auto Layout 22 февраля, где можно будет позадавать спикеру свои вопросы и подсмотреть новые практики.
Protocol extensions – отличная языковая фича, но не всегла ее использование будет оптимальным выбором. В статье рассматриваются несколько различных способов комбинирования протоколов с плюсами и ограничениями каждого.
Swift by Sundell
Combining protocols in Swift | Swift by Sundell
Let’s take a look at various ways to combine multiple protocols into new functionality, either by using protocol extensions, composition, or by defining dedicated types.
В документацию добавили приложение-каталог со всеми элементами из UIKit. С каждым можно поиграться и посмотреть на его поведение в разных ситуациях. Идеальная штука, чтобы собрать ее на телефоны дизайнеров.
Подписчик канала поделился своим проектом – приложением для macOS, которое позволяет подменять локацию запущенного параллельно симулятора. Вот что оно умеет:
🗺ставить локацию к текущей геопозиции
🗺ставить локацию к точке на карте
🗺строить маршрут между точками и симулировать движение по нему с заданной скоростью
Полезная штука для всех, кому нужно дебажить приложения, работающие с геолокацией.
🗺ставить локацию к текущей геопозиции
🗺ставить локацию к точке на карте
🗺строить маршрут между точками и симулировать движение по нему с заданной скоростью
Полезная штука для всех, кому нужно дебажить приложения, работающие с геолокацией.
GitHub
GitHub - nexron171/SimVirtualLocation: iOS/Android device and simulator location mocking tool
iOS/Android device and simulator location mocking tool - nexron171/SimVirtualLocation
Команда Авито гоняет 1500 компонентных тестов на каждый PR, причем сразу на двух версиях iOS – самой старой поддерживаемой и самой новой. Если запускать их последовательно, то весь прогон занимает больше 2.5 часов. В статье рассказывается про их опенсорсный тест-раннер Emcee, который сокращает время прогона этих тестов до 15 минут. Из интересных фичей Emcee:
🐑Управление симуляторами на ферме Mac Mini
📈Сбор статистики по запускам
🔄Перезапуски при необходимости
🛠Интеграция с другими частями тестовой инфры
🐑Управление симуляторами на ферме Mac Mini
📈Сбор статистики по запускам
🔄Перезапуски при необходимости
🛠Интеграция с другими частями тестовой инфры
Хабр
Раннер Emcee. Всем айосерам по тестовой ферме
В iOS-приложении Авито куча UI-тестов — вы это уже наверняка знаете, потому что мы говорим про них постоянно. Это позволяет нам релизиться раз в неделю, причём регрессионное тестирование с ручными...
Если тестов у вас не так много или вы ищете более простое решение, то посмотрите на статью про ускорение прогона тестов от Vivid Money, где они рассказывают, как улучшили свой пайплайн с помощью fastlane и чистого xcodebuild.
Хабр
Ускоряем прохождение iOS UI-тестов. Часть 1. Запуск тестов без сборки проекта
Хабр, привет! Меня зовут Борис. Я Mobile AQA lead в Vivid Money. Это вступительная статья в цикле статей по iOS-автоматизации, в которых я расскажу о том, как ускорить прохождение UI-тестов. Данная...
iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
Линкер – это специальная программа, которая собирает в один исполняемый файл несколько скомпилированных отдельно объектных файлов. Напрямую с линкером вы скорее всего работаете редко, максимум – в Build Settings какие-нибудь флаги выставляете или разбираетесь…
☀️Просыпайтесь, айосеры, пора переводить ваши приложения на SwiftUI. Но только после того, как вы прочитаете наш еженедельный дайджест топовых материалов!
🔥Самые заплюсованные вами статьи за неделю.
Серия статей про линкеры
Про раннер тестов Emcee
Apple Technical Notes
🎨В течение недели было несколько неплохих материалов про разработку UI. В топ они не пробрались, но если вы любите красить кнопки больше, чем писать тесты или заниматься архитектурой – вам понравятся.
Два способа реализовать градиент на UILabel
Темы в SwiftUI
Тред про недостатки Auto Layout
🛠Еженедельная секция “Полезные инструменты”.
Подмена локации в симуляторе
Каталог всех UIKit элементов
👀Напоминаю, что в Good Reads есть и другие каналы: @leadgr, @droidgr и @qa_channel. Я не понимаю, почему вы на них еще не подписались!
Как сделать встречи менее бесполезными
Зачем QA уметь в CI/CD
Серия статей про организацию архитектурных интервью для мобильщиков
Жду ваших реакций ❤️🥰👍🔥. Они помогают мне понять, что дайджесты вам все еще нужны! А в комментариях жду любые идеи по развитию канала дальше!
#digest
🔥Самые заплюсованные вами статьи за неделю.
Серия статей про линкеры
Про раннер тестов Emcee
Apple Technical Notes
🎨В течение недели было несколько неплохих материалов про разработку UI. В топ они не пробрались, но если вы любите красить кнопки больше, чем писать тесты или заниматься архитектурой – вам понравятся.
Два способа реализовать градиент на UILabel
Темы в SwiftUI
Тред про недостатки Auto Layout
🛠Еженедельная секция “Полезные инструменты”.
Подмена локации в симуляторе
Каталог всех UIKit элементов
👀Напоминаю, что в Good Reads есть и другие каналы: @leadgr, @droidgr и @qa_channel. Я не понимаю, почему вы на них еще не подписались!
Как сделать встречи менее бесполезными
Зачем QA уметь в CI/CD
Серия статей про организацию архитектурных интервью для мобильщиков
Жду ваших реакций ❤️🥰👍🔥. Они помогают мне понять, что дайджесты вам все еще нужны! А в комментариях жду любые идеи по развитию канала дальше!
#digest
Хабр
Раннер Emcee. Всем айосерам по тестовой ферме
В iOS-приложении Авито куча UI-тестов — вы это уже наверняка знаете, потому что мы говорим про них постоянно. Это позволяет нам релизиться раз в неделю, причём регрессионное тестирование с ручными...
Большие вьюшки в SwiftUI часто содержат в себе сразу несколько триггеров обновления отображения. Чем сложнее вьюшка, тем тяжелее понять, который из них стал причиной того, что поведение отличается от ожидаемого. В статье разбирается несколько способов дебага, которые спасают в такой ситуации.
SwiftLee
Debugging SwiftUI views: what caused that change?
Debugging SwiftUI views allows you to find the cause of a redraw. Solve unexpected animation issues using this technique.
Еще один сайт с подборкой неочевидных советов по работе с Xcode. В отличие от того, что я постил в прошлый раз, этот:
1. Актуальный
2. С классными иллюстрациями
3. Часто обновляется
1. Актуальный
2. С классными иллюстрациями
3. Часто обновляется
Ребята из MartianCraft написали большую статью про свой подход к собеседованиям iOS разработчиков. Из интересных практик:
💻На технический собес кандидат должен принести какой-то свой код для обсуждения: пет-проджект, рабочий проект, какие-то сниппеты
💬 Все интерью строится вокруг самостоятельного рассказа кандидата об этом коде
🙋Если какая-то тема не раскрывается, про нее задают дополнительные высокоуровневые вопросы
🏡Иногда кандидату дают тестовое – добавить какую-то фичу в эту кодовую базу
Помимо самого процесса в статье есть еще и перечисление тем, знания которых ребята ожидают от кандидата.
💻На технический собес кандидат должен принести какой-то свой код для обсуждения: пет-проджект, рабочий проект, какие-то сниппеты
💬 Все интерью строится вокруг самостоятельного рассказа кандидата об этом коде
🙋Если какая-то тема не раскрывается, про нее задают дополнительные высокоуровневые вопросы
🏡Иногда кандидату дают тестовое – добавить какую-то фичу в эту кодовую базу
Помимо самого процесса в статье есть еще и перечисление тем, знания которых ребята ожидают от кандидата.
Martiancraft
A Take on iOS Developer Interviews
iOS interviews can be frustrating for many, but at MartianCraft we're working to change the perspective and make the process better for everyone involved. Learn how we're changing the iOS interview landscape and get an inside scoop on our interview process.
Знание каких вещей надо проверять на техническом интервью?
Anonymous Poll
56%
Язык (Swift/ObjC)
38%
Разработка UI
48%
Архитектурные подходы
23%
Знание iOS фреймворков
36%
Паттерны и парадигмы
48%
Многопоточность
23%
Инженерные практики (тестирование, VCS, процессы)
1%
Свой вариант (в комменты)
32%
Посмотреть результаты
В GitHub теперь можно дополнять любой текст автоматически генерируемыми диаграммами. Это работает и в README, и в описании PR, и в комментариях. Попробуйте, для объяснения сложных взаимодействий компонентов кода это работает гораздо лучше написания длинных блоков текста.
Пример Mermaid кода для описания диаграммы:
Пример Mermaid кода для описания диаграммы:
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
The GitHub Blog
Include diagrams in your Markdown files with Mermaid
Mermaid is a JavaScript based diagramming and charting tool that takes Markdown-inspired text definitions and creates diagrams dynamically in the browser.
С iOS 15
- Поддерживается не просто маркдаун, а его расширенная версия – GitHub Flawored Markdown.
- Интерполяция не работает, если подставлять строковую переменную as is, надо заворачивать в
- Переносы строк не работают, если не добавить специальное свойство
AttributedString
и Text
поддерживают рендеринг Markdown строк. В статье рассказывается про три неочевидных момента:- Поддерживается не просто маркдаун, а его расширенная версия – GitHub Flawored Markdown.
- Интерполяция не работает, если подставлять строковую переменную as is, надо заворачивать в
LocalizedStringKey.
- Переносы строк не работают, если не добавить специальное свойство
Swifty Tech by Marco Eidinger
3 surprises when using Markdown in SwiftUI
SwiftUI in iOS 15 uses GitHub Flavored Markdown. Tips for using a Text view with non string literals or an AttributedString with line breaks