Все потоки
Поиск
Написать публикацию
Обновить
50.06

iOS *

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

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

Про многопоточность 3. Operation

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

Добро пожаловать! Если вы уже читали предыдущие статьи из этой серии, то наверняка знакомы с многопоточностью в iOS. В этой части мы погрузимся в мир операций и очередей, изучим их особенности и поймем, в каких случаях целесообразно прибегать к классу Operation, а когда достаточно функциональности, предоставляемой GCD.

Читать далее

Уровни доступа в Swift: Как Держать Всё под Контролем

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

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

Давай разберёмся подробнее, что это такое и как применять.

Читать далее

Создание компонентного вью SensorView

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

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

Читать далее

Приложение Rocket Launch c GraphQL-запросами через Apollo

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

Всем привет!

Сегодня мы создадим учебное приложение для iOS с использованием бэкенда на GraphQL при помощи библиотеки Apollo — оно имеет несложный двухэкранный интерфейс, который не будет сильно отвлекать нас от работы с сетью. Приложение будет отобрать прошедшие и грядущие запуски разных кораблей SpaceX. Приложение под названием Rocket Launch будет предоставлять информацию о миссиях, включая даты и места. Для создания Rocket Launch мы будем использовать UIKit без Сторибордов. В этом материале я дам код целиком с пояснениями, но оставляю ссылку на репозиторий со своим проектом.

Читать далее

Мобильная разработка за неделю #501 (7 — 13 августа)

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

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

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

Исчерпывающее руководство по настройке Jenkins под iOS в 2023 году

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

На дворе 2023 год, и вот вы и ваша команда наконец решили отказаться от CI-пайплайна, которым вы пользовались, в пользу автономного Jenkins CI. Замечательно! В этой статье мы не будем разглагольствовать о плюсах и минусах использования одних CI-систем в сравнении с другими, а сразу сосредоточимся на том, как настроить полностью функциональную среду Jenkins CI для iOS.

Читать далее

Виджеты на iOS и Android: что учесть при проектировании и дизайне

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

С выходом iOS14 в 2020 году виджеты стали популярным дополнением для мобильных приложений. Сейчас их используют компании из банкинга, спорта, ритейла и других сфер. Дизайнер интерфейсов red_mad_robot Юля Гранкина решила разобраться в процессе их проектирования, особенностях дизайна и различиях платформ iOS и Android.

Читать далее

Apple не хочет, чтобы люди создавали приложения для собственного удовольствия

Время на прочтение2 мин
Количество просмотров37K
Apple всё равно взимает с разработчиков платеж в 99 $, даже если они не хотят размещать свой приложение на Appstore.

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

В этом году я начал изучать BLE при помощи микроконтроллера Nordic NRF52. Мне захотелось создать приложение-компаньона для iPhone, которое выводило бы мне показания сенсора. Всё это затевалось исключительно для личного употребления и самообразования; я не предполагал, что приложением будет пользоваться кто-то, кроме меня.

К моему разочарованию, спустя неделю после загрузки приложения на айфон оно перестало открываться!
Читать дальше →

Как мы улучшаем курс по iOS-разработке — и зачем вносить изменения сразу после запуска

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

Привет! Это команда Практикума. Прошлым летом мы запустили 10-месячный курс «iOS-разработчик» — и уже внесли в программу более 50 улучшений. В этом материале мы рассказываем, почему меняем курсы сразу после запуска, что именно дорабатываем и по каким причинам не скрываем, что доделываем что-то после релиза. Начнём!

Читать далее

SwiftData: быстрый старт

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

Apple представила на WWDC23 большое количество новых вещей для разработки. Хранения данных — не исключение. SwiftData - это новый фреймворк для работы с хранением данных внутри приложения, который представляет собою новый уровень абстракции над уже существующем механизмом - CoreData.

Читать далее

Насколько Swift удобен для DSL?

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

SE-0195 Dynamic Member Lookup
SE-0216 Dynamic callable
SE-0253 CallAsFunction
Исходя из мотивационной секции proposal, @dynamicCallable и @dynamicMemberLookupбыли добавлены для интеропа с динамическими языками, такими как Python, JavaScript. Но их использование этим не ограничивается.

Читать далее

Мобильная разработка за неделю #500 (31 июля — 6 августа)

Время на прочтение5 мин
Количество просмотров2.6K
В новом юбилейном выпуске создаем дефолтные аватары и исследуем TipKit, пишем полностью нативное GUI-приложение без Android и проходим Android-собеседования, изучаем правила создания красивых интерфейсов, побеждаем серверные подсказки, исследуем мобильный опыт и многое другое!

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

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

Sticky Header в SwiftUI

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

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

Читать далее

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

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

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

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.6K

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

OptionSet в деталях

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

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

Читать далее

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

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

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

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