Обновить
42.14

iOS *

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

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

WWDC 2023. Новый фреймворк SwiftData для управления данными. Эксперименты

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

Одним из заметных событий WWDC 2023 для разработчиков, программируемых на языке Swift, стало появление фреймворка SwiftData. В этой статье показано, как создать Схему данных в SwiftData, как выполнить CRUD операции (Create - Создать, Read - прочитать, Update - модифицировать, Delete - удалить), как выполнять запросы Query к данным с помощью предиката Predicate, как использовать "живой" запрос @Queryв SwiftUI и как его динамически настроить. Вы узнаете, как эффективно "закачивать" JSON данные в SwiftData хранилище без блокировки пользовательского интерфейса (UI).

Читать далее

Swift и Objective-C в одном SDK. Стерпится, слюбится

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

Привет! Меня зовут Игорь Сорокин, я занимаюсь iOS-разработкой в myTarget. Мы разрабатываем SDK для показа рекламы в мобильных приложениях. Недавно мы решили переписать его с Objective-C на Swift. Так как делать это мы решили итеративно, то какое-то время в нашем SDK должны уживаться два языка одновременно. Я расскажу, какие подходы используют для этого, почему нам не подошёл стандартный способ и что у нас из этого получилось. Статья будет полезна тем, кто разрабатывает SDK, используя оба языка, а также тем, кто хочет переехать с Objective-C на Swift.

Читать далее

Подводные камни тестирования кода в Swift Concurrency

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели2.7K

Привет, Хабр! На связи Александр Пиманов и Камиль Ишмуратов, мы iOS-разработчики в IBS. В наших проектах мы активно используем новые технологии и стараемся покрывать наш код unit-тестами. В этой статье мы расскажем о проблемах тестирования асинхронного кода и как их можно попытаться решить.

Читать далее

Приглашаем на Red Hot Chili Apples — бесплатный митап ЮMoney для iOS-разработчиков

Уровень сложностиСредний
Время на прочтение1 мин
Охват и читатели548

⏰ Митап пройдёт в Санкт-Петербурге в режиме офлайн и онлайн 29 августа в 18:30 по Москве.

Разработчики ЮMoney, Сбера и ВКонтакте поделятся своим опытом, а после докладов можно будет задать им вопросы.

Больше о докладах

Как не забросить свой пет-проект. Мой кейс запуска приложения в App Store

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6.8K

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

Я рассчитывал выпустить его месяца за три… Но проект удалось релизнуть лишь спустя 4 года

Рассказываю что помогло запустить MVP когда мотивация давно закончилась. Делюсь быстрым и простым техническим стеком для микро команд и советами для начинающих индихакеров.

Читать далее

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

Время на прочтение4 мин
Охват и читатели2.2K
В новом дайджесте своя прошивка с нуля и поваренная книга SwiftUI, автоматическая публикация приложений и работа в Apple без Leetocde и колледжа, защита простых архитектур, самые быстрорастущие приложения августа, стартовый набор для ИИ-города и многое другое.

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

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

UICollectionView внутри UICollectionView программно

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

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

Ну что, приступим, для начала разберемся с основной коллекцей во ViewController

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

Время на прочтение6 мин
Охват и читатели1.2K

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

Читать далее

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

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

Всем привет!

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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 мин
Охват и читатели6.4K

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

Читать далее