Как стать автором
Поиск
Написать публикацию
Обновить
38.04

iOS *

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

Сначала показывать
Порог рейтинга
Уровень сложности

Sticky Header в SwiftUI

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.6K

Cоздаем липкие заголовки на SwiftUI (Без introspect и GeometryReader)!
Попутно понимая как SwiftUI взаимодействует с UIKit.

Читать далее

Будущее iOS-разработки на Flutter

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.6K

Hola, Amigos! На связи Саша Чаплыгин, Flutter-dev компании Amiga.

В этой статье вы узнаете о последних достижениях и будущем приоритете в улучшении Flutter, как инструмента для разработки iOS-приложений.

Читать далее

Мобильная разработка за неделю #499 (24 — 30 июля)

Время на прочтение5 мин
Количество просмотров2.4K
В этом дайджесте разбираем Swift Runtime на детали и экономим гигабайты с SPM, боремся с фризами и ANR, проектируем функционал сторис, исследуем отказы на собеседовании, определяем маркетинг подписных приложений и многое другое!

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

Thread Safety in Swift

Время на прочтение11 мин
Количество просмотров6.4K

Потокобезопасность в Swift

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

Читать далее

Библиотека криптования ChaCha20

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.6K

Современные стандарты разработки пользовательских приложений выдвигают определенные требования к шифрованию информации. Например, документ RFC-7539 содержит подробную и исчерпывающую информацию о том, какие алгоритмы рекомендуется применять и как программировать некоторые из них. Далее предлагается к подробному рассмотрению один из этих алгоритмов - ChaCha20.

Читать далее

Раскладываю Swift Runtime на детали

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров9.7K

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

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

Привет, меня зовут Александр Пахомов, я работаю в Альфа-Банке на проекте для юридических лиц Альфа Бизнес Мобайл. В статье расскажу про Runtime:

— покопаемся в исходниках: узнаем на каком языке написан и что делает;
— напишем простой код, скомпилируем и посмотрим как он выглядит на уровне SIL и IR;
— добавлю в мой исходный код функцию swift_releaseи посмотрю результат;
— узнаю, что будет, если не учесть ‘name mangling’;
— и покажу ненастоящую функцию.

Читать далее

OptionSet в деталях

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.1K

Элементарный тип OptionSet в Swift кроет в себе много интересного. Почему набор опций представлен массивом а не Set, как работает алгебра множеств и когда его можно применить в повседневных задачах

Читать далее

Мобильная разработка за неделю #498 (17 — 23 июля)

Время на прочтение5 мин
Количество просмотров2.3K
В новом выпуске повышение скорости работы циклов и развлечения на выходные, разработка для самых маленьких и идеальные собеседования, фальшивая аура заботы, здоровое трение, рост мобильной экономики и многое другое!

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

MVP with Router

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6.9K

Данная статья - моя попытка разобраться и объяснить архитектурный паттерн MVP with Router.

Про сам паттерн MVP в на просторах интернета можно найти довольно много информации, например по следующей ссылкам:

Архитектурные паттерны в iOS

Архитектурные паттерны в iOS: страх и ненависть в диаграммах. MV(X)

А вот про разновидность данного паттерна, которая решает проблему сборки, возникающую при использовании MVP информации не так уж и много. Давайте попробуем разобраться что такое Router применительно к паттерну MVP, зачем он нужен и как его использовать.

Читать далее

Логи Xcode — читаем самостоятельно?

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров5.8K

В этой публикации попробуем понять, как и где Xcode хранит свои логи, что такое SLF0 и как все это читать, а может быть даже понять, и лучше без IDE, так интереснее.

Читать далее

Share extension как общий компонент

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.9K

Всем привет от мобильной платформы компании "Тензор"! Меня зовут Галина и в этой статье я хочу поделиться историей развития нашего Share Extension и рассказать о том, как он превратился в отдельный модуль, конфигурируемый за счёт подключенных внешних зависимостей.

Не смотря на то, что на просторах интернета легко можно найти сотни гайдов по созданию Share Extension, вам нужно понимать, что большинство из этих инструкций актуальны только для самых простых и тривиальных задач. Создание чего-либо более сложного, наполненного нелинейной бизнес логикой, принесет вам массу интересных часов дебаггинга и поиска ответов в интернете. Надеюсь, что данная статья станет одним из таких ответов или вдохновит кого-нибудь на переработку существующей реализации :)

Читать далее

Мобильная разработка за неделю #497 (10 — 16 июля)

Время на прочтение4 мин
Количество просмотров1.9K
В новом выпуске полезные инструменты и модуляризация приложений, производительность, ориентированная на пользователей, и почти ручной DI, новый шрифт Office, блокчейн в Google Play, промпт-инжиниринг в масштабе и многое другое!

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

Модульное тестирование в iOS: всё, что надо знать. Часть 2

Время на прочтение9 мин
Количество просмотров2K

Тестирование занимает важное место в iOS-разработке — без него нельзя гарантировать стабильность работы приложения в продакшене и оперативно выявлять возникающие баги. Но для части iOS-разработчиков тема тестов по-прежнему остается запутанной и сложной для понимания. Исправляем ситуацию.

Меня зовут Евгений Плёнкин. Я iOS разработчик компании СберЗдоровье. В предыдущем материале я рассказал об автоматизированном тестировании, кому оно нужно, месте модульных тестов в пирамиде тестирования и основном инструменте тестирования для iOS-разработчиков. Сегодня материал будет посвящен «чистым» тестам и видам имитирующих объектов, подменяющие реальные на время теста.

Приступим.

Статья написана в рамках серии «Модульное тестирование в iOS: всё, что надо знать».

Читать далее

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

Полезные iOS-инструменты для дебаггинга

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров9.5K

Привет! Меня зовут Альберт, я занимаюсь iOS-разработкой в компании SimbirSoft! Хочу поделиться инструментами для дебаггинга iOS-приложений, которые юзаю лично сам. Любой разработчик наверняка знает, что создание высококачественного приложения требует не только написания кода. Одна из важнейших составляющих достижения успеха в этом деле — эффективная отладка. К счастью, существует множество инструментов, которые помогут быстро и эффективно диагностировать, а также устранять проблемы. В этой статье мы подробно рассмотрим нативные и сторонние инструменты, доступные для отладки iOS-приложений, как использовать эти инструменты для диагностики и устранения распространенных проблем. Если интересно, тогда ныряйте под кат.

Читать далее

Мобильная разработка за неделю #496 (3 июня — 9 июля)

Время на прочтение4 мин
Количество просмотров2.5K
В нашем новом дайджесте исследуем вопросы SOLID и архитектуры, разбираем задачи с собеседований и строим мосты, говорим на разрабском, создаем системы, закладываем баги, учимся у Dolingo и многое другое!

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

Async / Await in Swift

Время на прочтение14 мин
Количество просмотров17K

Apple представила концепцию async/await в Swift 5.5 и анонсировала ее на сессии WWDC21. Сегодня мы увидим async/await в действии и то, как мы можем использовать async/await для написания удобочитаемого асинхронного кода в своем приложении.

Читать далее

SOLID в Swift. Простое объяснение с примерами для начинающих

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров15K

Принципы SOLID — это набор пяти основных принципов, которые помогают разработчикам создавать более понятный, гибкий и поддерживаемый код. Так же знание этих принципов довольно часто спрашивают на собеседованиях.

Давайте рассмотрим каждый из этих принципов с примерами нарушения и соблюдения на языке Swift.

Читать далее

Скажи что-нибудь на разрабском, Figma

Время на прочтение5 мин
Количество просмотров21K

Привет! С вами Виктор 👺, тэнгу‑хранитель одной из дизайн‑систем Ozon.

В июне 2023 года Figma выкатила мощное обновление, во многом ориентированное на разработчиков. Точнее на поиск общего языка между проектировщиком и программистом. Я давно занимаюсь дизайн‑системами и знаю как тесно связан дизайн и код. Насколько взаимопонимание между дизайнером и разработчиком ускоряет доставку продукта до пользователя.

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

Помогут ли новые фишки Figma наладить общение?

Потрогаем Dev Mode →

.xcstrings в Xcode 15

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.6K

Один из самых неприятных аспектов iOS‑разработки — это локализация и плюрализация строк. Мало того, что они разбиты на разные файлы: strings и stringsdict, так ещё и работа с этими файлами для начинающего разработчика может оказаться не сильно очевидной. «Что такое %#@⁠VARIABLE@?», «Как добавлять несколько плюралок в одну строку?», «Как использовать плюралки в локализованных строках?», «Как добавлять разные переводы для разных девайсов?» — Все эти вопросы рано или поздно возникают у разработчика. После получения ответов на них каждый задаётся вопросом: «А почему всё так плохо?»

Читать далее

Мобильная разработка за неделю #495 (26 июня — 2 июля)

Время на прочтение4 мин
Количество просмотров2.3K
В новом выпуске отслеживаем состояние переключателя тихого режима, изучаем макросы Swift и Android-разработку, катим фичи без релизов, собираем слезы вкатунов, отказываемся от скромности и многое другое!

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →