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

iOS *

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

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

Снифферы трафика в мобильном тестировании: Обзор инструментов и их особенности

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

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

Давайте узнаем, как хватать и чем траффик.

Читать далее

SwiftUI AlignmentGuide

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

Всем привет, сегодня я расскажу про верстку в SwiftUI с помощью AlignmentGuide.

AlignmentGuide позволяет сделать специальное выравнивание внутри View. А точнее сказать, инструмент позволяет строить направляющие для выравнивания в контейнерных типах View (HStack, VStack, ZStack) между родителем и его потомками.

Читать далее

Шина данных и Swift: применение в слабосвязанных архитектурах

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

Привет, Хабра! Сегодня я приглашаю вас окунуться в мир современных архитектур мобильных приложений и поговорить об одном из самых эффективных и необычных подходов к их построению. Статья ориентирована на разработчиков, уже знакомых с основами SwiftUI. Я сосредоточусь на более продвинутых аспектах, поэтому некоторые базовые моменты могут быть упомянуты без подробных объяснений.

Шина появилась в нашем проекте по причине того, что хотелось добавить очень небольшую логику без риска поломки уже существовавшей. Рассмотрим, что такое шина данных и как с ее помощью работать с legacy. Будет интересно!

Быстрее показывай, что там дальше!

Обновление CocoaPods: пошаговое руководство

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

CocoaPods — это менеджер зависимостей для разработки под iOS и macOS, который упрощает процесс включения внешних библиотек в проект. С помощью CocoaPods можно быстро добавлять и управлять сторонними библиотеками и фреймворками, не беспокоясь о сложностях, которые неизбежно возникают при их интеграции вручную. В этой статье предлагаем ознакомиться с пошаговым руководством по началу работы с CocoaPods на Mac, включая установку и обновление, создание Podfile, а также добавление и управление зависимостями с помощью CocoaPods. Руководство довольно детальное и будет полезно для новичков.

Читать далее

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

Время на прочтение4 мин
Количество просмотров1.8K
В этом выпуске отслеживаем утечки памяти в iOS и выносим ViewModel из Compose функций, тестируем производительность Flutter и React Native, определяем кто тратит больше всего денег в приложениях и многое другое. Подключайтесь!

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

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

Ключевые слова для iOS приложения

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

На связи снова iOS отдел приложения Blink и сегодня я поделюсь с Вами простым способом повысить узнаваемость вашего приложения.

А нужно всего лишь добавить ключ kMDItemKeywords в ваш Info.plist!

Читать далее

Антимат в чате на iOS: как я мешаю пользователям сквернословить

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

Привет, Хабр! На связи снова Александр Пиманов (по-прежнему iOS-разработчик МТС Диджитал). Сегодня поделюсь своим опытом в одной интересной нишевой теме: фильтрации нецензурной лексики в приложении для iOS.

Да, мало кому может понадобиться фильтровать мат на клиенте, но  если у вас есть функция нейминга элементов в UI (добавление кастомного имени страницы, кнопки и так далее), запрос от бизнеса на такой фильтр и вы хотите сделать «проверку на дурака», то эта статья для вас. Прелюдия окончена, все подробности под катом.

Читать далее

«Перевод доставлен»: технотренды ТОП-5 банков России в разработке мобильных приложений. Разбираем на примере iOS

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

Привет! Я — Дмитрий Коркин, CEO Joy Dev и бывший iOS-разработчик. Давно, конечно, не кодил… Но стараюсь поддерживать технические скиллы. В этой статье я собрал тренды и бессмертную классику в финтех разработке, а также рассказал про своё видение идеального мобильного приложения для банков. 

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

Читать далее

От Cocoapods к Tuist+SPM быстрыми шагами

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

Не так давно прогремела новость, что Cocoapods переходит в режим поддержки, больше не будет развития, а только поддержка. В связи с этим встал вопрос, что дальше. В начале мы склонялись к чисто Swift Package Manager, но потом пришло понимание, что неплохо было бы уйти от конфликтов в project файле и сделать задел на модульность. В этой статье постараюсь описать полный путь от Cocoapods к Tuist+SPM, затрону то, что было мне было не понятно в других статьях и передать опыт, чтобы облегчить другим переход.

Читать далее

Performance Testing для iOS

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

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

Но как мы можем отслеживать и мерить метрики скорости нашего приложения? Этим вопросом задаются многие разработчики и компании, которые получили негативную реакцию или думают наперед, когда кодовая база и сложность приложения будет расти. Существует два пути: либо мы изучаем на реальных пользователях нашего приложения, либо мы ищем какой-то другой способ, который позволяет нам статистически проверить гипотезу.

Читать далее

5 рандомных вопросов на собеседовании iOS разработчика

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

Всем привет!

Рассмотрим 5 вопросов, которые вам могут задать на собеседовании на позицию iOS разработчика. Скорее всего, это вопросы уровня Junior, но т.к. сейчас непонятно кто, что и у кого спрашивает, поэтому не будем разводить холивар :)

Вопрос №1: Можно ли создать необязательные методы в протоколах?

Ответ: Существует два способа создания необязательных методов для протоколов.

Читать далее

Отслеживание утечек памяти в iOS-приложении со SwiftUI в Runtime

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

Всем привет! Меня зовут Фарид, я занимаюсь iOS-разработкой в компании Банки.ру.

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

В нашем проекте ставка сделана на использование SwiftUI, что затрудняет решение задачи: из-за декларативности подхода и отсутствия явно выраженного жизненного цикла в UI, обнаружить причину утечки памяти сложнее. 

В этой статье мы: 

1) пройдёмся по основным подходам к поиску утечек; 
2) попробуем найти способ сделать его обнаружение утечек менее болезненным;
3) выясним, можно ли каким-то образом застраховаться от утечек в будущем развитии проекта.

Читать далее

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

Время на прочтение4 мин
Количество просмотров2K
В новом дайджесте закрытие CocoaPods и излишества чистой архитектуры, деструктуризация в Kotlin с примерами и знакомство с Flutter GPU, архитектура мобильного приложения в разрезе высоких нагрузок и построения экосистем, кто может стать программистом, сокращение количества вакансий для разработчиков и многое другое. Подключайтесь!

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

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

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

Создание XCFramework из SPM пакета

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

Привет, Хабр! Я Николай Чурянин, начальник отдела разработки приложений для юридических лиц.

Как-то нам в голову пришла мысль подключать зависимости в виде собранных библиотек и тем самым не тратить время на пересборку редко изменяемых зависимостей. В данной статье рассмотрим, как создавать XCFramework из SPM пакета.

Читать далее

Как я бросила двустороннюю архитектуру и ушла к Redux со SwiftUI и SwiftData

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

На примере создания приложения pазберем архитектуру Redux, учтем возможное разделение приложения на модули. Будем постепенно наращивать уровень сложности (ориентир сложности: 🧠) В конце добавим работу со SwiftData, что закрепит понимание передачи данных не только в хранилище, но и по структурам Redux

Читать далее

Как мы соединили обучение с рабочими задачами и не остались в пустой аудитории. Опыт подготовки команды к SwiftUI

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

Сочетать учёбу и работу в IT – задача, мягко говоря, непростая. Даже если вы только ходите на занятия и делаете «домашку». А уж если вы захотите сами организовать обучение – сложности будут расти в геометрической прогрессии.

Недавно наша команда iOS-документов в МойОфис решила перейти на SwiftUI – декларативный UI-фреймворк от Apple. После достаточно безболезненного рефакторинга модуля с UIKit на SwiftUI оставалось всего ничего – обучить коллег новому фреймворку.

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

Читать далее

Сложности масштабирования Kotlin Multiplatform

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

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров2.6K
В нашем новом выпуске автоматическое обнаружение утечек памяти в CI/CD с помощью UI-тестов, эффективная работа с legacy кодом Medium и новая версия Flutter, знакомство с Mobile Farm, тестирование платежей в проде, дейтинг-приложение, работающее только по четвергам и многое другое. Подключайтесь!

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

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

Режимы наложения/смешивания в SwiftUI

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

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

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров2.4K
В новом дайджесте конвейеры мобильного развертывания за $0 и нестрашный Metal, Selenoid без симуляции и странные описания в Play Store, адаптивная верстка на React Native, упадок мобильной разработки, оптимизация пейвола и многое другое. Подключайтесь!

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

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