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

iOS *

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

App Intents: новые возможности для разработчиков в iOS 18

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

Привет! Меня зовут Настя Ищенко. Я — iOS-разработчик в KTS.

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

Читать далее

Управление памятью в ассемблере для Apple Silicon

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

В статье мы познакомимся с языком ассемблера для Apple Silicon (ARM64). Рассмотрим основные регистры, запись данных из регистров в память и обратно. Затронем также и базовые навыки работы с LLDB.

Читать далее

Битва титанов: натив, кроссплатформа и PWA – ищем плюсы и минусы на каждом этапе разработки. Часть 2

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

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

Читать далее

Мобильная разработка за неделю #562 (28 октября — 4 ноября)

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.5K
В новом дайджесте ковка Metal и поиск регрессий в Compose, полностью переделанный React Native и форк Flutter, тактильный отклик в мобильных приложениях, сравнение размеров iOS и Android приложений, самые скачиваемые и зарабатывающие приложения в России в октябре и многое другое. Подключайтесь!

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

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

Малоизвестные фичи SwiftUI

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

Я уже 2 месяца прохожу обучение в онлайн‑школе и у нас на этой неделе был открытый урок, нужно было подготовить доклад на тему «Малоизвестные фичи или особенности языка Swift»

Так вот — я решила погуглить этот вопрос, подготовилась, написала код. Но когда дело дошло до самого выступления, оказалось, что говорить ртом — это не так‑то и просто. Да и в целом выступать, даже в Zoom.

Тем не менее, поделюсь с вами маленькими фишечками, которые я нашла. Уровень легкий, в отличие от меня там ребята подготовили нормальные доклады про SPM и пр. Я же решила начать с простых вещей, которые, тем не менее, мне были неизвестны. Надеюсь кому‑то тоже окажется полезным.

Читать далее

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

Битва титанов: натив, кроссплатформа и PWA — ищем плюсы и минусы на каждом этапе разработки

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

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

Читать далее

Vivaldi 7.0 для iOS

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

Давайте углубимся в новые функции, каждая из которых разработана для того, чтобы дать вам больше контроля над вашим мобильным браузером. Вот что нового:

Читать далее

Тактильный отклик в мобильных приложениях: что это такое, когда использовать и зачем?

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

В этой статье я вам расскажу, что такое тактильная обратная связь, как и для чего она применяется. Раньше устройства сообщали нам о чём-то с помощью звуков и света, например, когда телефон звонил или мигал. Что поменялось с тех времен? В этой статье расскажу.

Прочитать материал

Swift TaskGroup на примерах

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

В данной части из серии swift concurrency мы продолжим исследовать structured concurrency. В этот раз остановимся на сущности под названием TaskGroup. Узнаем как с ней работать и чем она отличается от Task и async let. На примере сравним аналогичные реализации с и без TaskGroup и разберем некоторые (не для всех очевидные) моменты при работе с данной сущностью.

Читать далее

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

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.7K
В этом выпуске ключевые изменения в UIKit и восстановление удаленных сообщений в Telegram, самые весёлые TODO из Android-фреймворка и короткий путь с Senior-ами, инфляция званий, сравнение доходов App Store и Google Play, Yolo на пятирублёвой монете и многое другое. Подключайтесь!

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

Азартная разработка iOS приложения игры 2048 с ChatGPT

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

Я хочу поделиться с вами опытом создания "с нуля" iOS приложения известной игры 2048 с элементами ИИ (искусственного интеллекта) в SwiftUI с помощью ChatGPT .

Мне хотелось написать игру 2048 именно на SwiftUI, пользуясь его прекрасной и мощной анимацией и приличным быстродействием , a также  предоставить в распоряжения пользователя не только “ручной” способ игры, когда Вы руководите тем, каким должен быть следующий ход: вверх, вниз, влево и вправо, но и ряд алгоритмов с оптимальной стратегией (метода Монте-Карлостратегий поиска по деревьям (Minimax, Expectimax) ), позволяющих АВТОМАТИЧЕСКИ выполнять ходы - вверх, вниз, влево и вправо - и добиться  плитки с числом 2048 и более (эти алгоритмы и называют алгоритмами “искусственного интеллекта” (ИИ). 

2048 - это очень известная игра, и мне не нужно было объяснять ChatGPT ее правила, он сам всё про неё знает. Кроме того, оказалось, что ChatGPT прекрасно осведомлен об ИИ алгоритмах для игры 2048, так что мне вообще не пришлось описывать ChatGPT контекст решаемой задачи. И он предлагал мне множество таких неординарных решений, которые мне пришлось бы долго выискивать в научных журналах.

Полный протокол взаимодействия с ChatGPT при создании iOS приложения игры 2048 представлен в 3-х постах на моем сайте: 

iOS приложения игры 2048 в SwiftUI  с ChatGPT 4-o. Часть 1. Введение. Логика игры 2048.

iOS приложения игры 2048 в SwiftUI  с ChatGPT 4-o. Часть 2. Анимация и UI.

iOS приложение игры 2048 в SwiftUI с ChatGPT. Часть 3. ИИ (AI) для игры 2048.

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

Читать далее

iOS 18 для разработчиков: Ключевые изменения в UIKit

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

Привет! Меня зовут Лена, я работаю iOS-разработчиком в KTS. Недавно вышла новая версия iOS 18, и я решила подробно изучить все нововведения, чтобы понять, какие новые возможности она предлагает разработчикам.

В этой статье расскажу о самых интересных обновлениях в UIKit — новый TabBar, анимации, совместимость UIKit/SwiftUI и многое другое, а также поделюсь своими впечатлениями от их практического применения.

Читать далее