Как стать автором
Обновить
58.21
Рейтинг

Разработка под iOS *

Популярная мобильная ОС

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

Как работает Backend-Driven UI на мобильном клиенте

Блог компании Ozon Tech Программирование *Разработка под iOS *Разработка мобильных приложений *Swift *

Привет всем, кто хочет изменять интерфейс мобильного приложения до выхода нового релиза, всем, кто хочет без лишних доработок на клиенте проводить А/B-тестирование, и всем, кто хочет забыть о срочных «новых пятничных промоакциях», которые нужны уже в понедельник. В этой статье мы поговорим об основах Backend-Driven UI: рассмотрим абстрактно, как всё работает на бэкенде и на клиенте. 

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 2.2K
Комментарии 1

Новости

Автоматическое развёртывание инфраструктуры в iOS проекте

Блог компании AliExpress Россия Разработка под iOS *IT-инфраструктура *DevOps *
Tutorial

Рассказываем о том, как автоматизировать процессы онбординга и развёртывания инфраструктуры в iOS проекте с помощью Ansible.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 710
Комментарии 0

Почему ваше приложение могут не пропустить или даже удалить из App Store?

Разработка под iOS *Аналитика мобильных приложений *

Собрал список частых причин, как делать не надо. Некоторые из них основаны и на личном опыте, о других вы могли слышать, или даже использовали сами.

Все пункты перечислены не в порядке значимости или частоте.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.5K
Комментарии 4

Тест-ревью: как прошли два года написания unit-тестов

Блог компании Dodo Engineering Разработка под iOS *Разработка мобильных приложений *Тестирование мобильных приложений *

Часто слышу мнение, что unit-тесты не нужны для мобильной разработки: в приложении должно быть минимум логики, основная работа с UI, а его сложно тестировать, да ещё и тесты отнимают время, которое можно было бы потратить на написание фич. 

За этим мнением скрывается простая правда — люди, которые так говорят, не умеют писать тесты. Не умеют писать их быстро; писать там, где нужно; писать так, чтобы была ощутимая польза для бизнеса. Я тоже был таким — понимал, что тесты нужны, но не понимал какие, где и как их писать. 

Рассказываю, что поменялось спустя 2 года и 4 тысячи тестов. 

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 2.4K
Комментарии 8

Простой способ обнаружить retain cycle в UIViewController

Разработка под iOS *Objective C *Отладка *Swift *
Tutorial

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

Apple предлагает отличный инструмент для отладки утечек памяти. Часто для этого используется метод print в deinit.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 747
Комментарии 3

Дайджест интересных материалов для мобильного разработчика #440 (18 — 24 апреля)

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В нашем дайджесте снова стейт-машины и исходники Telegram, собственный 3D движок и KMM, чтение кода, пространственная логика, ностальгия Waze и многое другое!

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.7K
Комментарии 0

Structured concurrency в Swift

Блог компании KTS Разработка под iOS *Разработка мобильных приложений *Swift *
Перевод

Примечание переводчиков: В Swift 5.5 появилась новая концепция языка async/await. Мы решили опубликовать перевод статьи, чтобы разобраться с structured concurrency.

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

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

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

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 1.6K
Комментарии 4

Стейт-машины в iOS

Блог компании HeadHunter Разработка под iOS *

Бизнес-логика – это сложно. Сложная бизнес-логика — ещё сложнее. А описать всё это в коде – просто жесть. Мы с вами каждый день реализуем тонну разных сценариев с огромным количеством веток развития. Каждую ветку нужно запрограммировать, потом суметь быстро поправить, а когда придёт продакт, еще и поменять ее логику. И если писать код просто как он пишется, можно оказаться в ситуации, когда простой фикс вместо 20 минут занимает 6 дней. Это проблема. 

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

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 1.7K
Комментарии 5

Как отследить состояние сетевого соединения в Swift? Привет, нативная реализация, пока, Reachability

Разработка под iOS *Swift *
Перевод
Tutorial

Рассмотрим нативное решение для мониторинга сетевого подключения на iOS с помощью Swift 5 и использования Network Link Conditioner.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.4K
Комментарии 2

Дайджест интересных материалов для мобильного разработчика #439 (11 — 17 апреля)

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В новом дайджесте гарнитуры смешанной реальности и разработка для встроенных систем на Swift, реакции ВКонтакте и вымышленные языки, Яндекс Go для незрячих, мобильная безопасность, роботы клинической поддержки и многое другое!

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.9K
Комментарии 0

Производительность встроенных функций высшего порядка в сравнении с циклом for-in в Swift

Разработка под iOS *Разработка мобильных приложений *Алгоритмы *Swift *
Перевод

Самые популярные функции высшего порядка - это map, filter и reduce. Мы все используем их, так как думаем, что синтаксис намного лучше, и писать их даже быстрее, чем старый способ for-in loop. Но так ли это на самом деле? Задумывались ли вы когда-нибудь о производительности этих встроенных функций? Они встроенные, поэтому, естественно, они должны быть лучше, не правда ли? Давайте погрузимся в эти функции вместе, чтобы выяснить, так ли это на самом деле.

Спойлер — не всё так однозначно!
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 1.8K
Комментарии 5

[boringssl] Failed to log metrics

Разработка под iOS *

Наверное, каждый iOS разработчик сталкивался с этой проблемой. Любое приложение, которое делает https запросы, получает в лог эти мистические сообщения от boringssl:

[boringssl] boringssl_metrics_log_metric_block_invoke(151) Failed to log metrics

Проблема неотключаемого мусорного логирования от boringssl мучала нас много лет, но, кажется, я нашёл приемлемое решение.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 2K
Комментарии 13

Обработка Push уведомлений на клиенте при их получении. И немного кода

Блог компании SDVentures Программирование *Разработка под iOS *Разработка мобильных приложений *

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

При разработке приложения мы столкнулись с проблемой правильной обработки Push (т.н. пушей) уведомлений на стороне клиента.

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

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.4K
Комментарии 1

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

Блог компании Нетология Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Дизайн мобильных приложений *

«В хосписе» — приложение, которое создали для сотрудников хосписов студенты Нетологии совместно с «Инновационным центром Ай-Теко». Ещё до релиза проект получил премию «Время инноваций 2021» как социальная инновация года на выставке всемирных технологических достижений «Экспо-2020» в Дубае. Эта статья о нашем опыте разработки с нуля для социального проекта — расскажем, почему взялись помочь и какие трудности нас ждали на пути к релизу.

Читать далее
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 1.2K
Комментарии 2

Apple всё ещё следит за вами. Без вашего согласия

Информационная безопасность *Разработка под iOS *Разработка под MacOS *Процессоры
Перевод

В текущей версии macOS Monterey, при каждом обновлении системы на системе, содержащей чип M1, такой же как и все новые блестящие/быстрые маки с ARM ("Apple Silicon"), процесс обновления обращается в Apple, чтобы получить специальную подпись загрузки, известную на жаргоне Apple как "билет" (он же ticket).

Это делается абсолютно незашифрованным способом, через стандартный открытый 80 порт HTTP (точно такой же протокол, который запрещен для использования сторонними разработчиками приложений в App Store при передаче приватных данных, таких как уникальные идентификаторы, служащие PII) на хост gs.apple.com.

HTTP-запрос включает неизменяемые аппаратные уникальные идентификаторы (серийные номера чипов, известные как ECID), которые функционируют как суперкуки, и они видны вашей локальной сети, вашему интернет-провайдеру (или гостинице, или кофейне), всем, кто следит за сетевыми магистралями, и, конечно же, самим Apple.

Это позволяет любому определить примерное местоположение устройства, даже если он не находится рядом. Из-за того, что он может видеть IP-адрес клиента (что эквивалентно примерно геолокации на уровне города) и серийный номер устройства.

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

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

Читать далее
Всего голосов 27: ↑25 и ↓2 +23
Просмотры 8.3K
Комментарии 8

Работа с Diffable data source и table views с использованием UIKit

Разработка под iOS *Swift *
Перевод
Tutorial

В этом руководстве мы создадим экран, позволяющий осуществлять одиночный и множественный выбор, используя Diffable data source и table view.

Читать далее
Рейтинг 0
Просмотры 841
Комментарии 4

Дайджест интересных материалов для мобильного разработчика #438 (4 — 10 апреля)

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В новом дайджесте навигация в iOS и suspend под капотом, фантастические формулы и сон разработчика, новое пришествие Angry Birds, WWDC 22, старые приложения в Google Play и многое другое.

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 2.3K
Комментарии 0

Полмегабайта пустоты в каждом файле Apple Music

Разработка под iOS *Хранение данных *Звук
Перевод

Вы когда-нибудь докупали расширенный объём хранилища для iPod, iPhone или Mac, чтобы иметь больше места для своей цифровой коллекции музыки Apple Music (iTunes)? Возможно, вы заполняли его гигабайтами пустого пространства.

Музыкальные файлы, которые вы покупаете в Apple Music Store (AMS; ранее назывался iTunes Music Store) содержат приблизительно 6% цифрового аналога пустоты. Я говорю не о тишине, а о сплошных блоках пустого пространства, находящихся внутри файлов. Они нужны только для того, чтобы заполнять файлы, делая их на 0,5 МБ больше. Так зачем же Apple делает музыкальные файлы излишне большими? И как вернуть впустую занимаемое пространство?
Читать дальше →
Всего голосов 82: ↑82 и ↓0 +82
Просмотры 49K
Комментарии 49

Обзор решений для навигации в iOS

Блог компании HeadHunter Разработка под iOS *Разработка мобильных приложений *Swift *

Всем привет! Меня зовут Тимур, я – iOS разработчик в hh.ru. В этой статье поговорим о фреймворкинге навигации в iOS. Я расскажу кулстори о популярных и не очень решениях и их преимуществах, а еще о том, как мы искали фреймворк мечты среди этой смертной любви. Поехали!

Читать далее
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 2.7K
Комментарии 1

Автоматизируем iOS-сборку c помощью Jenkins

Блог компании МТС Разработка под iOS *Xcode *
Tutorial

Всем привет! Меня зовут Иван Чечиков, я QA-инженер в МТС Digital, работаю в проекте WASD.TV. В этой статье я расскажу о своем способе автоматизации iOS-сборки в TestFlight через Jenkins. С помощью такого метода можно настроить автоматизацию как локально, так и на удаленной машине. Поможет в этом Jenkins – это простой в использовании CI/CD-инструмент. Я рассмотрю локальное применение Jenkins.

 Подробности – под катом.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 1.8K
Комментарии 0

Вклад авторов

Работа

iOS разработчик
91 вакансия
Swift разработчик
135 вакансий