Обновить
48.43

iOS *

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

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

Знакомство со Stencil или уроки шаблонного общения

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

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

Читать далее

Новости

Секреты на клиенте: как снизить вероятность утечки с нуля до почти нуля

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

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

Привет, Хабр. Меня зовут Кирилл Смирнов. Я руководитель разработки в iOS команде СберЗдоровьяMedTech компании №1 в России. В этой статье я расскажу, где в iOS-приложениях хранятся секреты и как их находят, почему важно скрывать секреты, и как выстроить надежную защиту с учетом потенциальных угроз. 

Материал подготовлен по мотивам моего доклада на Podlodka iOS Crew. Вы можете посмотреть его здесь.

Читать далее

Кейс «Учёт надоя»: креативное обновление мобильного приложения РСХБ «Свои финансы»

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

Привет, Хабр! Я Кирилл Адещенко, исполнительный директор департамента цифрового бизнеса РСХБ. В этой статье я делюсь наблюдениями и выводами о том, как команды банков работают с публикацией мобильных приложений в условиях ужесточения правил магазинов приложений и санкционных ограничений.

Читать далее

Навигация на SwiftUI: чего не хватает и как исправить

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

В статье iOS-разработчик студии комплексной разработки цифровых продуктов и мобильных приложений CleverPumpkin разбирает ограничения SwiftUI при построении сложной навигации, с которыми команда столкнулась на одном из своих проектов. Он рассказывает, в каких сценариях приходилось подключать UIKit, чтобы сохранять стабильность, показывает варианты подходов и делится выводами, какие инструменты выбирать для контролируемой навигации.

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

Читать далее

Camera Control в iOS 18: полный разбор архитектуры и интеграции

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

Привет, Хабр! Меня зовут Илья, и последние несколько недель я провёл в дебрях документации Apple, исходников AVFoundation и видео с WWDC, разбираясь с новой фичей iPhone 16 — Camera Control. В этой статье расскажу, как устроена архитектура этой системы, почему интеграция сложнее, чем кажется, и дам рабочий код для интеграции в ваше приложение.

Читать далее

Apple Developer бесплатные курсы для обучения в iOS

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

Евгений предоставляет открытый доступ к фундаментальным материалам по Swift:

от установки и настройки Xcode до базовых конструкций языка, работы с циклами, классами, замыканиями, дженериками и многим другим.

Курс разбит на 66 небольших глав, которые проходят комфортно и последовательно.

Подходит: начинающим с нуля

Язык: RU

🔗 https://lazyload.academy/articles/list/ios/prepare-to-course

Также на сайте доступен платный модуль по SwiftUI (76 глав) и модуль по многопоточности.

Доступ открывается через Boosty — 1250 ₽/мес (стоимость полностью оправдана объёмом материала).

Подробнее

Работа с RTSP-плеером во Flutter: выбор библиотеки и снижение задержки

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

Работа с RTSP-потоками во Flutter остаётся задачей, которую нельзя решить штатными средствами фреймворка. Базовый плагин video_player не поддерживает RTSP, из-за чего прямое воспроизведение видео с IP-камер и систем наблюдения недоступно без сторонних решений. Для корректной работы в таких сценариях требуется специализированный плеер, обеспечивающий стабильное отображение потока и минимально возможную задержку.

В данной статье мы рассмотрим основные библиотеки для работы с RTSP во Flutter — flutter_vlc_player, fijkplayer и media_kit, сравним их особенности, достоинства и влияние на задержку воспроизведения. Отдельное внимание уделим настройкам, которые позволяют минимизировать latency, прежде всего в решениях на базе FFmpeg. Также разберём доступные параметры оптимизации в flutter_vlc_player. 

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

Читать далее

Proxyman + HAR = mock-данные для iOS-тестов

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

Привет! Меня зовут Ринат, я iOS-разработчик в Naumen. В компании я занимаюсь разработкой нескольких iOS-продуктов: клиента для SMP-сервера (Service Management Platform) и SDK чата.

В этой статье расскажу, как мы используем связку Proxyman + HAR, чтобы готовить mock-данные сетевых запросов для интеграционных UI-тестов одного из iOS-приложений. Такой подход выручает, когда для тестов нет возможности поднять сервер с нужным наполнением или сервер не предоставляет дополнительных методов API для имитации определенного сценария — например, переписка в чате с собеседником, обновление статуса заказа.

Читать далее

Почему ваш сайт ломается, когда его трогают пальцем

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

В жизни каждого фронтендера наступает момент, когда приходится перейти от родного привычного десктопа на разработку мобильной версии веб-приложения или даже начать работать над mobile-first решением, или еще страшнее — PWA-приложением.

И вот вы, фронтенд-разработчик, сидите с открытыми DevTools десктопного браузера, используете симуляцию мобильного устройства, и локально все идеально. А тестировщики все несут и несут баги. Верстка убегает, само веб-приложение тормозит, часть UI просто не достать пальцем, да и в целом жесты работают так, как им захочется.

Привет! На связи Полина, фронтенд-разработчик в Selectel. Раньше я тоже думала, что адаптив в десктопном браузере абсолютно такой же, как на телефонах. Да и вообще мобильный браузер — это просто браузер поменьше (спойлер — нет). В этой статье я расскажу об их различиях, что с этим делать, как прокинуть localhost на реальный телефон и получить DevTools от браузера в смартфоне, чтобы ловить поменьше багов на проде.

Читать далее

К какому компоненту отнести тот или иной класс? Мой опыт разделения функциональности между компонентами

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

Привет, меня зовут Антон Огнев, я iOS-разработчик в ПСБ, и в этой статье расскажу о классах, компонентах и зависимостях между ними. Конкретно речь пойдет о том, какие принципы стоит всегда соблюдать при создании и поддержке компонентов, как определить, не рушит ли одна новая зависимость весь проект, как меняются приоритеты по компонентам между стартом новой разработки и зрелым продуктом. 

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

Заглянули к себе в компоненты и обнаружили, что там бардак и обобщенные имена типа Cоmmon, Shared, Core, Base, Utils? Это текст для вас: сам был на вашем месте, помогу навести порядок. 

Читать далее

Xcode — худшее профессиональное ПО, с которым я когда-либо работал

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

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

В этой статье автор делится ошибками и «особенностями» Xcode, которые больше всего его раздражают. Главный совет: держитесь подальше от этой IDE и всегда ищите альтернативы.

Читать далее

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

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

В новом дайджесте вопрос с собеседования, на котором сыпятся даже Senior-ы, стабильный Navigation 3 и нестабильная ViewModel, кросс-компиляция, 100 уроков развития проекта, открывашка из трубки домофона и многое другое. Заходите!

Читать далее

Vibe coding на SwiftUI + Qwen. Как c помощью ИИ сделать простое TODO-приложение на SwiftUI

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

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

Читать далее

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

Меня снова спросили за Optional

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

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

Читать далее

Мобильный Vivaldi 7.7 — Найти и сохранить

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

Пользователи всегда хотят большего, и количество самых разных запросов постоянно растёт. Но есть некоторые функции, которые пользуются особой популярностью. Вот такие запросы мы и реализовали в новой версии браузера Vivaldi 7.7 для Android.

Читать далее

Выживание в ASO: зачем нужен якорь, семантическое ядро и ASA

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

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

В качестве примера мобильного приложения для предметного рассмотрения темы, предлагаю представить, что мы делаем простенькое приложение для трекинга собственного веса - минималистичное, с графиками, возможностью записывать цифры веса и, возможно, уведомлениями. В общем, такое, чтобы была мотивация делать, можно было бы "завайбкодить", но без претензий на миллиардерство. Идея привычная, но как её оценить с точки зрения потенциала в App Store? Будут ли его скачивать и сможем ли мы заработать? Давайте посмотрим.

Читать далее

Мобильная разработка за неделю #610 (10 — 16 ноября)

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

В этом выпуске Optional в Swift, которые всех сбивают с толку, актуальные практики работы в фоне и стартапы в Дубае, ИИ простыми словами, партнерская программа для мини-приложений в App Store, смягчение ограничений на загрузку сторонних приложений в Android и многое другое. Заходите!

Читать далее

SwiftUI-Adapter: поддерживаем новые модификаторы SwiftUI на старых версиях iOS

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

Друзья, привет! Сегодня хочу представить вам свою библиотеку - SwiftUI-Adapter, которая избавит вас от головной боли при работе с новыми модификаторами SwiftUI.


Недавно я наткнулся на удобную Android-библиотеку, которая упрощает работу с разными версиями API и подумал: «Почему бы не сделать что-то подобное для SwiftUI?». После этого родилась идея разработать инструмент, который избавит вас от бесконечных проверок available и сделает код чище.

Ссылка на библиотеку в GitHub

Установка библиотеки выполняется через Swift Package Manager.

Читать далее

Куда подевалось легендарное внимание Apple к деталям?

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

Для меня бренд Apple всегда был синонимом внимания к деталям, но, к сожалению, в последние 8-10 лет решения компании на них совершенно не ориентированы.

В этом году всё настолько усугубилось, что она, похоже, совершенно перестала заботиться об UX, accessibility и подробным тестам QA. 

Лучше один раз увидеть, чем сто раз услышать, поэтому я покажу вам несколько примеров, разочаровавших меня и в конечном итоге заставивших отказаться от некоторых продуктов Apple.

Читать далее

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

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

В новом дайджесте самый задаваемый вопрос с собеседования и приватный Android без слежки, новые инструменты в Google Play и App Store, своя мобильная ОС с нуля на Rust, магия ИИ-музыки, концентрированный маркетинг и многое другое. Подключайтесь!

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