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

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

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

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

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

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

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

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

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Новости

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

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

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

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

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

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии1

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

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

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

Читать дальше →
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Истории

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

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

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

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+5
Комментарии4

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

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

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

Читать далее
Всего голосов 13: ↑11 и ↓2+11
Комментарии12

Vivaldi 7.0 для iOS

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

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

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии2

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

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

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

Прочитать материал
Всего голосов 15: ↑15 и ↓0+19
Комментарии0

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

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

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

Читать далее
Рейтинг0
Комментарии0

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

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

Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

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

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

Я хочу поделиться с вами опытом создания "с нуля" 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 как при разработки, так и при обучении.

Читать далее
Всего голосов 8: ↑5 и ↓3+7
Комментарии8

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

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

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

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

Читать далее
Всего голосов 45: ↑45 и ↓0+48
Комментарии0

Изменение модели данных CoreData для iOs приложения с iCloud синхронизацией

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

Казалось бы простая задача добавления атрибута(ов) в модель данных CoreData может обернуться проблемами если в приложении используется синхронизация между устройствами через iCloud. В этом случае необходимо провести так называемую lightweight миграцию прежней базы данных в базу данных с новой моделью иначе синхронизация перестанет работать, что чревато в дальнейшем потерей данных при их восстановлении из iCloud. Здесь предлагается пошаговая инструкция как это сделать легко и безопасно на примере моего приложения для учета финансов, которым ежедневно пользуется несколько тысяч пользователей, поэтому к сохранности данных подход должен быть серьезный

Итак, поехали!

Читать далее
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

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

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Создадим команду Wild Politics вместе

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

Здравствуйте, Хабровчане!

Мой предыдущий пост "Как потратить шесть лет и быть невидимкой в Play Market" собрал пусть и не рекордные, но всё-таки 13 тысяч просмотров, благодаря чему в мой пет-проект заглянуло много новых лиц. Я благодарен вам за внимание к игре, отзывы и критику.

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

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

Доступность в Play Market. Вероятнее всего, игру не видно в поиске, в первую очередь из-за того, что она находится на стадии пре-регистрации. Также, ранее слабой была ASO-оптимизация страницы игры (буквально мало "ключевых слов" в тексте описания). Полагаю, ситуация изменится с выходом игры в публичный доступ. Но уже сейчас она собрала более 200 заявок на предварительное скачивание.

Прежде чем публиковать игру для "миллиардов пользователей Google Play", я планирую завершить перевод игры на анг

Читать далее
Всего голосов 5: ↑1 и ↓4-1
Комментарии0

Области тьмы: разбираем неочевидные моменты при использовании памяти в Swift

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

Привет, Хабр! Это Александр, iOS Developer из Clevertec. Об управлении памятью в Swift написано уже много и хорошо. Но я предлагаю копнуть с другой стороны и попытаться собрать недостающие детали пазла.

Читать далее
Всего голосов 7: ↑7 и ↓0+9
Комментарии0

Objective-C не кусается: как перестать бояться Legacy и стать настоящим iOS-ниндзя

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

Всем привет! Меня зовут Сергей, и я работаю разработчиком мобильных приложений. Также мы с ребятами развиваем международное комьюнити Coffee&Code, а сам я частый гость на встречах в Санкт-Петербурге.

Хочу поговорить о теме, которая волнует многих разработчиков: использование старых технологий в iOS-разработке, таких как Objective-C. Тут возникает очень насущный вопрос, являются ли он легаси?

Читать далее
Всего голосов 27: ↑25 и ↓2+27
Комментарии14

Внедряем снепшот-тестирование, или пять стадий принятия неизбежного

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

Привет, Хабр! Меня зовут Дмитрий Сурков, я iOS-разработчик приложения для среднего и малого бизнеса ПСБ. У нас есть практика проводить технические дни, на которых мы вносим улучшения в наше приложение. Одним из таких улучшений оказалось внедрение снепшот-тестов для компонентов дизайн-системы. В статье расскажу, как мы прошли все стадии принятия и обрели покой и умиротворение.

Читать далее
Всего голосов 8: ↑8 и ↓0+12
Комментарии4

Макросы в Swift: Практическое руководство по использованию

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

Недавно я столкнулся с задачей, которая требовала написания большого объема шаблонного кода. Вспомнив, что в Swift 5.9 появились макросы, созданные специально для генерации шаблонного кода, я решил попробовать их в действии. Ранее я работал с макросами в Objective-C и C++, поэтому ожидал увидеть нечто похожее. Однако, поискав информацию, я понял, что макросы в Swift — это совсем другое, не похожее на то, что я встречал в других языках.

В отличие от макросов в C++ или Objective-C, в Swift нужно писать гораздо больше кода, соблюдая при этом строгие правила оформления. Иначе можно столкнуться с загадочными ошибками компиляции, решение которых не всегда очевидно. Дополнительные трудности возникают из-за того, что многие статьи и видео просто повторяют официальную документацию, не объясняя понятным языком, как именно использовать макросы. Часто вместо этого начинаются сложные рассуждения о структуре AST (Abstract Syntax Tree) или приводятся примеры кода, которые демонстрируют результат работы макроса, но не показывают, как его создать и отладить.

Именно из-за таких трудностей я решил написать эту статью. Её цель — максимально просто, без углубления в теорию, объяснить, как можно уже сегодня начать использовать макросы в Swift. Если вам захочется изучить эту тему подробнее, вы всегда сможете обратиться к официальной документации или материалам с WWDC, где этот вопрос разобран более детально. А если вам понравится моя подача, пишите в комментариях — я постараюсь объяснить сложные моменты в отдельных статьях.

Читать далее
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Осторожно, Combine! Откуда берутся утечки памяти, потеря эвентов, нестабильность операторов и что с этим всем делать

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

Привет, меня зовут Никита, я iOS‑разработчик в Яндекс Диске. В прошлый раз я рассказывал, как мы начали свой путь в SwiftUI. Теперь настало время рассказать ещё об одном фреймворке, который мы затащили в свой проект параллельно со SwiftUI, — Combine.

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

Читать далее
Всего голосов 17: ↑17 и ↓0+22
Комментарии2

История одного модального окна или переходим с UIKit на SwiftUI. Часть 2.1. Неожиданный баг Combine

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

В этой статье изначально планировала написать продолжение первой части статьи. А именно показать обещанные ProgressView и SkeletonView. Но тут на моём пути возникло неожиданное препятствие.

Обо всём по порядку.

Мы же понимаем, что просто так оставить View со всем функционалом внутри нельзя. Обычно я накидываю быстрый функционал и UI в одном классе, а затем уже разделяю. Использую MVVM архитектуру. И модальное окно не стало исключением. Проверив, что всё работает во View, я создала ViewModel, сделала её ObservableObject

Читать далее
Всего голосов 2: ↑2 и ↓0+4
Комментарии0
1
23 ...