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

iOS *

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

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

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров737
В этом выпуске творческая переработка MVVM и TCA, революционное изменение в обработке ошибок в Kotlin и ускорение React Native, 40 ударов палкой и глупые ошибки Google, лабораторные микроскопы, переезд с Java на Swift и многое другое. Заходите!

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

Новости

I SLICED UP FUN – Я РАЗДЕЛЯЮ ВЕСЕЛЬЕ (автор — Jonathan Kohl)

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

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

Читать далее

Порождающие паттерны проектирования в примерах на Swift для самых маленьких

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

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

Читать далее

Структурные паттерны проектирования в примерах на Swift для самых маленьких

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

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

Приступим.

Адаптер / Adapter

Адаптер — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.

Представим у нас есть класс, единственная цель которого "говорить" Hello world!

Читать далее

Как мы превратили iPhone в лабораторный микроскоп с AI и BLE: real-world edge-приложение

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

В этой статье я хочу поделиться опытом разработки iOS-приложения для роботизированного микроскопа с AI-распознаванием клеток крови — как оно устроено, какие задачи пришлось решать, на какие грабли пришлось наткнуться и как iPhone можно использовать в качестве лабораторного инструмента.

Это не очередной todo-лист с авторизацией или приложение для наложения масок на селфи  — в центре внимания: видеопоток с окуляра микроскопа, нейронки, работа с железом, Bluetooth-управление перемещением стекол, и всё это — прямо на iPhone. 

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

Читать далее

Гайд: Как заменить скриншоты для iOS-приложения в App Store без билда и новой версии?

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

Привет! Меня зовут Александра, я ASO & ASA-менеджер и автор Телеграм канала Заметки ASO. В этой статье покажу, как поменять скриншоты для iOS-приложения в App Store без добавления билда или публикации новой версии приложения.

Читать далее

Как построить свою ферму устройств и упростить работу с устройствами и эмуляторами: делимся опытом создания DeviceHub

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

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

Читать далее

Творческая переработка MVVM и TCA на примере iOS

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

Всем привет, меня зовут Дмитрий Лоренц, я iOS-разработчик в IT-компании GRI. Наш основной клиент — Sunlight, для него мы разрабатываем нескольких мобильных приложений по полному циклу и поддерживаем сайт.

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.5K
В новом дайджесте быстродействие прокрутки в SwiftUI и выразительные анимации, сахар для UI-тестирования и красота Android, NativePHP, анатомия энергопотребления, небольшое изменение в интерфейсе Duolingo, которое меняет все и многое другое. Заходите!

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

Индикация клика на стероидах в Compose: пишем свою IndicationNodeFactory

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

При работе с Jetpack Compose разработчики часто не замечают, как элементы Material и Material 3 дизайн-систем вплетаются в их код. Один из таких элементов - это индикация клика, реализованная в Material как круги на воде (англ. ripple effect). В этой статье мы разберем, в чем недостатки дефолтной реализации риппл-эффекта в Compose и как сделать свою.

Читать далее

SmartCaptcha Yandex на iOS: инструкция по внедрению

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

Привет! Меня зовут Александр, я iOS-разработчик в IT-компании SimbirSoft. В этой статье я расскажу, как интегрировать Yandex SmartCaptcha в iOS-приложение — от подготовки до решения возможных трудностей.

Настройка Yandex SmartCaptcha на первый взгляд может показаться простой задачей, но на практике она требует внимательности, точной настройки и понимания архитектуры приложения. Я поделюсь личным опытом внедрения этого инструмента, объясню, какие нюансы стоит учесть, а также как избежать ошибок.

Материал предназначен для iOS-разработчиков, у которых уже есть базовые знания мобильной разработки, и кто хочет быстро и корректно внедрить капчу от Яндекса в свое iOS-приложение.

Читать далее

Tuist. Как перенести проект

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

Если решили разбить свой проект на модули, это можно сделать при помощи Tuist. В этой статье покажу базовые настройки для старта вашего проекта.

Читать далее

Для чего я написал собственный аудиопроигрыватель

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

Как и у многих, у меня накопилось слишком много подписок: некоторые у Apple (iCloud, Apple Music), другие потерялись на разных платформах (например, на Netflix — я и забыл, что всё ещё плачу за него). На самом деле, я регулярно пользовался Apple Music (а ранее Spotify), но потоковая музыка оказалась больше удобством, чем необходимостью. При наличии тщательно подобранной локальной библиотеки я ничего особо не потерял.

Поначалу я думал, что просто продолжу использовать iCloud Music Library для синхронизации музыки между устройствами, но после отмены подписки на Apple Music синхронизация перестала работать. Оказалось, за эту функцию нужно платить. Строго говоря, её можно вернуть при помощи iTunes Match (24,99 $ в год). Match просто хранит AAC-копии с битрейтом 256 кбит/с; ваши исходные файлы остаются на месте, если вы не захотите удалить их. На современных Mac всё это делается в приложении Music. При отсутствии подписок синхронизация с облаком отключается и остаётся лишь синхронизация по кабелю/Wi-Fi.

Раздосадованный ограниченностью возможностей, я решил взяться за разработку. Если уж я купил вычислительное устройство (в данном случае iPhone), то что мешает мне просто создать необходимое мне при помощи кода? В этой статье я расскажу о своих разочарованиях по пути к реализации базовой функциональности музыкального плеера: загрузки аудиофайлов, их упорядочивания и воспроизведения. Но больше всего мне хотелось напомнить себе, что это просто компьютер, и у меня должна быть возможность заставить его выполнять нужные мне задачи.
Читать дальше →

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

Rafinad: сахар для UI-тестирования iOS-приложений

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

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

Кто-то скажет, что старые решения прошли проверку временем и что «работает — не трогай»... Возможно, и так. Но сейчас мы внедряем новую дизайн-систему, а новые компоненты требуют адаптации всех тестов — не лучшее ли время для перемен?

Поэтому мы пересмотрели наши подходы к UI-тестированию и теперь готовы поделиться наработками с сообществом в виде open-source проекта — Rafinad. В этой статье расскажем, что он умеет и как им пользоваться.

Читать далее

Мобильная разработка за неделю #587 (17 — 25 мая)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3K
На этой неделе прошла I/O 2025 и главное на ней было посвящено ИИ, но и для Android-разработчиков есть много обновлений — новая навигация Jetpack Navigation 3, новые функции в Android Studio, обновления Google Play и т.д. Кроме этого новые релизы Flutter и Dart, плагин KMP для IntelliJ IDEA и Android Studio, большое обновление DivKit, тестирование без инцидентов в проде и многое другое. Заходите!

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

Vivaldi 7.4 для iOS: Мощь, блеск и море любви к вкладкам

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

Vivaldi для iOS становится лучше. С версией 7.4 мы даём вам больше возможностей с более умными настройками, более глубокой кастомизацией и серьёзными обновлениями в обработке вкладок, которые делают мобильный просмотр намного лучше.

Читать далее

Это не шутка: чем «Аврора» уже круче Android

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

Разбираемся, в каких сценариях «Аврора» уже превосходит Android: безопасность, кастомизация, импортозамещение — и где системе ещё есть куда расти.

Читать далее

Мобильная разработка за неделю #586 (12 — 18 мая)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.7K
Новый большой дайджест после праздничного перерыва — архитектурный линтинг и Material 3 Expressive, тёмные уголки обфускации и Compose Multiplatform для iOS, типобезопасная передача результатов, сломанные OTP и открытые конечные точки, UI-дизайн с ChatGPT и многое другое. Заходите!

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

Внешние платежи в App Store: что изменилось с выходом iOS 17.4

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

В рамках исполнения законодательства ЕС о цифровых рынках (DMA) Apple с марта 2024 года обязана предоставлять «альтернативные каналы» дистрибуции и оплаты для «читательских» приложений и ряда других категорий. Для этого разработчики в Европе заключают отдельное дополнение к договору (Alternative Terms Addendum) и получают специальные права на использование внешних платежей

Читать далее

Погружаемся в пуши. Создаём свою альтернативу сервисам рассылки Push

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

Всем привет! На связи Вадим, старший разработчик компании STM Labs. Хотите избавиться от ограничений пуш-сервисов и взять пуш-уведомления под полный контроль?

В этой статье мы глубоко погрузимся в процессы работы пуш-уведомлений, рассмотрим пример создания своего транспорта пушей и создадим Flutter-плагин для поддержки
собственного решения.

Читать далее
1
23 ...