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

iOS *

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

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

API for Any (thing)

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

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

Это исследование данных. Как внутри программы мы получаем данные, создаем, трансформируем и передаем.

Мой опыт разработки под iOS с 2008 года, примеры на языке Swift.

Читать

Как добавить список лицензий и благодарностей CocoaPods и при чём тут Settings.Bundle?

Время на прочтение3 мин
Количество просмотров829

Для этого нам даже не понадобится писать код (ну почти). CocoaPods по мнению многих доживает свои славные времена, ведь развитие и распространение SPM (Swift Package Manager) продолжает набирать обороты. Но для тех, кто из вас до сих пор использует CocoaPods в проде, эта статья может оказаться актуальной.

В проектах всё ещё часто используется CocoaPods, и один из полезных и необходимых пунктов при разработке приложения с использованием опенсорсных решений — отображение списка лицензий. И для сохранения авторских прав, и в качестве благодарности авторам.

Для этого нам понадобится связка плагина CocoaPods и Xcode.

Прежде чем приступить к управлению Settings bundle, давайте вкратце рассмотрим концепцию.

Читать далее

Приключение на 5 минут: как мы переводили все зависимости на SPM

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

Привет, Хабр!

Меня зовут Вильян Яумбаев, в этой статье я расскажу вам про наши приключения на пути к SPM.

В 2015 ПСБ начал разрабатывать проект для бизнеса. Для него, в свою очередь, было нужно приложение. Сперва всё находилось в одном репозитории одного проекта в одном воркспейсе. Первые авторы подключали сторонние зависимости через CocoaPods, поскольку проприетарного менеджера зависимостей ещё не существовало. Но в тот же год в Apple началась работа над Swift Package Manager. Им предстояло встретиться в нашем проекте.

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

Читать далее

Диспетчеризация в Swift: погружение в теорию и практику

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

Все iOS-разработчики так или иначе сталкиваются с диспетчеризацией (Method Dispatch), но далеко не каждый понимает, как это работает. Зная, как проходит процесс диспетчеризации под капотом программы, вы можете повысить производительность своего кода. 

В этом материале мы разберем типы диспетчеризации, их плюсы и минусы, а также затронем один из распространённых багов. 

Материал будет полезен для всех iOS-разработчиков, которые хотят улучшить производительность своего кода. Кроме того, этот материал поможет при подготовке к собеседованию, где вопросы о Method Dispatch встречаются достаточно часто.

Читать далее

ARKit 6. Что нового?

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

На недавнем WWDC 2022 вместе с iOS 16 и iPadOS 16 обновился и ARKit. Я рад, что Apple продолжает инвестировать в область AR, каждый год предлагая больше функций и улучшений. Что нового в ARKit 6? Давайте рассмотрим!

Читать далее

Дайджест интересных материалов для мобильного разработчика #448 (20 — 26 июня)

Время на прочтение4 мин
Количество просмотров3.9K
В нашем новом дайджесте загадки iOS 15 и Android 13, минификация на максималках и результаты опроса разработчиков Stack Overflow 2022, пирамида тестирования, собеседования в Tinder, настроение женщины и много других интересных материалов.

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

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

Автоматизация тестирования мобильной игры с помощью Airtest IDE и других решений

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

Автоматизация мобильной игры с помощью Airtest IDE и других решений

Доброго дня всем! Меня зовут Роман Мелкумов, я тестировщик в студии IT Territory. И вот уже более года тестирую мобильную игру Castle Duels, которая сочетает в себе многопользовательские бои и коллекционирование персонажей. 

Читать далее

Как iOS 15 сломала авторизацию на два месяца. Хронология и лечение от СберМаркета

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

После выхода новой iOS 15.0 пользователей СберМаркета выкидывало из приложения после блокировки телефона. Бэкенд возвращал ошибку 403 — «пользователь не авторизован». На поиск причины ушло два месяца.


Евгений Рядовой и Дмитрий Шлюгаев из команды разработки рассказали, как искали ошибку и почему это было так трудно.

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

Взаимодействие с alerts и permissions в ui-тестировании iOS

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

Привет, Хабр!
Меня зовут Ахмат. Я iOS QA Automation Engineer - в Vivid Money.

В этой статье я хочу рассказать про взаимодействие с alerts и permissions в iOS тестах и показать, как их можно эффективно обрабатывать в своём проекте.

Данная статья будет полезна начинающим iOS-автоматизаторам, либо разработчикам, которые решили изучить XCUITest и покрыть свой проект ui-тестами.

В рамках статьи мы разберем:

Читать далее

Как использовать gRPC-клиент в проекте на Kotlin Multiplatform Mobile

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

Нам давно хотелось рассказать сообществу о том, как мы разрабатываем фичи в KMM-проектах. В статье описан полный путь интеграции gRPC в мультиплатформенный проект, пройденный нашей командой. Он включает и создание проекта, и настройку фичи в проекте. Также мы очень хотим продвигать мультиплатформу именно в среде iOS-разработчиков, поэтому бонусом делаем особый акцент на этой платформе.

Читать далее

Дайджест интересных материалов для мобильного разработчика #447 (13 — 19 июня)

Время на прочтение3 мин
Количество просмотров2.8K
В новом выпуске вопросы MVI и модульности, ада зависимостей и рефакторинга Музыки, собеседований, математики, персон, пользователей, ARPDAU, рынка приложений 2026 и много другого. Подключайтесь!

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

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

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

Выход из ада зависимостей: взгляд iOS-разработчика

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

Как не попасть в ад из внешних зависимостей? Как сделать так, чтобы проект собирался с одинаковыми версиями зависимостей на машинах разных разработчиков? Рассказываем, зачем нужны менеджеры зависимостей и как ими пользоваться правильно.

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

Читать далее

MVI в iOS-приложении

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

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

Меня зовут Саша, я iOS-разработчик в hh.ru. В сегодняшней статьей расскажу, как мы ушли от этого монструозного ужаса и что у нас в итоге получилось. Спойлер, мы использовали стейт-машину.

Читать далее

[Async/await] Как работает Coroutine Model

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

Всем привет, на связи Никита и Технократия! В прошлой статье мы уже обсудили проблемы текущего состояния concurrency в Swift. Давайте двигаться дальше и сегодня мы начнем свое знакомство с необходимой базой для async/await в Swift 5.5

Читать далее

Считаем, сколько заплатить в магазине и проверяем поле морского боя: разбор задач для разработчиков C#, iOS и Android

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

Привет, Хабр! Я Ани, отвечаю в Ozon Tech за обучение.

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

Контест нам заменяет скрининг — мы проверяем технические навыки и опыт работы будущих участников, так как курсы рассчитаны на мидлов.

Ранее мы публиковали разбор задач по направлениям Go и QA (раз, два), пришло время поделиться задачами для C#, iOS (Swift) и Android (Kotlin, Java).

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

Читать далее

Как устроен системный калькулятор в iPhone

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

Приложение написано на сценах. Root-контроллер называется DisplayViewController. Лейбл с введенными цифрами обернули в контейнер DisplayView и добавили жесты LongPress, Swipe и Tap.

Читать далее

RxSwift + PropertyWrapper: инкапсуляция и синтаксический сахар

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

Согласно последнему опросу российских команд iOS разработки made by iOS Good Reads, архитектура MVVM занимает лидирующую строчку в хит-параде, этого подхода придерживаются 59% опрошенных. А как известно, наиболее частый спутник MVVM - реактивный подход. Наша команда Upstarts - не исключение, мы используем MVVM + RxSwift последние 5 лет на большинстве проектов, и за это время столкнулись с множеством проблем и челленджей, написали десятки расширений, оберток и сформировали свой собственный пул инструментов для максимального удобства работы с RxSwift.

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

Читать далее

Дайджест интересных материалов для мобильного разработчика #446 (6 — 12 июня)

Время на прочтение3 мин
Количество просмотров2.6K
В нашем новом дайджесте новости с WWDC, многомодульный BDSM и стабильный Android 13, Flutter для Web (который все еще отстой), паттерны и практики написания кода, коварные фильтры и многое другое!

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

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