Обновить
42.14

iOS *

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

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

UI Testing in Swift with XCTest framework

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.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 мин
Охват и читатели3K
Данная статья написана в развлекательных целях. Если вам интересно следить за самыми последними новостями iOS разработки и получать подборку интересных статей по этой тематике, тогда вам стоит подписаться на Телеграм-канал iOS Broadcast

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

Всем привет!

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

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

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

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

Читать далее