Рубрика «iOS»

На разработку ушло 16 выходных дней и примерно 250$

Вайбкодинг. iOS приложение от идеи до стора - 1

Читать полностью »

Точность штатного калькулятора iOS

Идущий в составе iOS калькулятор выполняет операции в четверной точности (quad float, мантисса 112 бит, от 33 до 36 десятичных цифр), затем округляет результат по эстетическим соображениям. Например, количество отображаемых значащих цифр отличается в вертикальном режиме, горизонтальном режиме и при копировании в буфер обмена.

Научный факт: если варить лягушку на медленном огне, она просто…сварится живьем.

Научный факт: если варить лягушку на медленном огне, она просто…сварится живьем.

Читать полностью »

В зрелом iOS-проекте автоматизированные тесты — давно не экзотика. Unit-тесты проверяют отдельные компоненты, интеграционные тесты контролируют взаимодействие между слоями, а XCUITest проходит критичные пользовательские маршруты. Проблема начинается не с отсутствия автоматизации, а с её масштабирования.

Читать полностью »

Дисклеймер: я делаю сервис аренды Mac mini (ссылка в профиле), поэтому тема мне близка профессионально. В статье нет ссылок на него и не будет рекомендаций его выбрать — только разбор всех путей, которыми пользуюсь сам и которые видел у коллег.

Проблема, знакомая каждому, кто пробовал

Собрать и опубликовать iOS‑приложение без macOS нельзя — точка. Xcode, подпись, нотарификация, выгрузка в App Store Connect — всё это живёт только на маке. Флаттерщики и React Native‑разработчики упираются в это на последнем шаге: код пишется где угодно, а .ipa собирается только на технике Apple.

Читать полностью »

Перед первой публикацией разработанного мной приложения WeCount я был уверен, что главная причина возможного отказа — ошибки в коде или проблемы в пользовательских сценариях. На практике оказалось наоборот: за всё время App Review к функциональности приложения не возникло ни одного вопроса. Почти все замечания касались исключительно регистрации пользователя.

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

Читать полностью »

Привет! Сегодня хочу поделиться, как мне кажется, очень полезной информацией о такой важной теме, как Opaque types vs Existensial Types vs Generics — что это такое, в чём разница и что выбрать. Я действительно считаю эту тему важной, поскольку это мощнейшие инструменты, которые нам даёт swift, чтобы сделать код более гибким, поддерживаемым, универсальным и без лишнего дублирования. Погнали. 

Opaque types

Заглянем в официальную документацию:

Hide implementation details about a value’s type.

Скрыть детали реализации типа значения.

A function or method that returns an opaque type hides its return value’s type information. Instead of providing a concrete typeЧитать полностью »

В мобильной разработке мы привыкли, что красивый анимированный фон — это либо видео, либо пара слоёв с CAGradientLayer и медленным параллаксом. Для большинства задач этого хватает. Но иногда хочется большего: настоящий живой космос — туманности, которые медленно перетекают друг в друга, планеты с кольцами, звёзды разных классов и в центре — чёрная дыра с аккреционным диском, как в «Интерстелларе».

Читать полностью »

Я перестал верить стримингам. Не философски, а практически. Половина любимых альбомов либо ушла из каталогов, либо вернулась пересведенной так, что слушать тошно. Концертные записи, винил‑рипы, региональные релизы — их там и не было. А моя коллекция в FLAC просто лежит на диске и никуда не девается.

Для своей коллекции я написал плеер. Для себя. Через полгода это превратилось в нишевое приложение для iOS на 11 языках: с собственным DSP, распознаванием музыки и CarPlay.

Что в итоге внутри и где было не очевидно. Места, в которых документация молчит, а ты сидишь и гадаешь, почему оно вообще так себя ведет.

Читать полностью »

Каждый раз, когда нужно добавить новую модель в проект, приходится писать буквально одинаковый код: с одинаковыми проверками, с одинаковыми корректировками, с одинаковыми Codable, с одинаковыми тестами.

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

Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js