Как стать автором
Обновить
77.34

iOS *

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

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

Эволюция шпионского софта под iOS

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

Возможности программного обеспечения Sysdiagnose для компьютерной криминалистики на iOS

Среди некоторых пользователей распространено мнение, что смартфоны под iOS лучше защищены от бэкдоров и вредоносного ПО, чем смартфоны Android. Отчасти это справедливо. Софт в каталоге App Store более жёстко модерируется, так что у обычных граждан меньше шансов подхватить зловреда. Но с точки зрения уязвимостей операционная система iOS совсем не уступает другим ОС. Соответственно, и вредоносные программы для неё создают регулярно.

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

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

Формализация принципа Open/Closed: как сохранить обратную совместимость с помощью SOLID

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

Привет, Хабр! Меня зовут Дмитрий Сурков, я iOS-разработчик приложения для среднего и малого бизнеса ПСБ. Наше приложение состоит из различных модулей и внутренних библиотек, которые связаны между собой, поэтому важно сохранять гибкость и обратную совместимость во время разработки. В этой статье мы разберемся, как вносимые изменения нарушают эти правила, а также как это исправить.

Читать далее

Тактики ускорения билда: матиз, кобальт, камри 3.5

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

Меня зовут Дима, я iOS инженер-менеджер в крупнейшем телеком-операторе Казахстана. У нас 19 разработчиков — и билд-тайм для нас важная составляющая разработки. В этой статье я пройдусь по следующему пути: 

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров1.6K
В этом выпуске окончательная и бесповоротная очистка Xcode от ненужных файлов, плагин для кастомных дизайн-систем и мобильная архитектура, новый (почти нативный) кроссплатформенный фреймворк, одинаковые приложения от студентов, жизнь и смерть триалов в Южной Корее и многое другое. Заходите!

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

Как стать iOS-разработчиком в 2025 году: подробный гайд для новичков

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

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

Почему стоит выбрать iOS-разработку?

iOS-разработка остается одним из самых востребованных направлений в IT. Спрос на специалистов растет, зарплаты остаются высокими, а сам процесс разработки комфортный благодаря экосистеме Apple. Не стоит бояться разговоров о том, что рынок перегрет, главное знать зачем вы это делаете и просто дойди до конца.

💰 Сколько зарабатывают iOS-разработчики в России в 2025 году?

• Junior – 120 000–180 000 ₽

• Middle – 250 000–350 000 ₽

• Senior – от 400 000 ₽ и выше

Но чтобы получить первый оффер, нужно освоить Swift, UIKit, сетевое взаимодействие, архитектуры (у вас должно быть понимание, для чего та или иная архитектура, основные сущности, не обязательно глубоко разбираться) и основы хранения данных. Давай разберемся, с чего начать.

1. Изучение Swift и основ программирования

Swift – это современный язык программирования от Apple. На нем пишут приложения для iOS, macOS, watchOS и tvOS.

📌 Что нужно изучить в первую очередь?

✅ Основы (переменные, типы данных, операторы)

✅ Управляющие конструкции (if, switch, for, while)

✅ Коллекции (Array, Set, Dictionary)

✅ Опционалы (Optional, nil, guard let, if let)

✅ Основы ООП (классы, структуры, наследование, протоколы)

✅ Управление памятью (ARC, weak, strong, unowned)

Читать далее

Руководство по использованию unsafe в Swift

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

В этой статье мы рассмотрим различные подходы для работы с небезопасными операциями в языке программирования Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой памятью.

Читать далее

Мобильная разработка за неделю #577 (24 февраля — 2 марта)

Время на прочтение4 мин
Количество просмотров1.1K
В новом дайджесте укрощение анимаций и оживление смартфона, эффективный бэкграунд, уродливый код и глупые вещи, потери денег от плохого дизайна, индекс цифрового рынка за 4 квартал, Gemini Code Assist для всех и многое другое. Заходите!

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

Чем полезен Server Driven UI

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

Привет! Меня зовут Олег Иванов, я руководитель мобильной разработки в Московском кредитном банке. Сегодня поговорим о Server Driven UI вот по такому плану:

что это вообще за технология

из чего она состоит

рассмотрим наши подходы к ее реализации

Начнем с терминологии:

SDUI (Server Driven UI) — это пользовательский интерфейс, управляемый сервером.

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров1.4K
В этом выпуске учет времени с помощью библиотеки Charts и анализ Android-фич на доступность и внедрение accessibility, что такое перерисовка и как с ней бороться, реализация кастомной прокрутки и бесплатный сервис Build Distribution, «Uber с пушками» от Никиты Бира, LLM на реальных задачах фриланса и многое другое. Заходите!

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

Как мы из России опубликовали платное приложение в App Store

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

Из России запуск платного приложения в App Store после 2022 года требует нестандартного подхода, но это вполне реальная задача. Главное — учитывать актуальные требования Apple, а также продумать стратегию монетизации.

Однако для нас усилия себя оправдали успешным запуском нашего приложения с монетизацией в App Store, несмотря на все ограничения и без переезда («релокации»). В этой статье я разберу правила, которые Apple ввела для разработчиков из РФ, и поделюсь пошаговым опытом, как преодолеть эту полосу препятствий.

Читать далее

Как мы сокращали размер JSONʼа в SDUI

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

Привет, хабрачитатели! Server-Driven UI (SDUI) — это подход, при котором сервер управляет отображением интерфейса на клиенте. Важное преимущество SDUI — возможность внедрять изменения без выпуска новых версий приложений. Но это же преимущество есть его недостаток, ведь передача всех данных по сети зависит от качества соединения и увеличивает объём данных. 

Качество связи мы не можем контролировать, а вот уменьшить количество передаваемой информации посредством сокращения JSON, — вполне.

Читать далее

Под капотом у пользовательского интерфейса SwiftUI — Детальный разбор: Часть 1 — UIKit

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

Как именно работает пользовательский интерфейс iOS-приложений под капотом? При работе с UIKit и SwiftUI разработчики часто фокусируются на их API, не вдаваясь в детали того, что происходит за кулисами. Однако глубокое понимание этих процессов помогает оптимизировать производительность, избежать неожиданных багов и проблем с отрисовкой интерфейса, а также разобраться в механике рендеринга.

В этой статье мы подробно разберём, как UIKit взаимодействует с Core Animation, как устроен Runloop, почему обновления интерфейса происходят не сразу после внесения изменений и какую роль играет Render Server.

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.3K
В новом дайджесте дизайн-система в iOS за 5 минут и параллелизм в SQLite для Android, детские ошибки при сборке и дорожная карта перехода на KMP, ошибка во встроенных покупках ценой в Final Fantasy Crystal Chronicles, техосмотра автомобилей с помощью ИИ и многое другое. Подключайтесь!

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

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

О iOS дизайн системе за 5 мин

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

Всем привет, меня зовут Ибрагим, я iOS разработчик одной из команд мобильного банкинга и это моя первая статья для Хабра, поэтому прошу строго не судить.

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

Читать далее

Использование ChatGPT o3-mini и DeepSeek при создании iOS приложения Countries “Страны Мира”

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

Что делает «животворящая» конкуренция?

Появление DeepSeek, позволило бесплатным подписчикам ChatGPT получить доступ к «рассуждающей» ChatGPT o3-mini.

Я предложила этим двум ИИ создать довольно простое на первый взгляд тестовое iOS приложение Countries, которое показывает все страны Мира по регионам (Европа, Азия, Латинская Америка и т. д.) и для каждой страны её название и флаг, a также численность населения population, размер ВВП (валового внутреннего продукта) gdp и расположение страны на карте Мира.

Использовались данные Всемирного банка (World Bank), но мы не сообщали ИИ ни сайты, ни структуры данных, всё это ИИ должен найти сам и использовать их при создании iOS приложения.

Раньше я отдавала предпочтение Clause 3.5 Sonnet при создании iOS приложений, прибегая к ChatGPT 4.o1 для решения отдельных проблем. Но появление «рассуждающих» ChatGPT o3-mini и DeepSeek изменили всё.

iOS разработка поднялась на новый уровень, и пока лидером в этой гонке для меня является ChatGPT o3-mini (даже в бесплатном варианте). Он способен вас приятно удивить.

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.4K
В этой подборке рисуем карты с помощью Swift Charts и графики сна с помощью Compose, разбираемся с Swift Concurrency и плагинами Android Studio, бесплатными инструменты для создания иконок, трендами мобильных приложений и многим другим. Подключайтесь!

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

Сравниваю ChatGPT-4o и ChatGPT-o3-mini-high

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

В прошлой статье многие подметили некорректность сравнения Deepseek и ChatGPT-4o. Изначально идея была сравнить максимально доступные пользователю версии.

Но сперва всё же хочется посмотреть как с одной и той же задачей справляются разные версии ChatGPT. Я в прошлом году делала анимацию (да, мне прям нравится по выходным, когда отдыхаю, кодить что-то максимально ненапряжное), так вот я её сделала в ChatGPT-4o.

Не сказать, что я прям получила удовольствие, скорее наоборот, выбесилась знатно. А на этой неделе решила её повторить уже с ChatGPT-o3-mini-high. Разница, конечно, колоссальная. Но обо всём по порядку.

Читать далее

Что мы делали в 2024-м? Видео — бесплатно и без регистрации

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


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

Будет много видео 😁

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

Современные подходы к управлению UI: low-сode & Backend-Driven UI

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

Привет, меня зовут Михаил Шевченко. В Авито я проектирую и разрабатываю backend low-code платформы Bricks. В этой статье рассказываю о том, почему в Авито было принято решение развивать собственные low-code-решения и Backend-Driven UI, объясняю их устройство и делюсь достигнутыми результатами.

Читать далее

Обновления в Swift Concurrency: что нас ждёт в Swift 6

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

Привет, Хабр! Меня зовут Никита, я занимаюсь iOS-разработкой в Яндекс Диске. Как вы знаете, прошлой осенью зарелизился Swift 6, а вместе c ним появились и строгие проверки для защиты от датарейсов, связанные со Swift Concurrency.

В этой статье я постараюсь разобраться с основными изменениями в каждом пропозале и поделюсь своими заметками, тем, что мне показалось самым важным или интересным. В конце статьи бонус — Playground с тестами для каждого пропозала, чтобы можно было поиграть с кодом, детальнее разобраться с изменениями и понять, как они влияют на код, написанный на Swift 5.

Читать далее