Обновить
46.59

iOS *

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

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

Почему в споре iOS vs Android никто не говорит о главном

Время на прочтение5 мин
Охват и читатели0

Один из самых ярких споров нашего времени — что лучше: iOS или Android? И с той, и с другой стороны есть представители, готовые с пеной у рта доказывать, что их выбор лучше. Одни обвиняют других в том, что у них нет денег, другие доказывают, что их выбор лучше технически.

Пользователи Android в этом споре чаще всего начинают оперировать фактами, характеристиками, доказывать, что их POCO X6 Ultra (я только что выдумал этот телефон) лучше последнего iPhone 17 Pro Max, а стоит в два раза дешевле. Но для типичного фаната яблочной продукции это вообще не аргумент, он мыслит другими категориями.

Читать далее

Новости

Питер Штайнбергер. Как работает автор OpenClaw [Clawdbot/Moltbot]

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

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

В реальности все по-своему заблуждаются. Питер Штайнбергер, программист-ветеран с большим стажем, действительно не читает, что улетает в проект, а OpenClaw — не третье, а пятое название ИИ-агента.

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

Читать далее

Coordinator в iOS: как я перестал бояться кнопки «Назад» и полюбил навигацию

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

Эта статья - логическое продолжение нашего погружения в архитектуру. Если в первой части мы навели порядок внутри «черного ящика» под названием ViewModel, то здесь мы выйдем за его пределы. Вы узнаете, как выпилить логику переходов из ViewControllers и ViewModels, почему вызов navigationController?.pushViewController() прямо в экшене кнопки - это архитектурный тупик, и как построить систему навигации, которая не превратит ваш проект в спагетти при добавлении десятого экрана. Мы разберем концепцию Child Coordinators, решим проблему утечек памяти (спойлер: системная кнопка "Назад" - ваш враг) и обсудим, выжил ли этот паттерн в эпоху SwiftUI.

Продолжим

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

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

В новом дайджесте простые синтаксические приёмы и Android Developing через вайбкодинг, холодный старт Android-приложения и MVVM-курильщика, разработка браузера для iPad, тренды UX/UI-дизайна 2026, железо для ИИ и многое другое. Подключайтесь!

Читать далее

MVVM-курильщика: почему ваша ViewModel — это помойка на 2000 строк, и как это исправить

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

Если вы когда-нибудь открывали проект, где ViewModel превратилась в свалку логики, навигации и форматирования дат - поздравляю, вы видели MVVM-курильщика. Рассказываю, почему «чистый» MVVM из учебников рассыпается в бою, как превратить ViewModel в машину состояний вместо мусорного ведра, и почему import UIKit в вашей VM - это диагноз. Без воды, с примерами кода и болью. Эта статья - не очередной пересказ документации. Вы научитесь разделять данные и их представление так, чтобы тесты писались сами собой, а ваши коллеги не проклинали вас на код-ревью.

Продолжим

Сохранение позиции прокрутки и состояния курсора при переходах по навигации в iOS

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

Вы когда-нибудь замечали разницу между просто хорошим приложением и тем, которое ощущается «родным», надежным и дорогим? Часто дело не в дизайне или анимациях, а в мелочах, которые мы воспринимаем как должное, пока они не ломаются. Одна из таких критических мелочей - способность приложения помнить, где вы остановились. Вы читаете длинную статью, сворачиваете приложение, чтобы ответить на сообщение, возвращаетесь через минуту, а вас выбрасывает в самое начало текста. Раздражает, правда? Или пишете заметку, переключаетесь на браузер, возвращаетесь, а клавиатура скрыта и курсор потерян. В этой статье мы разберем, как технически грамотно реализовать сохранение позиции скролла и состояния курсора в iOS-приложениях. Мы уйдем дальше банальных советов и рассмотрим реальные сценарии с навигацией, табами и асинхронной загрузкой данных, чтобы ваши пользователи никогда не чувствовали себя потерянными.

Продолжим

Старые и новые проблемы Safari на iOS

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

Safari — новый Internet Explorer для фронтенд-разработчиков! Поведение вёрстки в нём отличается от спецификаций, а иногда бывает и непредсказуемым.

Но если Microsoft свой браузер похоронила, то Apple регулярно обновляет Safari, создавая новые проблемы для фронтендеров. Релиз Safari 26.0 не стал исключением, а усложнил ситуацию новый дизайн Liquid Glass, изменивший интерфейс браузера.

Я — Дима Фукс, Head of Frontend в Додо. Сегодня расскажу о старых и новых проблемах Safari на iOS на примере простой задачки: реализации фуллскрин-модалки с текстовым полем — то есть чата поддержки или окна комментария, встроенного в сайт.

Читать далее

FlutterPulse: Январский дайджест 2026 — новости, переводы и обновления месяца

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

Привет, Flutter-разработчики! 👋
Январь выдался по-настоящему снежным и спокойным - идеальное время, чтобы подтянуть знания, разобрать отложенные статьи и обновить стек перед новым рабочим сезоном.

И этот месяц для нас особенный!

Читать далее

Что нам стоит на КМП построить?

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

Рассказываю с цифрами в руках о сокращении трудозатрат разработки под несколько платформ при использовании Kotlin Multiplatform

Читать далее

Почему PWA на iOS всё ещё не торт — и что на самом деле разрешает Apple

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

Если вы открыли эту статью, значит, ваш менеджер или заказчик снова пришли с «гениальной» идеей: «А давайте не будем тратить бюджет на нативную iOS-разработку, а сделаем PWA? Это же кроссплатформенно, модно и дешево!». И теперь вам нужно аргументированно объяснить (или понять самому), почему в 2026 году, несмотря на все обещания открытого веба и давление регуляторов, PWA на iPhone всё ещё ощущается как гражданин второго сорта.

В этом тексте не будет маркетинговой шелухи про «единый код для всех». Мы разберем суровую техническую реальность Safari 19, ограничения WebKit, о которых Apple предпочитает молчать, и те немногие лазейки, которые позволяют сделать опыт использования веб-приложений хотя бы терпимым. Вы узнаете, почему localStorage умирает при установке, как заставить работать Deep Links (и почему они все равно ломаются), и в каких редких случаях PWA действительно может заменить App Store. Это гайд по выживанию в экосистеме, которая активно сопротивляется вашему присутствию.

Продолжим

Capacitor: от веба к мобильным приложениям. Часть 1. Миграция проекта на Capacitor

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

В первой части цикла мы разобрались, зачем вообще нужен Capacitor и почему он стал адекватным выбором для кроссплатформенной разработки.

Теперь переходим к самому болезненному и интересному этапу: миграции уже существующего веб-приложения.

Читать далее

Когда данных от Apple недостаточно: собираем метрики производительности UI

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

Привет, Хабр! Меня зовут Виталий Барабанов, я iOS-разработчик в hh.ru. Недавно мы столкнулись с проблемой: пришёл фидбэк от пользователей о тормозах и фризах в мобильном приложении. Но чтобы установить их причину, нам не хватило данных, которые по дефолту собирает Apple.

Что делать в такой ситуации? А запилить собственный сбор метрик: с какой угодно фильтрацией, сбором любой информации, интеграцией со своей аналитикой и наблюдением в дебаг-панели! В статье я хочу поделиться с Хабром, как мы это сделали, сколько времени потратили и как интерпретировали результаты.

Читать далее

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

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

В этом выпуске разработка приложений с помощью ИИ и состояние мобильного рынка, MVVM и плагины для Android Studio, миграция на Android Gradle Plugin 9.0, сокращение потребления памяти, бесплатный Skip, FunctionGemma от Google и многое другое. Заходите!

Читать далее

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

Умный дом, у каждого он свой

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

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

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

Дисклеймер: я просто описываю личный опыт, все совпадения случайны!

Читать далее

Чтение книг на других языках при помощи ИИ

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

Я уже не первый год в свое свободное время разрабатываю приложение, которое помогает читать книги на иностранных языках. Если вкратце — вы загружаете любую книгу на любом языке в epub, fb2 или просто txt формате, после этого вы можете нажать на любое слово и увидеть его перевод с учетом контекста.

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

Читать далее

Почему «заканчивается» время в iOS-будильнике и как мы искали предел в часах Samsung

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

Работает ли это? А что, если… ? Как настоящие QA, мы всегда задаемся этими вопросами. Неудивительно, что вся наша команда взбудоражилась, увидев рилс про «фейковую бесконечность» прокрутки в будильнике на iPhone. Неужели правда? Конечно, тут же проверили на тестовых айфонах. Оказалось, часы и минуты в iOS-будильнике действительно не цикличны. Это список, который можно быстро долистать до конца.

Нам стало интересно, баг ли это, откуда он в iOS и есть ли такое в Android. Чтобы разобраться и найти ответы, нам даже пришлось «на коленке» написать автотест на C#. Но обо всем по порядку.

Читать далее

Релиз Capacitor 8

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

8 декабря 2025 года вышел релиз Capacitor 8. О нововведениях и миграции со старых версий читайте в статье

Читать далее

Локальный плеер для IOS: Music is Player

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

Привет! Я разработчик iOS‑приложения Music Player в компании MediaRise. Хотел поделиться инженерной частью: как мы организовали импорт музыки из Files, автосканирование, защиту от дубликатов и стабильное воспроизведение.

Читать далее

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

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

Возвращаюсь с первым дайджесте в этом году. В нем про SwiftLint в масштабах компании, Android и ICMP, стабильный Compose Hot Reload и следующие два года в области разработки программного обеспечения, японская игра о скачках, электроналиватор и многое другое. Заходите!

Читать далее

Создаём iOS-style Wheel Picker в Jetpack Compose. Часть 1

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

Представьте классический сценарий в мобильном приложении: пользователю нужно выбрать год рождения, час будильника или количество товаров в корзине. На iOS для таких случаев давно существует элегантное и интуитивное решение - Wheel Picker (или UIPickerView). Этот компонент стал неотъемлемой частью языка дизайна Apple. В этой статье я расскажу вам, как реализовать такой же компонент в Android.

Приготовьтесь, будет много математики!

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