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

iOS *

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

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

PWA vs Native: чек-лист, который поможет выбрать

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

Привет! Меня зовут Никита Грибков, я работаю Flutter-разработчиком в AGIMA. Мы с командой часто консультируем заказчиков о том, какой тип приложения им выбрать: нативное, кросс-платформенное или PWA. Я решил упростить себе работу и написать об этом статью. Но поскольку о разнице между кросс-платформой и нативом мы уже писали, сосредоточусь на разнице между нативом и PWA.

Читать далее

Шейдеры в iOS для начинающих

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

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

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

В iOS 17 пришло значимое обновление — теперь добавить шейдер можно к любой View, а значит, вся интеграция стала проще и растровых эффектов появится больше.

Давайте разбираться, что за чудо-код надо написать, как это подключить и как в целом погрузиться в тему. Начнём с простых градиентов, а закончим сложным примером «как в Air Drop на iOS 17».

Читать далее

Мобильная разработка за неделю #505 (4 — 10 сентября)

Время на прочтение4 мин
Количество просмотров1.9K
В новом дайджесте интерактивный UX и разбор Android 14, упрощение отладки и распознавания паспортов, атомарный дизайн, самые зарабатывающие приложения в России в августе, уроки музыки и многое другое.

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

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

Интерактивный UX: Как использовать Drag and Drop в UICollectionView на iOS

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

Когда речь идет о создании современных и привлекательных пользовательских интерфейсов, функциональность Drag and Drop (перетаскивание и сброс) играет ключевую роль. Эта техника позволяет пользователям более естественным образом взаимодействовать с контентом и упрощает перемещение элементов внутри приложения.

В данной статье мы погрузимся в мир Drag and Drop в контексте UICollectionView, одного из наиболее мощных и гибких компонентов пользовательского интерфейса в iOS. Попробуем легко и эффективно внедрить эту функциональность в проекты, создавая интерактивные и удобные интерфейсы для пользователей.

Собственно это то, что у нас получится:

Смотрим дальше

Enum в Swift: Перечисления Возможных Сценариев

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

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

Листаем дальше

Было: “Умный и Богатый”. Стало: “Отличная оценка!”

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

Что делают ваши дети в свободное время? Мой 9 летний сын выносит на улицу два пластмассовых стула, раскладывает на них разные сделанные им самим странные штучки (например, в прошлый раз это были сложенные из бумаги когти, надевающиеся на пальцы), садится на свою коробку из-под Лего, и начинает торговлю. Сын обаятелен и харизматичен, и хотя он пока мало что может сказать на языке той страны, в которую мы уехали из-за известных событий, торговля “когтями” идет бойко. Сыну нравится процесс и результат тоже: раз-два, и вот у тебя уже полная коробочка денег. 

Но свободное время рано или поздно заканчивается. И приходит пора … например, учить таблицу умножения. Делать это сыну совсем не хочется: “Да я бы сейчас сколько бы уже заработал, а тут учу-учу и всё равно ничего не учится” Сын задумывается: “Хотя, если бы за это можно было бы деньги получать, я бы мигом всё выучил!” Платить за таблицу умножения? А почему бы и нет? Пару вечеров за макбуком, и вот юный бизнесмен уже с удовольствием тестирует прототип приложения, в котором каждый правильно решенный пример приносит ему реальные деньги. А мое клятвенное обещание их выдать надежно в приложении зафиксировано.  

Денежки капают, таблица умножения учится. Раз идея понравилась моему ребенку и дает результат, почему бы не пустить ее в массы? Готовим дизайн, пишем продуктовый код, сын с друзьями проводят тщательное тестирование, выполняем локализацию и, наконец, наступает волнующий момент: приложение с говорящим названием “Smart&Rich”, готовое помогать детям учить таблицу умножения, попутно пополняя копилку за счет родителей (старших братьев, сестер, дядь, теть, бабушек, дедушек и пр. заинтересованных лиц),  отправляется на модерацию в App Store.

Казалось бы, что может пойти не так?

Распознаем паспорт РФ в PWA: быстро, качественно, без сервисов/без утечек

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

Утечки персональных данных в России бьют все рекорды. За два года их совокупное число выросло – только вдумайтесь – в 40 раз. В 2021-м году таких инцидентов было всего четыре, в 2022 – свыше 140, а за первые семь месяцев 2023 года – уже 150.

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

Между тем, есть еще один способ ввода данных из документов – прямо на устройстве, без необходимости отправлять куда-то картинку. Он полностью исключает риск любой утечки. Речь идет о нашем мобильном SDK для распознавания паспорта. О том, как мы внедрили наш SDK в PWA (progressive web app), читайте под катом.

Читать далее

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

Время на прочтение5 мин
Количество просмотров2.2K
В этом выпуске зарубы с Apple и Ui-тесты для поиска утечек памяти, вторая жизнь Windows Phone и новая социальная сеть с ИИ, игровой рынок 2023, StoreKit 2, советы для прохождения кодинг-интервью и многое другое

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

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

Переворачиваем вечный SwiftUI календарь при помощи UIKit

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.6K
Данная статья написана в развлекательных целях. Если вам интересно следить за самыми последними новостями iOS разработки и получать подборку интересных статей по этой тематике, тогда вам стоит подписаться на Телеграм-канал iOS Broadcast

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

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

Месячная заруба с Apple. Рефакторим бридж. Часть 2

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

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

И так, что же мы имели:

приложение прошло модерацию в AppStore, но у нас всё ещё не было уверенности, что мы сможем пройти следующие ревью.

код взаимодействия с приложениями в вебвью дублировался в нескольких приложениях.

бридж между нативным приложением и игрой был написан достаточно давно и очень уж хотелось его освежить.

Таким образом пришли к тому, что рефакторингу — быть.

Читать далее

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

Время на прочтение4 мин
Количество просмотров2K
В новом выпуске любовь и терпение Swift и Objective-C, подводные камни тестирования и построение инфраструктуры, универсальные пуши, чтобы править всеми, подписки в App Store и многое другое.

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

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

Расширенное управление памятью с помощью Unsafe Swift

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

Управление памятью — важнейший аспект разработки программного обеспечения, обеспечивающий эффективное использование системных ресурсов и предотвращающий такие ошибки, как утечки памяти и сбои. В Swift управление памятью обычно абстрагируется посредством автоматического подсчета ссылок и безопасных абстракций. Однако существуют сценарии, в которых становится необходимым прямое манипулирование памятью, например взаимодействие с библиотеками C, оптимизация производительности или реализация пользовательских структур данных. В этой статье рассматриваются расширенные возможности Swift по управлению памятью посредством использования его «небезопасных» конструкций, таких как UnsafeMutablePointer и UnsafeRawPointer.

Изучая мощные возможности небезопасных конструкций Swift, таких как UnsafeMutablePointer и UnsafeRawPointer, эта статья призвана предоставить разработчикам Swift знания, необходимые для обработки расширенных сценариев управления памятью, эффективного объединения Swift с API C. и при необходимости оптимизировать производительность. Благодаря реальным примерам и практикам читатели смогут глубже понять тонкости манипуляций с памятью в Swift, уделяя при этом особое внимание безопасности и надежности.

Читать далее

Приглашаем на Ozon Tech Community Mobile Meetup

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

Всем привет!

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

Приглашаем на Ozon Tech Community Mobile Meetup, на котором подробно обсудим дизайн-систему — это продукт, который структурирует набор компонентов и гайдлайнов. Это позволяет дизайнерам и разработчикам создавать последовательный и согласованный визуальный язык для продуктов и услуг компании. 

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

Об этом поговорим на Ozon Tech Community Mobile Meetup в Москве, 29 августа в 19:00.

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее