В этой статье мы исследуем две фундаментальные структуры данных, которые являются неотъемлемой частью программирования на Swift: стеки и очереди. Они представляют собой коллекции элементов с особыми правилами для добавления и удаления элементов. Стеки работают по принципу "последним пришел, первым ушел" (LIFO), что делает их идеальными для задач, связанных с обратной навигацией или отменой действий. Очереди, следуя принципу "первым пришел, первым ушел" (FIFO), идеально подходят для задач, требующих обработки элементов в порядке их поступления, например, в управлении задачами или потоками данных.
Разработка под iOS *
Популярная мобильная ОС
Ранний взгляд на будущее тестирования с swift-testing
Пару месяцев назад Стюарт Монтгомери, программист из команды XCTest в Apple, поделился новой библиотекой тестирования Swift с открытым исходным кодом на основе макросов.
Библиотека называется Swift-testing, и, как указано в ее документации, она предназначена для проверки концепции нового API тестирования для Swift, основанного на макросах и интегрированного в Swift так же, как и XCTest
.
По этой причине предполагается, что библиотека будет недолговечной и не предназначенной для использования на продакшене или миграции из XCTest
. Тем не менее, это отличный способ получить представление о том, как может выглядеть будущее тестирования в Swift, что я и сделал.
Кто ты, SwiftData
Привет! Я Андрей Зонов, стафф-инженер в Тинькофф и большой фанат CoreData. Моя любовь в CoreData началась на старте карьеры, когда я попал в первый Enterprise-проект. Это были времена iOS 4.3., CoreData не имела parent-контекстов и методов perform. Как-то так сложилось, что за свою карьеру я много фиксил классические проблемы в CoreData, и с появлением SwiftData мне стало интересно, остались ли проблемы в SwiftData и что нам дает этот фреймворк.
В статье разберем основные концепции и киллер-фичи по SwiftData. Пройдемся по основным отличиям и тому, как можно мигрировать с CoreData на актуальную SwiftData. Копнем внутрь SwiftData, узнаем, как она устроена под капотом, и подведем итоги стоит ли вообще переезжать на новый фреймворк Apple.
Истории
Более правильный подход к подключению Yandex AppMetrica в React Native приложении
Самостоятельно ставим Yandex AppMetrica в React Native приложение без каких-либо сторонних npm'ных библиотек.
Посмотрим как поставить нативно аппметрику, также напишем два нативных модуля для получения доступа к методам аппметрики.
Гайд ориентирован на React Native разработчиков, которые не могут найти нормальное решение для подключения аппметрики.
Стриминговый сервис, чат-бот и стартап — за какие проекты можно получить стипендию Selectel
Личные проекты бывают разными: кто-то пишет собственную JS-библиотеку, кто-то создает IT-компанию, а кто-то помогает команде выигрывать гонки (и такое бывает). В этом тексте мы расскажем про пять интересных проектов от студентов, которые выиграли стипендию в Selectel Career Wave.
iOS 17.4: что нового? Apple впервые разрешила использовать сторонние каталоги приложений и аналоги Apple Pay
Мы уже писали о «праве на ремонт» и преимуществах, которые новые законы дают владельцам как гаджетов, так и бытовой техники. Сейчас в некоторых странах продвигается и ещё одна идея — открытия пользователям проприетарного ПО для доступа к продуктам сторонних компаний. Навстречу владельцам своих смартфонов пошла даже Apple, несмотря на то, что ранее она всеми силами противилась внедрению подобных изменений. Подробности — под катом.
Step by step: интегрируем интерактивные 2D/3D-объекты в iOS-приложение
Привет, Хабр! Меня зовут Степан, я iOS-разработчик SimbirSoft.
В очередной раз открыв одно из ежедневных приложений, я обнаружил любопытную фичу: интерактивный 3D-элемент в виде звездочки. Казалось бы, ничего необычного, но это сделало взаимодействие с приложением немного приятнее. Так появилась идея для пет-проекта — нативно создать MVP интерактивного 3D-объекта.
Данная статья — step by step от интерактивных 2D-объектов к 3D. В конце статьи вы найдете ссылку на репозиторий.
Мобильная разработка за неделю #523 (22 — 28 января)
И подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
Упрощаем локализацию iOS-приложения со String Catalogs
Выход продукта на новые рынки сбыта — это деньги. Чем лучше ты знаешь своего клиента, тем вероятнее, что ты их сможешь заработать. Это же правило справедливо и в обратную сторону: клиент более охотно будет пользоваться твоим продуктом, если он может разговаривать с ним на одном языке.
Сегодня я расскажу о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки. Языки, разумеется, человеческие: от Swift мы отказываться не будем.
Flutter. На пути к совершенству
Добро пожаловать в волшебный мир программирования, где каждый разработчик – не просто кодер, а настоящий магистр заклинаний и цифровых чар! Перед вами лежит карта неисследованных земель, полных таинственных «кодовых джунглей», где скрывается легендарный кракен «кодовых глубин» и много других заморских чудес.
Обладая значительным опытом в разработке энтерпрайз мобильных приложений в TAGES, я хочу поделиться проблемами, которые часто встречаются на код-ревью у начинающих разработчиков.
Запаситесь же попкорном из нулей и единиц, устройтесь поудобнее за своими многооконными экранами и готовьтесь к незабываемому путешествию!
Пишем интерактивный виджет
Виджеты в новом обличии появились в 2020 году вместе с выходом iOS 14 (HomeScreen widgets). За это время Apple выпустила больше семейств виджетов, а также добавила их на LockScreen в iPhone и iPad. Но интерактивность появилась впервые в iOS 17.
В этой статье разберёмся из чего состоит интерактивный виджет: формирование Timeline, как работает интерактивность через библиотеку AppIntents, а затем напишем свой первый интерактивный виджет.
Мобильная разработка за неделю #522 (15 — 21 января)
И подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
Ближайшие события
Как снять логи при краше мобильного приложения?
Всем привет! Я Tech Lead QA в мобильной разработке. При тестировании приложений иногда сталкиваемся со сбоем приложения. И в таких ситуациях очень важно уметь собирать логи с устройства, чтобы максимально быстро пофиксить ошибки. В этой статье я хотел бы рассказать, как мы это делаем в Альфа-Банке.
Осторожно, в статье много картинок.
Офис Apple в Москве: как я с нуля стал экспертом и попал на приватную вечеринку для разработчиков
Это будет история из 2018 года, когда у Apple был большой офис в Москве, где иногда проводились закрытые мероприятия для разработчиков, на одно из которых меня компания пригласила лично. Приложулю я сделал, можно сказать, в одного (она была про путешествия), но если бы я пошел устраиваться разработчиком на хотя бы миддла в мобильную контору, то врядли бы меня наняли, ха ха.
Но оказался я там по делу и заслуженно (графики будут), поэтому давайте обо всем по порядку.
GitHub templates через bash скрипт
Всем привет! Меня зовут Роман Аймалетдинов, я андроид разработчик. В этой статье хочу рассказать вам как автоматизировать, хоть и простую, но рутинную работу по созданию и оформлению ваших git-hub pull request через bash скрипт. Это особенно полезно, если у вас монорепозиторий или несколько типов template. Например, отдельные template для bug и для feature или для разных команд. Но не все сразу, сначала разберемся с самими templates, поймем, почему это может быть неудобно и сделаем свой скрипт, который умеет парсить название в человеческое и создавать удобное описание для каждого типа задач. Теперь все по порядку.
ROBODORO: трекер времени для iOS от red_mad_robot
Рассказываем, как инициативная группа R&D red_mad_robot создала лаконичное и красивое приложение для управления временем с использованием Live Activity и Dynamic Island. Его уже можно скачать в AppStore.
Функции высшего порядка. Кастомная реализация. (Custom implementation of higher-order functions.)
Всем привет!
На интервью иногда просят реализовать одну из функций высшего порядка. Решил потренироваться в их самостоятельной реализации. Ниже представлен результат моих тренировок =)
Иногда бывает легче реализовать функцию конкретного типа, а затем сделать её универсальной (Generic). Такого подхода я и буду придерживаться в примерах, приведенных ниже.
Мобильная разработка за неделю #521 (8 — 14 января)
И подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
Разборы важных новинок для iOS-разработки с WWDC 2023
В это время мы обычно строим планы на будущее, и я уверен, что лучшее начало нового года — обучение новому и развитие навыков. Надеюсь, что в этом вам помогут видео докладов с осенних митапов, которые мы провели с командой iOS-разработки и на которых разобрали темы с последней конференции Apple: WWDC 2023.
Собрал в одной статье все вебинары и их краткое содержание.
Вклад авторов
-
ProductivityInside 2980.4 -
RoboForm 1892.9 -
PapaBubaDiop 1803.0 -
YourDestiny 1073.6 -
phillennium 836.0 -
alizar 751.9 -
redmadrobot 652.0 -
akaDuality 406.0 -
krokhmalyuk 384.0