Если вы все еще не обновились на macOS Monterey, то хватит ждать. Новые версии Xcode, начиная с 13.3, не будут работать на более старых версиях операционки.
Twitter
Donny Wals 👾
FYI, it’s that time of the year again where the next Xcode release will require the latest macOS. If you haven’t upgraded to Monterey, now is the time 👍🏼
👎3
Небольшая статья с обзором того, как реализовывать Browser Extension на примере приложения, добавляющего заметки к страницам в Safari. Автор рассказывает про проблемы с хранением данных и построение бриджа между расширением и основным приложением.
Bendodson
Browser Note and the process of building an iOS 15 Safari Extension
An app to reduce my Chinese takeaway order morphs into an iOS 15 Safari Extension to improve mental health.
👍13🔥4
«Лаборатория Касперского» ищет Developer iOS
Работа в «Лаборатории Касперского» — это не только масштабные задачи, но и приятные бонусы: бесплатное обучение, расширенный ДМС со стоматологией, спортзалы прямо в офисе, а еще — программа релокации для кандидатов из регионов и не только.
Быть специалистом в вирусах и антивирусах необязательно! Если вы:
— имеете опыт коммерческой разработки на языке Swift;
— знаете основные фреймворки iOS SDK (Foundation, UIKit);
— понимаете принципы построения пользовательского интерфейса в соответствии с Human Interface Guidelines;
— обладаете знаниями в области проектировании архитектуры приложений;
— и умеете работать с многопоточностью,
то переходите по ссылке, чтобы ознакомиться с подробной информацией о вакансии и присоединиться к команде лучших экспертов.
Работа в «Лаборатории Касперского» — это не только масштабные задачи, но и приятные бонусы: бесплатное обучение, расширенный ДМС со стоматологией, спортзалы прямо в офисе, а еще — программа релокации для кандидатов из регионов и не только.
Быть специалистом в вирусах и антивирусах необязательно! Если вы:
— имеете опыт коммерческой разработки на языке Swift;
— знаете основные фреймворки iOS SDK (Foundation, UIKit);
— понимаете принципы построения пользовательского интерфейса в соответствии с Human Interface Guidelines;
— обладаете знаниями в области проектировании архитектуры приложений;
— и умеете работать с многопоточностью,
то переходите по ссылке, чтобы ознакомиться с подробной информацией о вакансии и присоединиться к команде лучших экспертов.
💩83🔥8👍3🤔3😁1
Обсуждение в Mobile Native Foundation того, какими линтерами стоит пользоваться, чтобы определять мертвый код. Из того, что советуют:
1️⃣SwiftCodeScan от Uber
2️⃣Periphery
1️⃣SwiftCodeScan от Uber
2️⃣Periphery
GitHub
Dead code linter · MobileNativeFoundation discussions · Discussion #156
Hi everyone! I would like to start a discussion regarding dead code linters and your company's best practices. Currently at Uber we use SwiftCodeSan - our own implementation that was open-sourc...
👍7🔥3
В Swift собирается новая рабочая группа, которая будет заниматься вопросами тулинга для генерации документации. Если вам вдруг было бы интересно поучаствовать и есть релевантный опыт, записывайтесь на созвон с Ted Kremenek!
Swift Forums
Swift Documentation Tooling work group - call for interest (video call kickoff survey)
There has been some interest expression in forming a "documentation tooling work group" focused around tooling for documentation generation and symbol graph-related projects: To kick things off, I'm am looking to schedule a video call during the week of…
👍5
В приложении Headhunter 75 фич, каждая из которых выделена в отдельный модуль. Такая архитектура принесла команде следующие проблемы:
1️⃣Такое большое количество фич в приложении сложно поддерживать: соблюдать единую структуру и связи между ними.
2️⃣Проект состоит из огромного количества кода, компиляция происходит довольно медленно.
3️⃣С большим проектом довольно сложно работать из-за огромного количества договоренностей и связей между фичами.
В статье команда рассказывает, как они решают каждую из проблем, а заодно делятся опытом работы с модным сейчас Tuist.
1️⃣Такое большое количество фич в приложении сложно поддерживать: соблюдать единую структуру и связи между ними.
2️⃣Проект состоит из огромного количества кода, компиляция происходит довольно медленно.
3️⃣С большим проектом довольно сложно работать из-за огромного количества договоренностей и связей между фичами.
В статье команда рассказывает, как они решают каждую из проблем, а заодно делятся опытом работы с модным сейчас Tuist.
Хабр
Лайфхаки по многомодульности в iOS
Всем привет! Меня зовут Юра, я iOS-разработчик в core-команде. В этой статье расскажу, как мы работаем с многомодульностью в наших iOS-приложениях. Поговорим про окружение и структуру нашего проекта,...
👍8💩7🔥2❤1
У Apple есть специальная страница на GitHub, на которой они делятся советами по тому, как сделать ваш Swift код более производительным. Если вы по какой-то причине раньше не видели этих советов, обязательно прочитайте и используйте в своем проекте.
GitHub
swift/docs/OptimizationTips.rst at main · swiftlang/swift
The Swift Programming Language. Contribute to swiftlang/swift development by creating an account on GitHub.
👍49🔥20❤3💩2
Советы про то, как максимально обезопасить свое приложение от реджекта на ревью в App Store:
💬Детальное сообщение с видео для ревьюеров, в котором рассказано про основные изменения в версии.
ℹ️Специальная лендинг-страница с основной информацией про приложение, демо-видео внутренних покупок, историей прошлых реджектов и их обжалований.
📝Инструкции по тому, как тестировать приложение
📆Чейнджлог всех предыдущих версий
Список выглядит довольно избыточным и сложным в поддержке. Но если ваше приложение часто страдает от реджектов, то попробуйте что-то из этого перенять.
Версия для тех, у кого нет VPN
💬Детальное сообщение с видео для ревьюеров, в котором рассказано про основные изменения в версии.
ℹ️Специальная лендинг-страница с основной информацией про приложение, демо-видео внутренних покупок, историей прошлых реджектов и их обжалований.
📝Инструкции по тому, как тестировать приложение
📆Чейнджлог всех предыдущих версий
Список выглядит довольно избыточным и сложным в поддержке. Но если ваше приложение часто страдает от реджектов, то попробуйте что-то из этого перенять.
Версия для тех, у кого нет VPN
Twitter
Jordi Bruin
I’ve been doing daily updates for the last few days for both the iOS and macOS versions of Navi and wanted to share a bit about how I minimise the changes of getting caught in App Review 👇🧵
👍8😁4❤1
Community driven документация для SwiftUI со сниппетами кода и гифками. Из интересного – сайт с доками собирается из одного большого Swift файла с помощью GitHub Actions.
GitHub
GitHub - SwiftOnTap/Docs: Complete SwiftUI Docs with Examples
Complete SwiftUI Docs with Examples. Contribute to SwiftOnTap/Docs development by creating an account on GitHub.
👍29🔥5
Продолжение цикла статей от Vivid Money про то, как они ускоряют прохождение автотестов, распараллеливая их через Xcode и Fastlane.
Хабр
Ускоряем прохождение iOS UI-тестов. Часть 2. Распараллеливание тестов
Хабр, привет! Меня зовут Борис. Я Mobile AQA lead в Vivid Money. Это вторая статья в цикле статей по iOS-автоматизации, в которых я расскажу о том, как ускорить прохождение UI-тестов. Данная статья...
👍11
Мы тут уже не первую неделю говорим про Swift 5.6. Вот и официальный блогпост про релиз вышел, с перечислением всех значимых фичей языка и тулинга.
Swift.org
Swift 5.6 Released!
Swift 5.6 is now officially released!
👍11
Разбор того, чем
any
отличается от some,
и есть ли смысл начинать использовать его уже сейчас, или дожидаться Swift 6.Donny Wals
What is the “any” keyword in Swift? – Donny Wals
Learn everything you need to know about the any keyword that was added in Swift 5.6.
🔥14❤1👍1
Claymorphism (клейморфизм в переводе, наверное) – новый тренд в дизайне интерфейсов. Его основные отличительные черты – псевдо-3D элементы интерфейса, активное использование теней и ярких цветов. Детальнее про стиль, его отличие от плоского дизайна и скевоморфизма можно почитать тут.
Smashing Magazine
Claymorphism: Will It Stick Around? — Smashing Magazine
This fresh new design trend has been picking up steam with the rising popularity of colorful inflated 3D graphics in web illustrations and with the latest Virtual Reality projects like “Horizon Worlds”. Let’s see if there is room for Claymorphism on the UI…
👍9
Вместе с версией Swift обновилась и лучшая книга про него – «Advanced Swift» от objc.io. В новом издании:
📌Добавили главу про Swift Concurrency
📌Доработали контент про property wrappers, function builders, протоколы и дженерики.
Обновление бесплатное для всех, кто покупал предыдущие версии.
📌Добавили главу про Swift Concurrency
📌Доработали контент про property wrappers, function builders, протоколы и дженерики.
Обновление бесплатное для всех, кто покупал предыдущие версии.
www.objc.io
Advanced Swift
A deep dive into Swift’s features, from low-level programming to high-level abstractions.
🔥45👍6
В iOS 15 появился протокол
FormatStyle,
который сильно упрощает локализацию различных типов данных, включая свои собственные. В статье приводятся примеры его использования с датами, единицами измерения, числами и кастомными типами.Ampersandsoftworks
FormatStyle Deep Dive
Apple introduced the new FormatStyle protocol with iOS 15. It allows for some truly remarkable things to happen when you’re converting your data into localized strings.
🔥16👍4
В Xcode 13.3 появилась новая утилита `xcdebug`, которая подключается к вашему приложению, запущенному через Xcode, прямо из командной строки. Документации у Apple пока нет, примеров использования тоже, поэтому делитесь вашими кейсами, если будете пробовать!
Twitter
Daniel Martín
Xcode 13.3 has a new tool, xcdebug, which allows you to quickly debug programs or Xcode schemes from a Unix shell.
🔥21👍4🤔3
Merge queue – это практика работы с Git, которая облегчает жизнь с большим количеством веток, в которых меняются одни и те же файлы.
В чем суть проблемы – у вас может в один и тот же момент времени висеть сразу несколько веток с зелеными тестами относительно текущего состояния main. Но как только одна из веток будет слита, все остальные станут красными.
Merge queue решает проблему следующим образом. Все PR попадают в единую очередь. Валидность кода в PR проверяется относительно main, в который будут слиты все предыдущие ветки из очереди. Если PR остается зеленым, то он сольется автоматически. Если нет – то либо заблокирует очередь, либо будет автоматически выкинут из нее.
В чем суть проблемы – у вас может в один и тот же момент времени висеть сразу несколько веток с зелеными тестами относительно текущего состояния main. Но как только одна из веток будет слита, все остальные станут красными.
Merge queue решает проблему следующим образом. Все PR попадают в единую очередь. Валидность кода в PR проверяется относительно main, в который будут слиты все предыдущие ветки из очереди. Если PR остается зеленым, то он сольется автоматически. Если нет – то либо заблокирует очередь, либо будет автоматически выкинут из нее.
Runway
Merge queues: An intro for mobile engineers | by Runway
As a mobile engineer, it’s quite possible you’ve never used, or even heard of, merge queues. This might be due in part to the fact that mobile teams traditionally move a bit slower than their web counterparts (merge queues are more often employed by teams…
🤔13👍7🔥1
В Xcode 13.3 появился новый режим работы билд-системы, который может существенно ускорить сборку некоторых проектов. Чтобы его активировать, используйте следующий флаг:
defaults write com.apple.dt.XCBuild EnableSwiftBuildSystemIntegration 1
🔥9👍3🤔3
Синтаксис регулярок – это ад. Мало кто способен читать их и, тем более, писать, без использования сторонних сервисов валидаторов. Команда Swift внесла пропозал, который добавит в язык новый DSL для составления регулярок. Выглядит не фонтан, но часть проблем в работе с regexp решит.
Swift Forums
[Pitch] Regex builder DSL
Full proposal: https://github.com/apple/swift-experimental-string-processing/blob/main/Documentation/Evolution/RegexBuilderDSL.md Regex builder DSL Status: Pitch Implementation: apple/swift-experimental-string-processing Table of Contents Introduction…
💩11🤔8😱3❤1
VK подготовили Weekend Offer для мобильных разработчиков с бонусом в виде дополнительной зарплаты на старте. Они принимают заявки с 21 до 31 марта: в течение этого времени с вами свяжутся и введут в курс дела. Ищите все подробности тут. Там же можно и заявку отправить. Удачи!
💩128🔥9😁2