Как стать автором
Поиск
Написать публикацию
Обновить
43.86

iOS *

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

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

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

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

В новом дайджесте рассказ последнего UIKit-разработчика и погружение в разработку плагинов для Android Studio, дизайн киты iOS и iPadOS 26 и зачем нужен Navigation 3, автоматизация тестирования, TikTok для роста, ИИ, который удалил производственную базу данных пользователя, и многое другое. Заходите!

Читать далее

Новости

PWA и WebView — как сделать ваше веб-приложение доступным в офлайн-режиме

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

Привет! Меня зовут Алексей Егоров. Сегодня поговорим про офлайн-режим в PWA и WebView, без лишней теории и с прицелом на мобильные приложения. В разработке я уже больше трёх лет, большую часть этого времени посвятил WebView и мобильным решениям. В этом материале мы разберём, как работают PWA и WebView в офлайн-режиме, посмотрим на инструменты, которые помогают реализовать такую функциональность, и в завершении я поделюсь примером: какую технологию мы выбрали для календаря и как внедрили офлайн-режим на практике.

Читать далее

Mobile System Design. Проектируем новостную ленту

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

Элементы System Design уже прочно вошли в процесс собеседований. Однако в мобильной разработке довольно часто возникает недопонимание что же все-таки необходимо продемонстрировать чтобы получить заветный офер. В этой статье я разберу один из кейсов, который может встретиться на реальном собеседовании и кроме этого покажу примерный сценарий такого интервью. Данная статья будет интересна мобильным разработчикам, как Android, так и iOS. Сам формат System Design Interview я разбирал в предыдущей статье. Здесь же мы сконцентрируемся на практике.

Итак, задача: спроектировать новостную ленту. 

Читать далее

Что общего у Silent Hill и сервиса доставки?

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

Когда‑то давным‑давно, аж в далёком 2002 году, мы с другом проходили первую часть Silent Hill на первой PlayStation. В этом месте могли бы быть слова восторга и трепета от атмосферы, саспиенса, сюжета и музыки моего любимого Акиры Ямаоки, но сегодня мой пост не про это.

Полностью игру нам тогда пройти не удалось... И не потому что она была сложная или страшная. Нет‑нет. Потому что там была корявая локализация. Те, кто играл в видео‑игры в конце 90-х и начале 00-х должны помнить «замечательные» переводы от Фаргус с их слоганом‑издевательством «только качественные переводы». И если по сюжету всё было более‑менее понятно, то с головоломками, где важны нюансы, была полная беда. И если на экране был виден текст оригинального письма, записки, таблички, то знание английского спасало (хотя тогда он был у меня так себе). А поменять язык полностью нельзя было. В итоге мы упёрлись в ряд квестов, которые решить было нереально, так как текст перевода был и кривой, и битый. Walkthrough тогда не было, поэтому игра так и осталась незавершённой где‑то на 95%.

К чему эти мемуары? Прошло больше 20 лет, но что‑то я сталкиваюсь с похожими парадоксами и по сей день. И это не игры, а мобильные приложения крупных международных компаний. Дабы быть local‑friendly, разработчики делают автоматическую локализацию приложений в соответствии с регионом или системными настройками смартфона. В итоге это выглядит иногда кринжово, иногда смешно, но чаще очень раздражающе, когда надо воспользоваться сервисом, а там «утюг для корочек парашюта». И речь идёт не про автоматическую локализацию каталогов, как у «алика» например, а даже про какие‑то базовые фичи. И вишенка на торте — язык вручную поменять нельзя.

Читать далее

Решение ошибки unsupported option '-G' for target 'arm64-apple-ios' при сборке проекта с Firebase и BoringSSL-GRPC

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

После добавления зависимостей Firebase через CocoaPods в iOS-проект, при сборке я столкнуться с не приятной ошибкой:

Читать далее

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

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

В новом выпуске понимаем и улучшаем производительность SwiftUI, решаем проблему «деградации» YouTube на Android, определяем потолок в разработке, разбираем большую ложь чистой архитектуры, смотрим на рост цифровой веры и многое другое. Заходите!

Читать далее

Как мы переписали мобильное приложение с React Native на Flutter

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

React Native не справился. Flutter — как глоток свежего воздуха.

Рассказываем, как наша команда переписала большое приложение (60+ экранов, оффлайн режим, карта, камера) на Flutter, с чем пришлось повозиться и почему теперь не жалеем.

Читать далее

async let vs Task group

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

В Swift для структурированной конкуренции используются async let и группы задач (task group). Хотя обе конструкции позволяют запускать параллельные операции, они по-разному управляют жизненным циклом задач. Сегодня мы разберём эти различия на примерах.

Читать далее

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

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

В этом дайджесте снова про фоновую работу в Android и обрезку Text в SwiftUI, про опыт внедрения Kotlin Multiplatform и как сделать любую задачу интересной, про акторы, структуры, программы раннего доступа, роботов Hugging Face и многое другое. Заходите!

Читать далее

Практическое руководство по настройке автотестов на реальном устройстве iOS с использованием Appium

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

Привет, Хабр! Мы сотрудники Управления контроля качества компании Capital Group. Непосредственно участвуем в процессах тестирования программных продуктов, которые используются нашими менеджерами, работниками управляющих компаний, гостями и жителями ЖК CG.

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

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

Читать далее

Swift concurrency. Executors, Actors и их связь с потоками

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

В данной части из серии статей мы погрузимся чуть глубже в недра Swift Concurrency. Как определяется поток, на котором будет выполняться Task? Почему в рамках одной Task поток может меняться? Что такое Executor и на какие типы он делится? За что отвечает TaskExecutor, а за что SerialExecutor? Как определить текущий Executor по коду? Как использовать свой самописный Executor? В этой статье ответим на эти (и многие другие) вопросы.

Читать далее

Как Android-разработчик в iOS погружался: мой опыт внедрения Kotlin Multiplatform

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

Привет, Хабр! Меня зовут Артем Клименко, я Lead Android-разработчик в МТС Web Services, занимаюсь продуктом Membrana Kids.

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.3K
В новом выпуске понимаем и улучшаем производительность SwiftUI, решаем проблему «деградации» YouTube на Android, определяем потолок в разработке, разбираем большую ложь чистой архитектуры, смотрим на рост цифровой веры и многое другое. Заходите!

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

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

Магия чисел в System Design: эти формулы спасут вас от банкротства и помогут оптимизировать вашу систему

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

При проектировании систем, обязательным этапом является расчет нагрузки и стоимости на вашу IT-Систему. Давайте разберемся что это за этап и почему он так важен. А также вместе посчитаем основные показатели нагрузки и договоримся о стоимости решения.

Читать далее

BDUI: эволюция динамических интерфейсов

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

Привет, Хабр! В России набирает популярность новый подход к созданию пользовательских интерфейсов — Backend Driven UI (BDUI). В нём сервер задаёт структуру и поведение интерфейса, а приложение просто отображает его на экране.

BDUI уже используют в своих приложениях многие коллеги из индустрии. Меня зовут Елена Зеликсон, я старший инженер по тестированию в VK. О том, какие преимущества у этого решения и как его применять, подробнее расскажу в этой статье.

Читать далее

Статья 3: Из чего готовят MVI

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

Серия статей с очередным разбором MV* шаблонов, но с интересными деталями
Даже опытные разработчики смогут найти что-то новое для себя

Это третья статья из серии,
в которой подробно разбираем из чего состоит MVI

Статья 3: Из чего готовят MVI
- ⚓️ Парадигма Реактивное программирование (Reactive programming)
- 🌯 Как завернуть все в шаурму Intent?
- 🌽 Как собрать урожай состояние?
- 🚜 Зачем трактору нужен редуктор?
- 🏪 Как открыть магазин с перехватчиками?
- 👷🏼‍♀️ 5 менеджеров и 1 работник

Нарезать сущности в салат

Статья 2: Подробнее про MVVM

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

Серия статей с очередным разбором MV* шаблонов, но с интересными деталями
Даже опытные разработчики смогут найти что-то новое для себя

Это вторая статья из серии,
в которой подробно разбираем MVVM
и является ли класс ViewModel от Google, сущностью ViewModel из шаблона

Статья 2: Подробнее про MVVM
- 🔨 Функции обратного вызова (Callback)
- 🛠 Паттерн Наблюдатель (Observer)
- 📜 MVVM (ViewModel)
- 🔨 Привязка данных (Data Binding)

Найти новое

Статья 1: Введение в MV шаблоны

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

Серия статей с очередным разбором MV* шаблонов, но с интересными деталями
Даже опытные разработчики смогут найти что-то новое для себя

Это первая статья из серии, которая является подводкой к самому интересному
Вспоминаем что такое MVC и MVP

Статья 1: Введение в MV шаблоны
- 📜 M‑V-подставь_свое
- 📜 MVC (Controller)
- 📜 MVP (Presenter)
- 🛠 Паттерн Команда (Command)
- 📜 MVP (Moxy)

Вспомнить былое

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

Время на прочтение4 мин
Количество просмотров1.7K
В этом дайджесте эксплоиты ядра iOS и палочки на Android, рабочая группа Swift для Android и незаметные ограничения, смерть резюме, ТВ-пульты как многомиллионный бизнес в магазинах приложений, Gemini для роботов и многое другое. Заходите!

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

Apple Foundation Models Framework: обзор и первые шаги

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

На конференции разработчиков WWDC 2025 Apple представили Foundation Models framework — встроенную в устройства LLM, работающую локально и без доступа к интернету. Модель не увеличивает размер приложения, имеет три миллиона параметров и, по словам Apple, оптимизирована для выполнения специфических задач, таких как обобщение, информирование и классификация, однако не подходит для продвинутых рассуждений. У модели также есть ограничения на контент, описанные на сайте Apple.

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