Обновить
54.87

iOS *

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

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

Из мобильной разработки в бэкенд. История и впечатления

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

Самый простой и логичный способ сменить стек — поменять направление внутри компании. Мог так сделать дважды, но тогда бы и писать было не о чем. Буду рад, если кому-то мой опыт окажется полезным или интересным.

Зачем менять стек?

В 2019 году, работая над android-приложением Auto.ru, я часто думал, что надо что-то менять в карьере. Вот несколько тезисов:

- Стать CTO в будущем будет проще с опытом в бекенде...

Погрузиться в историю

Новости

Твоё приложение никто не видит — ASO может это исправить

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

Если у вашего приложения 2–3 установки в день и кажется, что «ниша не та» — скорее всего, дело не в нише, а в том, что про вас просто никто не знает. В этой статье коротко и по делу расскажу о том, что такое ASO (App Store Optimization) и почему без него ваше даже классное приложение никто не найдёт.

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

Читать далее

Combine – швейцарский нож iOS-разработчика. Или нет?

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

Привет! Меня зовут Антон, я iOS-разработчик в Банки.ру. Когда я только начинал изучать Combine, он казался для меня магией. Пара команд – и вот у тебя уже есть какие-то данные. Чтобы Combine перестал оставаться черным ящиком давайте заглянем внутрь. Эта статья – мое виденье этого фреймворка.

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

Давайте рассмотрим Combine изнутри!

Читать далее

Сам себе Шерлок: 7 способов найти логи и поймать баг на iOS

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

Привет, Хабр! Меня зовут Максим, и я тестирую мобильные приложения. Знакома ситуация, когда кнопка не работает, приложение виснет, анимации тормозят, но при этом нет никаких ошибок на экране?
Можно часами играть в детектива, гадая по UI и строя догадки, что пошло не так. А можно за несколько минут найти настоящего преступника — ведь iOS щедро оставляет улики в виде логов. Нужно лишь знать, где их искать. Секрет — в грамотном выборе способа, как собрать доказательства. Но обо всём по порядку.

Начать расследование

Мобильная разработка за неделю #607 (13 — 19 октября)

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

В новом дайджесте трещины в Liquid Glass и опыт собеседования в Microsoft, шутки и веселье в Android и запрет программистам писать код, взлом на собеседовании, Supercell против ЕС, интеграция Predictive back и многое другое. Заходите!

Читать далее

Трещины в Liquid Glass

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

Похоже, что в iOS 26 Apple начала ещё больше склоняться к визуальному дизайну и декоративным эффектам UI; но насколько плохо это скажется на юзабилити? На первый взгляд, система выглядит удобной и современной, но как только начинаешь ею пользоваться, мерцающие поверхности и анимированные элементы управления становятся помехой. Давайте сотрём глянец и посмотрим, как эти изменения влияют на реальный опыт пользования.

Читать далее

Bricks: от идеи до UI за 60 секунд

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

Привет! Я — Дмитрий Гусев, Frontend-разработчик в команде Bricks в кластере Core Services в Авито, в статье подробно рассказываю, как и зачем мы внедрили механизм предварительного просмотра проектируемого интерфейса в реальном времени прямо в админку Bricks: зачем это понадобилось, как всё устроено под капотом и с какими неожиданностями столкнулись по пути.

Предварительно просмотреть!

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

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

В этом выпуске отрисовка SF Symbols в SwiftUI и краши Android-приложений, неблокирующие заставки и история о переезде на React Native, физический продукт, вместо очередного SaaS, запрет бесплатных раздач приложений от Apple, Топ-10 лучших бесплатных нейросетей и многое другое. Заходите!

Читать далее

Vivaldi 7.6 для мобильных устройств — Всё в ваших руках

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

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

Читать далее

Kick для QA-инженеров

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

Kick (Kotlin Inspection & Control Kit) – это кроссплатформенный модульный набор инструментов отладки, встроенный прямо в приложение. Он позволяет отображать нужные переменные в плавающем окне, инспектировать логи, сетевой трафик, базы данных SQLite/Room, файловую систему и т.д. Kick фактически заменяет множество разрозненных утилит единым решением: больше не нужно переключаться между разными программами или консолью – все необходимые средства собраны в одном интерфейсе. Это снижает сложность диагностики: тестировщик получает полный обзор состояния приложения на Android, iOS и Desktop из одного окна.

Читать далее

Мобильная разработка за неделю #605 (29 сентября — 5 октября)

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

В новом дайджесте OCR-сервер на iPhone и разработчики против регистрации Google, скрытые угрозы Room и golden-тесты во Flutter, Kotlett и динамические обновления без релизов и BDUI, мобильный интерфейс без человека, приложения, вышедшие в августе, и заработавшие больше $50К и многое другое. Заходите!

Читать далее

Swift Codable

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

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

На этой неделе мы поговорим ещё об одном встроенном типе Swift - Codable. Думаю, все, кто писал клиент-серверные приложения, сталкивались с этим протоколом: он позволяет преобразовывать наши структуры в бинарные данные и обратно. Однако, полагаю, немногие задумывались, как этот привычный механизм работает под капотом. Сегодня я постараюсь рассказать об этом.

Читать далее

Построение KMP SDK: инсайты и подводные камни из нашего опыта

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

Вот и время для заключительной статьи этого цикла. В предыдущих статьях мы рассмотрели нашу мотивацию, всю техническую информацию и поделились инсайтами при создании масштабируемого бизнес-решения в виде кроссплатформенного SDK. В этой небольшой статье хотелось уделить внимание иным аспектам, таким как адаптация процессов команды KMP и смежных команд, которые являются заказчиками, немного поговорить про подходы к тестированию и контролю качества, CI/CD и т.д.

Кратко напомним про контекст и продукт: Instories — мобильный видеоредактор для маркетологов, SMM-специалистов и блогеров. Контекст проекта: желание получить ряд SDK (мы называем их Kit-ами, по сути это разные сборки SDK для разных продуктов, со своими ресурсами, фичами и дизайн системой) для наших уже существующих приложений, которые содержали бы в себе коробочные фичи (и бизнес-логику, и UI), готовые к подключению, а также были бы легко расширяемыми и переиспользуемыми для разных приложений компании.

Читать далее

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

Построение KMP SDK: единая дизайн-система и управление ресурсами

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

В предыдущих статьях мы рассматривали технические и архитектурные аспекты при создании Kotlin Multiplatform SDK, но немаловажной частью остается работа с UI и ресурсами в таком SDK, особенно если он поставляется сразу в несколько продуктов.

Да, в Compose Multiplatform есть базовая работа с ресурсами: можно работать со строками, картинками и файлами по аналогии с Android проектами, однако что делать, когда для каждого продукта под одним и тем же ключом локализации должна срываться своя строка? В этой статье мы поделимся своим подходом и инсайтами.

Кратко напомним про контекст и продукт: Instories — мобильный видеоредактор для маркетологов, SMM-специалистов и блогеров. Контекст проекта: желание получить ряд SDK (мы называем их Kit-ами, по сути это разные сборки SDK для разных продуктов, со своими ресурсами, фичами и дизайн системой) для наших уже существующих приложений, которые содержали бы в себе коробочные фичи (и бизнес-логику, и UI), готовые к подключению, а также были бы легко расширяемыми и переиспользуемыми для разных приложений компании.

Читать далее

Построение KMP SDK: проектирование архитектуры для feature-модулей

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

В предыдущих статьях (раз и два) мы рассмотрели, почему выбрали Kotlin Multiplatform для нашего SDK, а также подробно разобрали базовую архитектуру проекта, включая core-модули и организацию Kit-ов. Теперь настало время погрузиться в самое интересное — архитектуру отдельной фичи и то, как мы организовали взаимодействие между модулями.

Эта статья будет особенно полезна тем, кто хочет понять, как на практике реализовать feature-first подход в KMP проекте, как правильно организовать DI, навигацию и работу с ресурсами в многомодульной архитектуре.

Кратко напомним контекст и продукты: Instories — мобильный видеоредактор для маркетологов, SMM-специалистов и блогеров. Контектс проекта: желание получить ряд SDK (мы называем их Kit-ами, по сути это разные сборки SDK для разных продуктов, со своими ресурсами, фичами и дизайн системой) для наших уже существующих приложений, которые содержали бы в себе коробочные фичи (и бизнес-логику, и UI), готовые к подключению, а также были бы легко расширяемыми и переиспользуемыми для разных приложений компании.

Читать далее

Построение KMP SDK: базовая архитектура для общей библиотеки

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

В прошлой статье было много текста о том, почему мы стали смотреть в сторону кроссплатформенной разработки и почему мы в Instories выбрали именно Kotlin Multiplatform (далее — KMP) для своего решения.

Кратко напомним контекст и продукты: Instories — мобильный видеоредактор для маркетологов, SMM‑специалистов и блогеров. Контектс проекта: желание получить ряд SDK (мы называем их Kit‑ами, по сути это разные сборки SDK для разных продуктов, со своими ресурсами, фичами и дизайн системой) для наших уже существующих приложений, которые содержали бы в себе коробочные фичи (и бизнес‑логику, и UI), готовые к подключению, а также были бы легко расширяемыми и переиспользуемыми для разных приложений компании.

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

Читать далее

Построение KMP SDK: наш опыт, плюсы и минусы, и как это изменило разработку

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

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

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

Именно с такими вызовами столкнулась наша команда, когда мы начали искать способы оптимизации процесса разработки для iOS и Android платформ.

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

Читать далее

Компьютерное зрение + ARKit = AR-навигация внутри зданий

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

Навигация внутри зданий — задача куда более сложная, чем на улице. GPS либо полностью не работает, либо даёт большую погрешность. Карта и инфостойки помогают, но не решают проблему полностью — они статичны, поэтому не всегда понятно, где посетитель находится прямо сейчас (вплоть до этажа) и в какую сторону он смотрит.

Мы решили сделать навигацию нагляднее — с помощью AR прямо через камеру смартфона. Сейчас технология доступна в столичных торговых центрах «Авиапарк», «Афимолл», «Европейский» и в «Галерее» в Петербурге.

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

Следовать за синей стрелкой...

Книга: «Kotlin Multiplatform на практике»

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

Привет, Хаброжители! Хотите писать код один раз и запускать его на Android и iOS, сохранив нативное качество и производительность?

В этой книге вы освоите все шаги разработки полнофункциональных кросс-платформенных приложений с помощью Kotlin Multiplatform SDK — от создания проекта с нуля до миграции существующих нативных решений. Подробные инструкции, архитектурные подходы и реальные примеры помогут уверенно работать с общими модулями, многопоточностью, сетевым слоем, хранением данных и Compose Multiplatform для iOS.

Особое внимание уделено использованию нативного и общего кода в кросс-платформенном приложении, применению expect/actual, тестированию с Kotest, оптимизации разработки с помощью KSP, плагинов компилятора и ИИ-ассистентов. Вы узнаете, как создавать и публиковать собственные KMP-библиотеки, а также получите краткий справочник по Kotlin и Swift, чтобы уверенно ориентироваться в обеих экосистемах.

Читать далее

Массивы в Swift

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

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

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