Как стать автором
Поиск
Написать публикацию
Обновить
37.5

iOS *

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

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

Перф-тесты VS аномалии. Вечная битва за производительность приложений на iOS

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

Чем больше задач выполняет приложение, тем тщательнее нужно следить за его производительностью. Под катом на примере Яндекс Браузера и приложения Яндекс с Алисой подробно расскажу о том, как мы отслеживаем аномалии метрик производительности на стороне клиента с помощью перф‑тестов: основные принципы универсальны, и вы легко сможете использовать их для других типов приложений.

А ещё вас ждёт чек‑лист, на что обратить внимание и к каким инструментам присмотреться.

Читать далее

UI Testing in Swift with XCTest framework

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

В этой статье мы не говорить о важности тестирования в целом, но я хочу поговорить о тестировании пользовательского интерфейса. Одним из очевидных преимуществ тестирования пользовательского интерфейса по сравнению с модульным тестированием является возможность писать тесты пользовательского интерфейса, даже если у вас есть пахнущая и глубоко связанная кодовая база. В этой статье мы рассмотрим, как писать тесты пользовательского интерфейса как для проектов на основе SwiftUI, так и для UIKit.

Читать далее

@ViewBuilder Что? Зачем? Когда?

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

@ViewBuilder Что? Зачем? Когда? SwiftUI, iOS

Разбор назначения, ограничений и рациональность применения конструктора представлений @ViewBuilder.

Читать далее

Близится старт продаж iPhone 15. Почему блокировка банковских приложений не должна вас останавливать?

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

Презентация iPhone 15 – главное технологическое событие сентября. И чем ближе старт продаж – тем больше дискуссий на тему целесообразности покупки нового яблочного смартфона. В этом году в числе стоп-факторов оказался весьма любопытный пункт – блокировка мобильных приложений банков, попавших под санкции. 

Действительно, скачать приложения банков из App Store сейчас нельзя. Пытаться перенести их с одного устройства Apple на другое или установить его в обход магазина – тот еще квест, причем не самый безопасный. Но у нас для вас хорошая новость: выход есть. Если вам интересно узнать, как банки (правда, не все) о вас позаботились и решили эту проблему, а также причем тут мы, компания Smart Engines – заглядывайте под кат. 

Читать далее

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

Время на прочтение4 мин
Количество просмотров2.4K
В этом выпуске шейдеры на iOS и игра менее 1 Мб, Spotify без рекламы и простые привычки лучших инженеров, новая оплата в Unity, самые быстрорастущие приложения в сентябре, социальная сеть только для друзей и многое другое!

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

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

Хочите виртуальный macOS на своём PC? Их есть у меня

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

Статья о том как установить себе "macOS Monterey" в виртуальной машине на обычном PC без покупки для этой цели макбука или айМака.

По идее это просто туториал как получить у себя на обычном PC систему macOS и Xcode, но так как я тут нахожусь в состоянии "Отхабренный" я могу отправлять статьи только в "Профильные хабы". По этой статье больше бы подошло "Tutorial", но такого хаба я не нашёл и поэтому выбрал наиболее близкие хабы по теме статьи: "Настройка Linux" и "Разработка под iOS". И КДПВ тоже я выбрал идиотскую -- просто сделал скриншот со своего компа где продемонстировал версию macOS и версию установленного у меня Xcode.

Если интересно, то "Читать далее"

Есть ли смысл начинать писать мобильное приложение не на Kotlin Multiplatform и Compose Multiplatform?

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

Всем привет! Меня зовут Борис Вербицкий, и я представитель того редкого типа iOS разработчиков, которые тепло относятся к Kotlin Multiplatform Project и рады появлению Compose Multiplatform. Здесь я решил поделиться своим опытом использования этих технологий, а также кое-какими размышлениями вокруг процессов с такой разработкой. Цель этой статьи - это поднять обсуждение предложенного мной подхода, послушать все за и против в комментариях.

Приятного чтения!

Читать далее

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

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.6K
Июльский отчет Data Reportal показал, что число пользователей мобильных телефонов за 2023 год увеличилось аж на 168 (!) миллионов. Значит ли, что из-за такого прироста нужно выделять бюджет на разработку МП? Да, но не всем. Рассказываем, в каких случаях можно обойтись без приложения, а в каких без него никуда. Подскажем, когда лучше выбирать кроссплатформенную разработку МП, а когда — нативную.

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Утечки персональных данных в России бьют все рекорды. За два года их совокупное число выросло – только вдумайтесь – в 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.4K
Данная статья написана в развлекательных целях. Если вам интересно следить за самыми последними новостями 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.4K

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

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

Читать далее