Обновить
256K+

iOS *

Мобильная ОС компании Apple

66,61
Рейтинг
Сначала показывать
Порог рейтинга

Помогите, кто чем может. Яндекс пробил дно

У меня айфон с маленьким экраном. Предпочитаю компактные модели, чтобы умещались в любом кармане. Это доставляет и некоторые неудобства. Например, часть приложений плохо работают, элементы интерфейса перекрывают друг друга, и из-за этого некоторые функции становятся недоступны. Иногда с такой проблемой я сталкивался в приложении Яндекс.Такси.

В связи с тем, что с продукцией Apple в России в последнее время ситуация постоянно ухудшается, планирую перейти на Android. Нашел подходящую модель на Яндекс.Маркете смартфон Conquest F3 Plus. Одна проблема — в этой модели экран еще меньше, чем у меня сейчас. Значит, есть риск, что приложения, которые глючили на старом смартфоне, вообще не смогут работать на новом.

С данным вопросом я обратился в поддержку Яндекса. Я был уверен, что получу точный ответ, будет работать приложение Яндекс.Go на интересующем меня устройстве или не будет. Ведь что может быть проще? Любой разработчик может, даже если не знает точно, в эмуляторе задать указанное разрешение экрана и прогнать тесты.

Ответом поддержки я был, мягко говоря, ошарашен. Ниже привожу текст нашего диалога со скринами.

Здравствуйте! Будет ли работать ваше приложение на вот такой модели смартфона?
https://market.yandex.ru/cc/9aPY2a
Разрешение экрана 540x1200.

Данную информацию вы можете уточнить в магазине приложений, из которого вы хотите скачать наше приложение

Я хочу купить новый смартфон, но мне нужно знать, будут ли работать нужные приложения. Ваше приложение очень плохо работает на экране с разрешением 1344x750. Хоть и работает. Какое разрешение поддерживает yandex.go? Будет ли оно работать на экране 540x200?

Данную информацию уточнить не получится, подсказать смогут в магазине приложений

Что значит, не получится? Напишите разработчикам, и они вам скажут.

Пожалуйста, обратитесь в магазин приложений для уточнения минимальных системных требований для корректной работы приложения

Какой магазин?

Магазин приложений вашего устройства

Итак, поддержка Яндекс.Go не смогла ответить на вопрос о системных требованиях собственного приложения. Неожиданно. У меня нет ни малейших идей, как такое стало возможно.

В связи с этим я решил обратиться за помощью к товарищам по отрасли. Может, кто-нибудь из читателей Хабра пробовал ставить Яндекс.Go на Android 12 с разрешением экрана 540x1200. Нормально работает?

Теги:
+3
Комментарии11

Вы попали в следующую ситуацию: граница, проверка, оператор просит разблокировать телефон. Отказаться нельзя или невыгодно. Что можно?

Стандартные ответы у мессенджеров слабые. Обычный app-lock PIN открывает то же приложение, под принуждением бесполезен. «Удалить аккаунт по PIN» лучше, но видно что что-то стёрто. Облачные TTL текущий запрос не закрывают.

В RCQ сделали по-другому. Локальная история шифруется AES-256-GCM, ключ выводится из PIN’а через PBKDF2-HMAC-SHA256 на 400к раундов с per-install salt в keychain. Разные PIN’ы открывают разные хранилища.

400к раундов это около секунды CPU на iPhone, достаточно медленно чтобы offline-bruteforce был дорогой. Но реальная защита это длина PIN’а: 4-значный перебирается за десятки минут на M-чипе, 8-значный за месяцы. Default 6-8 символов.

Четыре режима

  1. Real PIN - открывает реальный аккаунт.

  2. Decoy PIN - открывает отдельный аккаунт с собственным UIN и SQLite. Не пустой экран (пустой это сигнал), а правдоподобно освоенный: пара контактов, несколько сообщений.

  3. Wipe PIN - тихо стирает оба SQLite, чистит keychain, дёргает DELETE /auth/account. Без подтверждений и прогресс-баров. Через 3 секунды приложение перезапускается как свежеустановленное.

  4. Biometric - опциональная вторая дверь к real. Не совмещается с decoy/wipe (скорее для удобства).

Честно про границы

Защищает от: казуального осмотра, принуждённой разблокировки, ситуации «5 секунд до того как заберут».

Не защищает от: forensic-лаб с offline-bruteforce’ом короткого PIN’а, jailbroken устройства с активным debugger’ом, человека рядом который видел как вы вводите PIN (разумеется).

Threat model правильный: «есть несколько секунд до того как кто-то откроет приложение, дальше я не контролирую устройство». Для «forensic с неограниченным временем» нужны другие инструменты. Главное из них: не пользоваться телефоном для чувствительных переписок вообще.

Стек живёт в RCQ, открытая бета на iOS. Код открытый: github.com/rcq-messenger/rcq-ios. Про маскировку самого факта установки приложения будет отдельно.

Теги:
+1
Комментарии11

Если вы сидите на MacOS / iOS и у вас VPN на VLESS+XTLS‑Reality, то при очередном обновлении системы/VPN-клиента с высокой вероятностью всё сломается или уже сломалось. Это не баг Shadowrocket и не баг xray-core. Apple ввела квантово-безопасное шифрование TLS 1.3 по умолчанию в iOS 26 / macOS 26, которое увеличивает размер TLS ClientHello на ~1216 байт. REALITY-сервер xray-core не может корректно прочитать такое большое сообщение — отсюда firstLen = 0 и отсутствие соединения. Windows это не затронуто. Простого/универсального решения нет, т.к. откат на предыдущую версию в экосистеме Apple — тот ещё квест. Если ваше клиентское приложение VPN позволяет настроить TLS → Fingerprint, тогда там необходимо выбрать firefox или Crome110 — для которых ещё не было поддержки X25519MLKEM768. В этом случае всё легко чинится.

Теги:
+2
Комментарии2

Инструменты, которые упрощают iOS-разработку

Старый код усложняет рефакторинг, тесты в команде запускаются по‑разному, баги не воспроизводятся на хорошем Wi‑Fi, а после обновления инструментов локальная сборка начинает расходиться с CI — по отдельности все это мелочи, но именно они постепенно начинают тормозить разработку.

Ринат, iOS‑разработчик Naumen, рассказал об инструментах, которые помогают ему решать такие задачи и упрощать повседневную работу.

  • Periphery: поиск мертвого кода в Swift‑проектах

Со временем в любом проекте появляется код, который уже не используется: старые методы и фичи, забытые extensions и helpers. Все это усложняет навигацию и мешает быстро понять архитектуру проекта.

Periphery помогает находить такие места и наводить порядок перед изменениями в кодовой базе.

Как использую

Запускаю Periphery перед рефакторингом — например, когда нужно обновить модуль профиля с сотнями файлов.

periphery scan

После сканирования инструмент показывает классы, методы, свойства, enum cases, imports и другие элементы. Так проще понять, что действительно участвует в работе приложения.

Что важно знать: результаты всегда нужно проверять вручную. Инструмент может не учитывать динамические вызовы, reflection, Objective-C runtime, storyboard-ссылки или код, который используется через строки.

  • Network Link Conditioner: тестирование слабой сети

Во время разработки приложение чаще всего тестируется в почти идеальных условиях. Но у пользователей все может работать иначе.

Network Link Conditioner — инструмент от Apple, который помогает эмулировать разные сетевые условия. Например, индикатор загрузки крутится бесконечно, повторная попытка не срабатывает, время ожидания слишком короткое, а пользователь не получает понятного сообщения об ошибке.

Как использую

Обычно проверяю сценарии авторизации, оплаты, загрузки медиа и офлайн‑режимы. Для этого включаю профиль вроде плохого 3G, высокой задержки или потери пакетов и смотрю, как приложение ведет себя в нестабильной сети.

Что важно знать: проверять стоит не только низкую скорость интернета, но и нестабильность сети. А еще важно не забывать выключать Conditioner после проверки :)

  • just: короткие команды вместо длинных инструкций

В iOS‑проектах быстро накапливаются команды, которые приходится запускать постоянно: тесты, форматирование, генерация ресурсов. Со временем это превращается либо в огромный онбординг‑документ, либо в постоянный поиск нужной команды в документации.

just собирает основные сценарии работы в одном месте и запускает их через короткие понятные команды. В итоге justfile становится чем‑то вроде живой документации проекта.

Как использую

Чтобы каждый раз не вспоминать синтаксис, храню основные сценарии работы в justfile.

test:
    xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15'
format:
    swiftformat .
    swiftlint
clean:
    rm -rf ~/Library/Developer/Xcode/DerivedData

После этого вместо длинных команд достаточно написать:

just test
just format
just clean

Что важно знать: just не заменяет CI, Makefile или build system. Это скорее удобный слой для повседневных команд. Поэтому лучше держать justfile простым и не превращать его в большой набор скриптов.

  • Mint: фиксация версий CLI-инструментов на Swift

Когда у разработчиков разные версии линтеров, форматтеров и других CLI‑инструментов, могут появиться расхождения. Mint помогает зафиксировать набор инструментов внутри проекта и сделать локальный запуск ближе к CI, чтобы у всей команды был одинаковый результат.

Как использую

Вместо глобальной установки SwiftLint, SwiftFormat, XcodeGen или других CLI‑инструментов можно хранить версии в Mintfile и запускать их одинаково у всех разработчиков.

mint run realm/SwiftLint
mint run nicklockwood/SwiftFormat

Что важно знать: Mint полезен именно для Swift CLI-пакетов. Для Ruby-gems, Node.js-инструментов или системных утилит понадобятся другие менеджеры. Также важно кэшировать установленные бинарные файлы в CI, иначе сборки могут тратить лишнее время на установку инструментов.

Теги:
0
Комментарии0

Исследователи обнаружили уязвимость, позволяющую украсть деньги с заблокированного iPhone через NFC, если на устройстве активирован режим экспресс-транспорт и привязана карта Visa. В эксперименте со смартфона блогера Маркуса Браунли списали $10 тыс., обманув систему оплаты проезда. Apple и Visa заявили, что массовое мошенничество маловероятно, однако пользователям советуют отключить использование Visa для транспортных платежей на iPhone.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Save the date: встречаемся 22 апреля на iOS Meetup Wildberries & Russ

22 апреля в 19:00 мск приглашаем на iOS-митап. В программе три технических доклада и нетворкинг с инженерами, которые ежедневно строят мобильную разработку в Wildberries & Russ. Поговорим про автоматизацию релизного процесса, масштабируемое UI-тестирование и тонкости работы с файловой системой iOS.

Регистрация

Доклады:

— Автоматизация релизов в Wildberries | Севастьян Жуков, Deploy Lab Team Lead

Как команда с нуля создала инструмент для управления релизным процессом мобильного приложения и масштабировала его на другие продукты компании. Разберём этапы автоматизации и работу с App Store API: управление релизами и отслеживание их статуса.

— UI-тестирование приложения Wildberries | Руслан Колчаков, iOS TestLab Lead и Валерий Карачаков, iOS TestLab Dev

Руслан расскажет про вызовы при организации тестирования, инфраструктуру и метрики здоровья TestLab. Валерий дополнит докладом про распределённое UI-тестирование на динамически формируемом кластере раннеров: как избежать простоев, эффективно утилизировать ресурсы и ускорить тестирование.

— Работа с файловой системой на iOS | Александр Игнатьев, iOS-разработчик команды Асто

Разберём нюансы работы с файлами, структуру iOS Sandbox и App Group как способ выйти за её пределы.

⏹️Формат: офлайн в Москве + онлайн-трансляция

Регистрация

Теги:
Рейтинг0
Комментарии0

От хакатонного эксперимента до релиза, или как появился параллельный режим в CarPlay

Раньше при подключении CarPlay пользователи видели в приложении 2ГИС на телефоне «заглушку» — почти пустой экран. И наш iOS‑разработчик Ваня задумался: «Почему бы не добавить полезности?»

Идея родилась на внутреннем хакатоне. Он решил не переносить интерфейс целиком, а разделить роли между устройствами. Телефон — для действий. CarPlay — для результата.

Собрал прототип, а затем команда подхватила инициативу. И это одна из самых быстрых задач, которая дошла до релиза.

Все действия выполняются на телефоне и сразу отображаются на экране в машине. Без переходов, без ожидания и без разрыва между устройствами
Все действия выполняются на телефоне и сразу отображаются на экране в машине. Без переходов, без ожидания и без разрыва между устройствами

Это интересно, потому что: 

  • новый сценарий для автомобилистов: теперь можно взаимодействовать с приложением на телефоне, пока навигация идёт в CarPlay; 

  • красивый обход архитектурного ограничения; 

  • инженерная инициатива, которая с хакатона дошла до прода.

Теги:
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

Apple представила Swift Hypertext UI для вайбкодеров.

SwiftHUI новый декларативный язык разметки интерфейсов для iOS и macOS.

Никакого Swift. Никакого Xcode. Просто описываешь интерфейс словами.

vstack spacing=20
  text font=title "Hello, Vibe!"
  button action=tap "Do the thing"
/vstack

Переход на SwiftHUI будет безболезненным — вы уже умеете читать.

Apple позиционирует SwiftHUI как следующий шаг после SwiftUI: меньше кода и зависимости от инструментов. Работает даже в заметках.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Операторы начали предупреждать россиян о вероятном отключении оплаты Apple со счёта телефона. Например, один из операторов, ссылаясь на «сообщения ряда СМИ», предлагает пополнить баланс Apple ID на год.

Минцифры РФ обсуждает возможность временно отключить оплату сервисов Apple со счета мобильного телефона, чтобы вынудить компанию вернуть популярные российские приложения в App Store. По данным СМИ, С 1 апреля 2026 года владельцы iPhone не смогут пополнять баланс Apple ID с мобильного счета.

Возможность оплаты подписок и покупок в экосистеме Apple напрямую с мобильного счёта на данный момент доступна у МТС и «Билайна». У «Т2 Мобайл» и «МегаФона» такая оплата есть через партнёров.

У российских пользователей остаётся ещё один обходной путь: цифровые коды пополнения. Физические подарочные карты исчезли из продажи еще в марте 2022 года, хотя раньше их можно было купить у крупных ретейлеров и через банковские приложения. Сейчас на маркетплейсах и у посредников продаются цифровые ваучеры, но за удобство приходится платить комиссией на уровне 15-20%. Есть и техническое ограничение: код должен быть выпущен именно для российского региона, иначе Apple ID просто не примет пополнение.

Теги:
Рейтинг0
Комментарии1

Минцифры РФ обсуждает возможность временно отключить оплату сервисов Apple со счета мобильного телефона, чтобы вынудить компанию вернуть популярные российские приложения в App Store. По данным СМИ, С 1 апреля 2026 года владельцы iPhone не смогут пополнять баланс Apple ID с мобильного счета.

Возможность оплаты подписок и покупок в экосистеме Apple напрямую с мобильного счёта на данный момент доступна у МТС и «Билайна». У «Т2 Мобайл» и «МегаФона» такая оплата есть через партнёров.

У российских пользователей остаётся ещё один обходной путь: цифровые коды пополнения. Физические подарочные карты исчезли из продажи еще в марте 2022 года, хотя раньше их можно было купить у крупных ретейлеров и через банковские приложения. Сейчас на маркетплейсах и у посредников продаются цифровые ваучеры, но за удобство приходится платить комиссией на уровне 15-20%. Есть и техническое ограничение: код должен быть выпущен именно для российского региона, иначе Apple ID просто не примет пополнение.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Операторы связи могут списывать деньги за активацию iMessage по несколько раз за сутки из-за отключения мобильной связи.

Эта тема не новая, но когда в Москве отключили связь, деньги начали списывать на регулярной основе.

Списание денег за СМС связано автоматической активацией сервисов Apple — iMessage или FaceTime. Для их работы айфон отправляет невидимое техническое СМС. Увидеть его нельзя, но оно оплачивается как международное СМС.

Обычно это происходит, когда вы перезагружаете телефон или переставляйте симку. Сейчас из‑за шатдауна телефон постоянно «переподключается», поэтому деньги списываются по несколько раз.

Как исправить. Зайти в «Настройки» → «Сообщения» и выключите переключатель «iMessage» Дополнительно можно отключить FaceTime в том же разделе настроек.

Теги:
Всего голосов 7: ↑6 и ↓1+8
Комментарии1

Разработчик на iOS получает по $5 млн каждый месяц на 24 ИИ‑приложениях в App Store. В реальности это одно приложение в разных обёртках: распознавание камней, монет, древесины и даже звёзд. Фотографии пользователей по API передаются на серверы OpenAI, после чего ChatGPT идентифицирует предмет.

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии2

Превращаем обои на iPhone в стильный календарь — он показывает текущую дату на и каждую ночь обновляется. При этом не нужны сторонние приложения — хватит встроенного приложения «Команды».

  • Открываем сайт проекта и выбираем модель iPhone, стиль оформления, цветовую схему и часовой пояс;

  • Копируем ссылку, которую сгенерирует сайт;

  • Заходим в приложение «Команды», открываем вкладку «Автоматизация» внизу и жмём на знак «+»;

  • Создаём новую автоматизацию по времени суток: выставляем 00:01, выбираем «Немедленный запуск» и отключаем уведомления;

  • Добавляем действие «Получить содержимое URL» и вставляем туда скопированную ссылку с сайта;

  • Делаем второе действие «Установить фото как обои», выбираем только «Экран блокировки» (снимите галочку с домашнего экрана);

  • Разворачиваем настройки действия и отключаем «Показать окно просмотра»;

  • Нажмите «Play» внизу справа, чтобы проверить команду — обои должны смениться мгновенно.

  • Бонусом внизу будет отображаться прогресс года, чтобы вам удобнее было переживать из-за того, что до Нового года осталось 348 дней.

Теги:
Всего голосов 3: ↑0 и ↓3-3
Комментарии0

Ближайшие события

$500 тысяч долларов в месяц заработал разработчик будильника для iPhone. Разработчик выпустил приложение, где просто сделал сигнал в несколько раз громче стандартного решения от Apple. Приложение стало популярным в App Store.

Теги:
Всего голосов 7: ↑6 и ↓1+6
Комментарии0

В Telegram заработала система входа в аккаунт через Passkey, но только для российских номеров телефона. Ключевое преимущество Passkeys — возможность войти в аккаунт в одно касание, не вводя номер телефона и одноразовый код.

Как создать ключ:

  • Убедитесь, что у вас последняя версия мессенджера (Android — 12.2.10; iOS — 12.2.3).

  • Как и вход по почте, новую функцию нужно предварительно настроить. Для этого откройте Настройки › Конфиденциальность › Ключи доступа.

  • Если пункт «Ключи доступа» отсутствует, то эта опция недоступна для вашего аккаунта. На текущий момент Passkeys доступны только для аккаунтов, к которым привязан российский номер.

  • Нажмите «Добавить ключ доступа» и подтвердите его создание.

  • Устройство может запросить код экрана блокировки или биометрию, чтобы разблокировать хранилище ключей.

  • Созданный ключ появится в списке.

Как войти с помощью ключа:

  • На актуальной версии Telegram для Android или iOS приложение автоматически предложит выбрать ключ доступа для входа.

  • Если это не происходит, через несколько секунд под заголовком «Номер телефона» появится ссылка «используйте ключ доступа», на которую следует нажать.

  • Нажатие на кнопку запустит ваш менеджер паролей, который предложит выбрать ключ, проверит вашу личность по лицу, отпечатку пальца либо PIN-коду экрана блокировки, а затем передаст выбранный ключ мессенджеру.

  • Ключ доступа выполняет функции как номера телефона, так и одноразового кода подтверждения одновременно.

  • Если вы включили двухфакторную авторизацию для аккаунта, вам потребуется ввести свой облачный пароль, который вы задали самостоятельно.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии3

В Telegram появилась опция авторизации через ключи доступа. Новая функция для Android и iOS под названием Passkey позволит входить в аккаунт без дополнительных подтверждений в виде СМС-кодов и паролей. Активировать ключи доступа можно в разделе «Конфиденциальность». Чтобы подключить функцию, нужно создать ключ и подтвердить личность с помощью сканирования лица (Face ID), отпечатка пальца (Touch ID) или код-пароля. Созданный Passkey будет храниться на устройстве. Функция поможет обойти ограничения при регистрации в мессенджере.

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии4

Разработчик Дьюи Чан запустил iPadOS 26 на iPhone 17 Pro Max, включая многооконный режим, плавающую клавиатуру, многозадачность, док и Spotlight. Из-за того что iPadOS не оптимизирована под iPhone, интерфейс выглядит мелко и местами работает с лагами. Окна масштабируются плавно, но текст в них выглядит очень мелко. Запустить iPadOS 26 на iPhone тестировщику удалось благодаря уязвимости в MobileGestalt — это системный компонент iOS, отвечающий за идентификацию устройства. Разработчик смог его взломать и заставил систему думать, что iPhone является iPad. Apple закрыла эту уязвимость в iOS 26.2 beta 2.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Как научить приложение работать офлайн?

В новом выпуске подкаста Mobile Developer об этом рассказывает Данила Горячкин, iOS-инженер в Авито. Даня не понаслышке знаком с потребностью в мире Wi-Fi и развитой мобильной сети создать приложение, которое может работать без интернета, — а потому ему точно есть, чем поделиться.

Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.

Теги:
Всего голосов 28: ↑26 и ↓2+24
Комментарии0

What's new in Dub Dub — сайт, на котором собрали все анонсы WWDC с 2015 года. Есть вкладки по разным операционным системам Apple, списки аппаратных обновлений, фреймворков, API, интерфейса, версий Swift, Xcode, SF Symbols и других инструментов для разработчиков. Для фреймворков и API предусмотрели ссылки на страницы в официальной документации.

Теги:
Рейтинг0
Комментарии0

Пользователи жалуются, что новые иконки Microsoft плохо различимы в «стеклянном» интерфейсе iOS 26. Со временем подключается память, но в первое время не всегда получается быстро найти нужное приложение. Больше всего похожи друг на друга иконки Excel, Word и OneNote. Самое яркая их отличительная черта — цвет, которого в «стеклянном» интерфейсе нет.

Теги:
Всего голосов 5: ↑5 и ↓0+9
Комментарии2
1
23 ...