Как стать автором
Обновить
48.09

iOS *

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

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

WWDC 2024. Чем удивляют разработчиков

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

Привет! На связи KTS и наш эксперт по iOS-разработке Александр.

10-го июня в 20:00 по Москве стартовала ежегодная конференция для разработчиков Apple WWDC 2024. Рассказываю в статье про основные новости с сессии мобильной разработки:

— Интеграция искусственного интеллекта Apple Intelligence (AI) во всю экосистему.
— В iOS 18 добавлено плавающее размещение иконок и автоматическое затемнение в темной теме, обновлен центр управления и приложение «Фото» (аналогично — и в iPadOS 18).
— VisionOS 2 получил конвертацию фото в 3D и SharePlay, а сам Apple Vision Pro выходит в 8 новых странах позже этим летом.
— AirPods Pro теперь распознают жесты, а Apple TV определяет актеров и музыку с помощью функции InSight.
— В watchOS 11 внедрили приложение Vitals для мониторинга здоровья. macOS Sequoia поддерживает зеркалирование iPhone и ИИ в Safari.

Читать далее

iOS-разработчики в 2024 году: какие нужны скилы и как проходит процесс найма

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

Команда Яндекс Практикума провела исследование и готова рассказать, как обстоят дела в найме начинающих iOS-разработчиков: какие навыки требуются джуниорам для работы, о чём их спрашивают на собеседованиях и сколько откликов им нужно отправить, чтобы получить приглашение на интервью.

Читать далее

Мобильная разработка за неделю #541 (3 — 9 июня)

Время на прочтение4 мин
Количество просмотров2.7K
В нашем новом выпуске исследуем рынок работы для iOS-разработчиков, использование ИИ и кроличьи норы оптимизации, погружаемся в мир Lint-a, строим BDUI, определяем рынок мобильных приложений в 1 квартале 2024 года и многое другое. Подключайтесь!

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

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

SwiftUI уроки (часть 14)

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

Теперь, когда у вас есть базовые представления о Combine, давайте рассмотрим, как Combine может улучшить SwiftUI. При разработке реального приложения часто требуется страница регистрации для создания аккаунта. В этой главе мы создадим простую экранную форму регистрации с тремя текстовыми полями. Наше внимание будет сосредоточено на валидации формы, поэтому реальная регистрация выполняться не будет. Вы узнаете, как использовать Combine для валидации каждого из полей ввода и организации кода в модели представления.

Читать далее

WWDC 2024. Прогнозируем, что ждет разработчиков

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


Всем привет! С вами снова я, Анна Жаркова, руководитель группы разработки из компании Usetech. Совсем скоро нас ждет неделя тематических сессий по технологиям WWDC от Apple, а это значит, что самое время составлять список того, что может быть продемонстрировано из новинок, и что хотелось бы увидеть больше всего. Затем сравним свой вишлист с анонсами.

Итак, начнем. С новинок прошлого года.

Развитие новинок прошлого года


В прошлом году Apple посвятили большую часть сессий своей новинке – умным очкам VR/AR, работающим на Vision OS, а также технологиям для разработки соответствующих приложений: ARKit/VRKit, Core/Metal и т.п. Разумеется, много было и различных кодлабов и воркшопов по работе с SDK и VisionOS. Затем был запущен маркет соответствующих приложений. В этом сезоне ожидаем больше оптимизированных фирменных приложений Apple, а также функцию отслеживания дыхания и поддержку стилуса Pencil Pro, представленного ранее. Ожидаем крупное обновление Vision Pro, которое включит в себя более мощную функцию Live Captions, с поддержкой генерации субтитров всех окружающих диалогов в поле зрения пользователя. И очень важно: новое обновление, вероятно, будет включать в себя поддержку и интеграцию с Искусственным интеллектом.
Читать дальше →

GPT vs Copilot: кто лучший помощник в написании UI-тестов для iOS?

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

Мы выпускаем обновления приложений Lamoda минимум 4 раза в месяц. С каждым обновлением идут серьезные изменения: новые продукты, внедрение ML-моделей и так далее. У нас налажен процесс тестирования нового кода, но есть нюанс: проверять перед релизом нужно не только новую функциональность, но и базовые возможности приложения, чтобы убедиться, что они работают корректно и ничего не сломалось. 

На проверку базового функционала уходит куча времени QA. Поэтому мы создали автоматические UI-тесты. Они автономно проверяют базовые функции и помогают снизить нагрузку на тестировщиков.

Но приложение постоянно растет, а с ним должно расти и тестовое покрытие. Главная сложность здесь — количество тестов, которое приходится писать. Когда у меня появилась задача написать очередную партию тестов, я сразу подумал о том, что мне нужна помощь. Меня зовут Марк, я iOS-разработчик из Lamoda Tech. В этой статье я расскажу, как использовал LLM для написания UI-тестов, и сравню результаты ChatGPT и Copilot.

Читать далее

Mobius 2024 offline. День второй

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

Привет, Хабр!

Вот и вторая часть репортажа о конференции Mobius 24.

День начался сразу с первого доклада и теперь просторный зал Альфа принадлежал андроидам, в отличие от вчерашнего дня)

Multiplatform UI with Compose
Алексей Гладков

Алексей поделился полезными советами, как поддержать Compose на разных платформах и конфигурациях экрана. 

Судя по тому, что многие в зале на ходу конспектировали его доклад, с болью адаптации Compose-экрана под разные устройства мы встречаемся часто. Хотя фронтендеры с проблемами вёрстки сталкиваются постоянно, их опыт не всегда подойдет для Compose Multiplatform.

Мы посмотрели, как удобно реализовать архитектуру и навигацию в проекте, который будет собираться под разные платформы, какие common-компоненты лучше выделить. Хороший совет продумать обработку keyboard shortcut-ов для улучшения UX пользователей десктопа, и Compose Multiplatform даёт такую возможность.

Понравилась идея использовать репозиторий с Flow настроек приложения (AppSettings), чтобы слушать изменения и оперативно отрисовывать UI.

В проекте Compose Multiplatform Wizard можно найти весь актуальный на даный момент стек библиотек, единственное, он обновляется очень часто, примерно раз в неделю.
Общие советы, которые дал нам Алексей: смотреть на разные форм-факторы дисплеев, по возможности проектировать абстрактные экраны, рассматривать компонент экрана как контейнер, что близко к устройству супераппа. И, конечно, толкать дизайнеров, чтобы заранее продумывали UI под разные платформы :-)

Презентация

Читать далее

Как мы строили BDUI: опыт Яндекс Маркета

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

Привет! Меня зовут Алексей Морозов. Я уже несколько лет работаю в инфраструктурной команде Яндекс Маркета. Наша команда делает проекты, которые должны были улучшить скорость приложения, его качество и скорость разработки. Однако раньше такие проекты решали эти проблемы только на время, приложение снова деградировало. Всё это напоминает древнегреческий миф, в котором Сизиф толкает в гору камень, он скатывается вниз, и всё начинается по новой.

Такое положение дел нас не устраивало, поэтому было принято решение изменить подход. И мы построили BDUI (Backend Driven UI). В этой статье я расскажу о том, как это случилось, что сделали и какой в итоге получили результат. 

Читать далее

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал)

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

В этой статье мы рассмотрим тонкости создания Proof of Concept (PoC) мобильного приложения, построенного с помощью фреймворка SwiftUI и бэкенда с использованием FastAPI и OpenAI API. Дополнительно я продемонстрирую эффективные архитектурные паттерны для SwiftUI-приложений, в частности MVVMP в сочетании с принципами SOLID и Dependency Injection (DI). Для андроид код можно легко перевести на Kotlin с помощью Jetpack Compose Framework.

Читать далее

NTP для мобильных разработчиков: Как точное время повысит качество ваших приложений

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

Все разработчики мобильных приложений сталкивались с проблемой точности времени. Часто для ее решения прибегают к различным методам, например, получают время с собственного сервера. Однако, существует гораздо более простой и удобный способ — использование NTP (Network Time Protocol). В этой статье мы разберемся, что такое NTP, как он может быть полезен для мобильных разработчиков, какие библиотеки существуют для работы с ним и в каких кейсах его использование особенно актуально.

Читать далее

SwiftUI инпут: проблемы и решения

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

Представьте, что вам нужно реализовать комплексный компонент инпута на SwiftUI. Что может пойти не так? Какие сложности могут возникнуть? На эти и другие вопросы постараюсь ответить в статье, где реализуем компонент со скрина, а также разберем возможные проблемы.

Читать далее

Мобильная разработка за неделю #540 (27 мая — 2 июня)

Время на прочтение4 мин
Количество просмотров2.1K
В новом дайджесте разбираем основы iOS-разработки в Revolut и оцениваем финалистов Apple Design Award 2024, обновляем адаптивные макеты на примерах с I/O и продолжаем ставить на Flutter, тираним пользовательские интерфейсы, катим MobAIle-разработку, делаем кондиционер умным и многое другое. Подключайтесь!

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

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

SwiftUI уроки (часть 13)

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

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

Читать далее

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

Pедактор цен для iOS подписок

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

Каждый разработчик iOS, стремящийся выйти на глобальный рынок или активно экспериментирующий с ценами в разных странах, сталкивается с неудобством работы через App Store Connect. Существует множество отличных инструментов для контроля подписок и управления экранами платежей, но до недавнего времени на рынке отсутствовал интегрированный с Apple редактор цен. Именно эту нишу и стремится заполнить aso.dev со своим редактором цен на iOS подписки.

Читать далее

Стэнфордский курс CS193P “Разработка iOS приложений в SwiftUI” Весна 2023: русскоязычный конспект с адаптацией к iOS 17

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

Если вы хотите получить фундаментальные знания по разработки  iOS приложений с помощью SwiftUI, вам следует пройти стэнфордский курс CS193P. Предложенные в весеннем семестре 2023 года лекции Стэнфордского курса CS193P «Developing  Application for iOS with SwiftUI» («Разработка приложений для iOS с использованием SwiftUI») — это уже 3-я реинкарнация курса CS193P с фреймворком SwiftUI.

В настоящий момент действуют Xcode 15 / iOS 17, которые были представлены на WWDC 2023 уже после завершения курса CS193P, наиболее значимое обновление внесено в механизм реактивного UI в SwiftUI (макрос @Observable против протокола ObservableObject).

В иллюстрированных  русскоязычных конспектах этого курса сделаны пометки, касающиеся изменений в iOS 17. Для большинства Лекций представлена версия с  использование макроса @Observable вместо протокола ObservableObject, в ряде случаев это потребовало нетривиальных решений. 

Читать далее

Мобильная разработка за неделю #539 (20 — 26 мая)

Время на прочтение4 мин
Количество просмотров3.3K
В этом выпуске работаем с SwiftUI на iOS 14, снова обсуждаем Google I/O 2024 и проводим скриншот-тестирование для превью Compose, оцениваем Flutter 3.22, пишем 2D-игры для кнопочных телефонов нулевых и многое другое. Подключайтесь!

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

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

Пермишены (permissions) для тестировщика: зачем нужно, что такое и как с этим работать

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

Приветствую?

В тестировании, особенно мобильном, существуют специфические области приложений, которые не всегда тестируются «вдумчиво» в силу своей необычности. Одна из таких областей — это разрешения или, как их принято называть, permissions (пермишены). Всё чаще я сталкиваюсь с ними в работе , на собеседованиях и в различных тренажерах по тестированию, поэтому решил погрузиться и более детально рассмотреть эту необычную и по-своему интересную часть мобильных приложений.

Меня зовут Антон, я QA Mobile в компании MobileUp. В статье я разберу, что такое пермишены, для чего нужны, какие виды существуют, где их можно найти и как тестировать.Эту статью я пишу исключительно с точки зрения ручного тестирования, но в конце текста оставлю интересные ресурсы, которые могут пригодиться для QA Auto (но это не точно ?).

Читать далее

Как поправить 3 проблемы MVx архитектур

Время на прочтение9 мин
Количество просмотров3.1K
Другие статьи из серии:
1. Почему MVx архитектуры всегда получаются плохо
2. Как поправить 3 проблемы MVx архитектур
3. Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая
4. Т-функция: подключаем логику к UI как к БД

Intro


Итак, в прошлый раз я описал три проблемы, которыми, на мой взгляд, страдают все MVx и даже некоторые не MVx архитектуры. Если коротко, то это:

  • проблема остатка — при делении фичи на заявленные компоненты архитектуры остаётся либо «неделимая» часть фичи, либо лишние компоненты архитектуры;

    image
  • проблема масштабирования — при расширении фичи компоненты архитектуры начинают раздуваться, что усложняет дальнейшую поддержку;

    image
  • и проблема разрывов логики, когда из-за взаимодействия с UI логика разрывается на части, что тоже не помогает нам делать систему более цельной, предсказуемой и тестируемой.

    image

Описание проблем это, конечно, хорошо, но вопрос в том, как их решать? Об этом я бы и хотел поразмышлять в этом тексте. Спойлер: когда я нашел решение проблемы разрывов, я понял, что оно может решить и все остальные проблемы.
Читать дальше →

SwiftUI на iOS 14: преодолевая баги и улучшая перформанс в 3 раза

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

Привет, меня зовут Никита, я iOS-разработчик в команде Яндекс Диска. В этой статье я расскажу про наш опыт разработки на SwiftUI с минимальным деплоймент таргетом iOS 14.

В статье я собрал топ-6 багов, с которыми можно столкнуться, а еще поделился, что помогает улучшить перформанс SwiftUI и ускорить ваши view в 3 раза.

Читать далее

AVPlayer seek(to:… vs seek(…tolerance

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

Привет всем! Это моя внеочередная статья, о том что нагорело. У меня за последний год накопилось много интересного (и не очень :) ) материала. Но эту статью хочу написать вне очереди. Не так давно я столкнулся с интересным поведением метода seek(to: CMTime). Об этом и хочу написать.

Но начнем по порядку.

AVPlayer известен нам с iOS 4. Он содержит AVPlayerItem, AVAsset.

Читать далее