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

Разработка под iOS *

Популярная мобильная ОС

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

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.6K
В новом дайджесте уменьшение размера банковского приложения и транзишинометр для Android, вопперы и табы, сертификаты и профили, сколько приложений, из выпущенных в 2024 году, стали успешными, вранье LLM и многое другое. Подключайтесь!

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

Умная система обучения для детей до 3 лет. Animal Island Aila

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

В современном мире технологии играют всё более важную роль в обучении и развитии детей. Проект "Animal Island Aila" — это инновационная умная система, созданная специально для малышей от 12 до 36 месяцев. Она помогает детям познакомиться с основами английского языка (цвета, формы, буквы), расширяет словарный запас и делает процесс обучения увлекательным. 

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

Суть проекта 

Проект "Animal Island Aila" реализован на основе клиент-серверной архитектуры и включает два отдельных приложения: одно для детей, а другое для родителей. В качестве сервера используется облачная платформа Amazon Web Services. 

Приложение для детей, разработанное на Kotlin, работает на специальном Android-планшете Aila Sit & Play™. Оно демонстрирует различные обучающие видео, рассказы и колыбельные для детей. 

Приложение для родителей, разработанное на Flutter и Dart, доступно для платформ Android и iOS. Оно позволяет родителям управлять детским устройством и наблюдать за детьми в реальном времени. 

Архитектура серверной части 

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

Читать далее

Особенности использования сторонних сервисов в мобильных приложениях на примере Firebase

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

Всем привет!

На связи Веселина Зацепина и Юрий Шабалин, эксперты по безопасности мобильных приложений из компании Стингрей. Сегодня мы затронем очень интересную тему — сервисы Firebase. Поговорим об их применении в мобильных приложениях и о том, как обеспечить их безопасность. Эта статья призвана обратить внимание разработчиков и ИБ-специалистов на внешние сервисы, которые используют приложения, поскольку они часто остаются без должного внимания и аудита. Очень надеемся, что после прочтения вы начнёте по-другому смотреть на безопасность мобильных продуктов, ведь они обмениваются данными не только с собственными серверами, но и с многими другими.

И, конечно, мы попробуем ответить на вопрос: что же может быть страшного в, казалось бы, стандартных и привычных сервисах? Интересно? Тогда начнём!

Читать далее

Cursor AI в iOS-разработке. Приложение «Фото с Flickr.com»

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

Мне хотелось посмотреть, как работает ИИ Редактор кода Cursor AI на примере создания iOS приложения с выборкой данных с ресурса, который не требует API key и платной подписки. И этим ресурсом оказались публичные фотографии с Flickr.com.

Необходимо создать UI iOS приложения со строкой поиска вверху и сеткой Grid под ней для отображения миниатюр фотографий.

Пользователь должен иметь возможность вводить текст в строку поиска и видеть набор фотографий, теги которых tags соответствуют строке поиска. Строка поиска может содержать одно слово (например, «rose») или разделенные пробелами слова(например, «forest bird» (лес птица)).

Читать далее

Истории

Гайд по кроссплатформенной разработке с использованием React Native

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

Начнем, пожалуй, с азов. Что есть кроссплатформенная разработка? Такая, которая не требует от вас знаний нативного кода и позволяет одному разработчику делать сразу два приложения. «Вау! Круто!» — скажет любой предприниматель, смекнув, что может нехило сэкономить. Но так ли это на самом деле? Давайте разберемся.

Лет 7 назад наш техлид разглядел в только что появившемся React Native (RN) огромный потенциал. Поэтому с его легкой руки мы начали делать кроссплатформенные приложения на нем, когда это еще не было мейнстримом.

С тех пор фреймворк зарекомендовал себя как один из наиболее перспективных инструментов для разработки. Он был создан Facebook (Meta), чтобы писать нативные мобильные приложения для iOS и Android при помощи JavaScript.

Чтобы не быть голословными о его популярности, покозыряем именами: Facebook, Instagram, Bloomberg, Airbnb, Tesla, SoundCloud Pulse, UberEATS и Shopify написаны на React Native. Какие же у него сильные стороны?

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.4K
В новой подборке поисковые подсказки на SwiftUI и сравнение Koin и Dagger, асинхронность в iOS и переживания Jetpack ViewModel, Tracer спустя год, пасьянс для забытой периферии, доходы и установки в России в 3 квартале и многое другое. Подключайтесь!

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

BDUI — это спасение от релизов: «Какие ваши доказательства?»

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

Если вы видели no-code-проекты, где можно просто блоками перетаскивать интерфейс, то отчасти вы уже знакомы с BDUI-подходом, ведь они по сути и построены на BDUI. Суть в том, что мы делегируем наполнение интерфейса серверу. Фронтенд не отвечает за то, что будет нарисовано, а только определяет список допустимых компонент, которые сервер может показать пользователю. Но в вебе BDUI не очень популярен.

А зря. Ведь в первую очередь он нужен как спасение от релизов. 

Но, если быть точнее, он нужен как средство для снижения количества релизов, затрат на разработку и выкатку фичей. Давайте это и обсудим, а также как работает BDUI, разберём примеры, реализованную фичу, которую мы недавно релизили, посмотрим на другие варианты реализации и подведём итоги.

Вряд ли узнаете, как на 100 % реализовать или внедрить BDUI в свой проект, ибо это слишком категорично, потому что для каждого проекта всё индивидуально. Но… об этом я и расскажу в моей обзорной «лекции».

Читать далее

Асинхронность в iOS: как ускорить корпоративные приложения и не сломать мозг разработчика

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

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

Если ваше приложение не отвечает мгновенно на действия пользователя, то в голове у него сразу зажигается красный флаг: «Это медленно. Это неудобно. Может, удалить?». В корпоративных приложениях, где важна каждая секунда, это недопустимо.

В этой статье мы поговорим о том, как организовать асинхронную работу в iOS‑приложениях. Разберём подходы от старой доброй GCD до современной магии Swift Concurrency и покажем, как они помогают ускорить приложение без лишнего хаоса в коде.

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.3K
В новом дайджесте реверс-инжиниринг новой функции iOS Inactivity Reboot и поиск Золотого пути к устойчивой Android-разработке, шапочный разбор с CoordinatorLayout и взрослая анатомия крэшей на iOS, приложения для HarmonyOS Next, лучший квартал экономики приложений, большая битва платформ и многое другое. Подключайтесь!

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

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

Дебаг на максимум: секретные настройки Xcode, которые должен знать каждый разработчик

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

Проблемы с графикой на iOS? Скрытые дебаг-фишки Xcode спасут вас!

Я прошёл через множество проектов — от стартапов до крупных компаний, и каждый раз графические глюки заставляли меня искать эффективные решения. Теперь я знаю, как пофиксить отрисовку. Вам понадобятся знания основ Swift, CPU, GPU и немного юмора.

Я расскажу, как исправить поехавшие пиксели с мощными дебаг-инструментами, и приведу примеры багов отображения на iPhone 16 Pro. Мой гайд поможет вам оптимизировать графику и сохранить пользователей, которых бесят тормозящие приложения.

Читать далее

Стили, темы и адаптивная верстка в React Native

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

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

Читать далее

Реверс-инжиниринг новой функции iOS Inactivity Reboot

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

В iOS 18 появилась новая функция безопасности: перезагрузка бездействия (inactivity reboot). От чего она защищает и как работает? В этом посте мы рассмотрим все подробности вплоть до расширения ядра и Secure Enclave Processor.

Безопасность до и после первой разблокировки


А вы знали, что первый ввод пароля после включения телефона сильно отличается от его дальнейшего ввода для разблокировки телефона?

При первом вводе пароля разблокируется хранилище ключей в Secure Enclave Processor (SEP), шифрующем пользовательские данные на iPhone.

Состояние до первого ввода пароля называется Before First Unlock (BFU). Из-за шифрования пользовательских данных iPhone ведёт себя немного иначе при последующих разблокировках. Вы увидите, что Face ID и Touch ID не работают, и требуется ввод пароля. Но можно заметить и более тонкие отличия: поскольку пароли Wi-Fi зашифрованы, iPhone не будет подключаться к сетям Wi-Fi. Если SIM не защищена PIN-кодом, то iPhone сможет подключаться к сотовым сетям. Это означает, что вы сможете получать телефонные вызовы. Однако при получении вызова, даже если номер есть в контактах, имя контакта не будет отображаться, потому что контакты ещё не дешифрованы. Аналогично, при получении уведомлений о новых сообщениях вы увидите, что получили сообщения, но их предпросмотр будет недоступен. Можете попробовать сами!
Читать дальше →

Об анатомии крэшей на iOS «по-взрослому»

Уровень сложностиСложный
Время на прочтение23 мин
Количество просмотров7.3K

Привет, Хабр. Меня зовут Давид Чупреев. Я разработчик мобильных приложений в команде Core iOS ОК. 

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

Читать далее

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

Сложный интерфейс: Рисуем состояния экрана без помощи системного аналитика

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

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

Годами я наблюдаю бессмысленный пинг-понг. Дизайнер рисует экран и ждёт ревью. Аналитик через пол дня открывает ссылку и просит дорисовать состояние загрузки. Задачка висит в статусе «ин-прогресс» и не уходит в разработку. Сроки растягиваются, релизы переносится.

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

Получить чек-лист

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

Время на прочтение4 мин
Количество просмотров1.4K
Новый выпуск — разбираем iOS-приложение и сенсорный пин-пад, моделируем состояния ViewModel в Android и начинаем работу с LiteRT, самые трудные вопросы с собеседований, о зацикливании рекомпозиции в Jetpack Compose, алгоритмы, с помощью которых мы разрабатываем программное обеспечение и многое другое. Подключайтесь!

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

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

Разбираем iOS-приложение: код, сборка, статические и динамические библиотеки, компиляция, запуск

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

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

Если вам, как и мне, интересно разбираться в Computer Science для iOS, приглашаю под кат. Разберём первые, самые базовые понятия, которые касаются любого iOS-приложения. Статья поможет тем, кто хочет двигаться дальше, кому интересен IT мир, и кто по каким-то причинам ещё не приступил к изучению подобного материала.

Читать далее

Пути увеличения выручки в 2025 году. Как мы увеличили продажи интернет-магазина на 34%

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

Разработали для Стройпарка мобильное приложение. На его примере рассказываем о трендах, которые будут актуальны для e-commerce в 2025 году и в особенности — для строительных и отделочных материалов и DIY-рынка.

Читать далее

Путь одного IOS-приложения

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

Решил устроить день отдыха от кода и структурировать полученный опыт.

Обычно, в процессе перепросмотра возникают неожиданные мысли, которые будут полезны мне.

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

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

Читать далее

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

Время на прочтение3 мин
Количество просмотров1.6K
Наш небольшой, но очень интересный дайджест за четыре дня — искрящиеся и переливающиеся кнопки с помощью Metal и SwiftUI, суперкастомизированное Android-приложение в 2024 году, антитренды в мобильной разработке на Flutter, почему спринты отнимают радость от создания программного обеспечения и многое другое. Подключайтесь!

Подписывайтесь на мой Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

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

История одного модального окна или переходим с UIKit на SwiftUI. Часть 3. ProgressView vs SkeletonView

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

Продолжаю эпопею с модальными экранами на SwiftUI. Но сегодня больше кода. Была задача, сделать ProgressView и SkeletonView. Вдруг кому-то пригодится, показываю.

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

Читать далее