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

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

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

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

Swift Utilities — Работа со SwiftData в Background

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

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

SwiftData отлично функционирует внутри View: достаточно добавить декоратор @Query к свойству, и все будет работать 'из коробки'. Однако, когда возникает желание вынести работу со SwiftData в отдельный модуль, начинают появляться сложности, особенно касаемо выполнения операций в фоновом режиме.

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

Новости

9 советов, которые облегчат путь до мидла

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

Для всех джунов в разработке и тех, кто хочет ими стать.

Так бывает в жизни, что периодически каждый оказывается в роли джуна. Это не только про начало карьерного пути, но и про новые навыки: изучить новую технологию, язык программирования. А вдруг кто-нибудь из вас захочет резко сменить карьерный вектор и залететь в ИТ, например, из HR, как это сделала я?

Привет! Меня зовут Даша, я iOS-разработчик в Точке.

Так сложилось, что я побывала по обе стороны баррикад, причём, как ни забавно, в обратном порядке: пришла в разработку из HR. 

Изначально я была IT-рекрутером: брала джунов в Точку и помогала командам выстроить процесс их адаптации так, чтобы они смогли вырасти в дальнейшем. А потом, по законам кармы, сама оказалась в роли джуниор iOS-разработчика и попробовала всё ранее придуманное на своей шкуре. 

Жизнь длинная, и всё бывает: ещё вчера ты был уверенным в себе профессионалом, а сегодня стал беспомощным младенцем. И это не очень приятное ощущение. Хочется как можно быстрее превратиться обратно в самостоятельного человека. 

Лови 9 советов, которые помогут тебе сделать это легче.

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

Идеальный REST клиент iOS

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

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

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

Как устроен протокол iMessage

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

В этом посте я вкратце расскажу о внутреннем устройстве iMessage, изученном мной в процессе работы над pypush — опенсорсным проектом воссоздания реализации iMessage.

Ради краткости и понятности я не буду вдаваться в технические подробности. Если вы хотите узнать, как конкретно всё реализовано, то изучите репозиторий pypush.

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

Истории

Механизм экспорта растровых изображений в Figma: как изменяется качество изображения

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

Механизм экспорта растровых изображений с масштабированием в Figma полезен для разработчиков Android и iOS. Это связано с разной плотностью пикселей на экранах мобильных устройств. Для максимального использования возможностей устройств рекомендуется экспортировать изображения под конкретную плотность пикселей.

Android-разработчики при экспорте из Figma используют масштабирование x1, x1.5, x2, x3 и x4. iOS-разработчики предпочитают x1, x2 и x3.

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

Swift Utilities — Интеграция SwiftUI в UIKit

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

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

Как можно начать переезжать на SwiftUI? Постепенно. Переписывать целый экран слишком дорого по времени, а вот переписать ячейку или кнопку куда быстрее. Таким способом можно мигрировать на SwiftUI, постепенно переписывая экран. В этом поможет класс HostingView.

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

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

Время на прочтение 5 мин
Количество просмотров 2K
В новом дайджесте создание самолетного радара для любимой дочки, Kotlin под капотом, утечки памяти, визуальная иерархия элементов, лучшие приложения года для iOS и Android, руководство по монетизации и многое другое!

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

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

Ускоряем прохождение iOS UI-тестов. Часть 3. Старт приложения с определенного экрана

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

Хабр привет!

Меня зовут Борис. Я руководитель группы автоматизации тестирования в Звук.

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

Данная статья будет полезна iOS‑автоматизаторам с опытом, либо разработчикам.

В рамках этой статьи мы разберем:

Зачем стартовать приложение с определенного экрана?

Какие способы реализации существуют?

Реализация с помощью диплинков

Реализация с помощью ArgumentHandler для подмены стартового View

Плюсы и минусы обоих подходов

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

Проект: AI Note Recorder или как я не выполнил цель на 2023 год

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

В 2023 году одной из моих целей стало собрать команду, забрейнштормить и запустить вместе проект, набрать 100 пользователей.

Я подошёл к этому серьёзно, но у меня не получилось.

Этим постом я хочу прорефлексировать весь путь, почему не вышло, что сработало и что помешало.

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

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

DebugMenu и визуальная иерархия элементов интерфейса

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

В начале квартала, в Альфе, мы выбираем себе технические таски — задачи, направленные на техническое развитие проекта, а не на продуктовую составляющую. При выборе задачи хочется, чтобы она соответствовала нескольким условиям:

 решает реальные проблемы нашей команды, упрощая ежедневную работу;

укладывается в четыре выделенных технических дня — наш формат работы предполагает выбор трех задач на квартал и их решение в течение 20% рабочего времени;

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

Среди технических задач, мое внимание привлекла задача по визуализации иерархии элементов интерфейса. Она казалась мне идеальной: помимо очевидной пользы для разработчиков, которым не всегда удобно работать с View Hierarchy в Xcode(в некоторых случаях, изображения у вью отсутствуют) и невозможно при сборках через AppCenter или TestFlight, задача обещала интересные вызовы — возможность поработать с SceneKit. К тому же, наличие открытых библиотек, решающих подобные задачи, предполагало легкость интеграции в наш проект.

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

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

Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 3)

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

Hola, Amigos! На связи Саша Чаплыгин, Flutter dev компании заказной разработки Amiga. Вот и наконец-то 3 часть статьи, в которой будет идти речь про про использование «Hot Reload», «Hot Restart» и тестирование на Codemagic.

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

Как появились веб-пуши Apple в Тинькофф

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

Всем привет! Мы — архитектор разработки публичных веб-приложений Борис и разработчик системы-шлюза отправки нотификаций Данила. Расскажем о том, как создавались веб-пуши iOS в Тинькофф, как их настраивали и с какими проблемами столкнулись в процессе разработки.

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

Kotlin Multiplatform в мобильной разработке. Рецепты общего кода для Android и iOS

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

Kotlin Multiplatform — технология, которая позволяет использовать общую кодовую базу для бизнес-логики приложений разных платформ и писать платформенный код только там, где это необходимо. Хотя последнее время о ней много и часто говорят, найти информацию о нюансах внедрения KMP в проекты довольно сложно. В этом мы убедились лично, когда пытались разобраться, что и как именно можно безболезненно выносить в common-модуль. 

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

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

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

Время на прочтение 5 мин
Количество просмотров 4K
В нашей новой подборке отслеживание изменений в SwiftUI и тысяча проблем App Clip, Kotlin под капотом и простая архитектура, OpenStreetMap в Flutter, 18 лет работы в Google, мышление Platform Engineer, приложением №1 в App Store, которое не обновлялись уже 7 лет и многое другое!

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

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

Что можно и что нельзя делать с Async/Await

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

Синтаксис async/await, введенный в Swift 5.5, значительно упростил асинхронное программирование, сделав его более доступным и интуитивно понятным. Однако, как и любой мощный инструмент, он может быть использован неправильно. Здесь я хочу рассмотреть пять распространенных ошибок, которые разработчики часто допускают при использовании async/await и предложить стратегии их избегания.

Ошибка 1: Необработка Ошибок

Асинхронные функции Swift могут вызывать ошибки, так же как и их синхронные аналоги. Однако многие разработчики, особенно те, кто только начинает работать с синтаксисом async/await, могут упускать обработку ошибок, что приводит к сбоям или непредсказуемому поведению.

Решение

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

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

Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 2)

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

Hola, Amigos! На связи Саша Чаплыгин, Flutter dev компании заказной разработки Amiga. Нашел интересную статью на английском о том, как добавить Flutter в новый или существующий проект Native iOS. Решил поделиться с вами переводом. Это вторая часть, в которой будет идти речь про реализацию экрана Flutter в приложение для iOS и использование platform channel.

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

ChatGPT-4 в помощь: используем AI в доработке простого iOS-приложения

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

Мне всегда было интересно, получится ли применить AI-инструменты в трудовых буднях программиста. Когда появился ChatGPT, я начал пробовать использовать его в работе, и он быстро стал для меня вспомогательным инструментом. Буквально на днях вышло его крупное обновление, и стала доступна новая функциональность, которая делает его еще удобнее для разработчика.

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

Для наглядности буду демонстрировать все на открытом pet-проекте, чтобы вы видели работу новых функций GPT-4 в действии.

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

Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 1)

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

Hola, Amigos! На связи Саша Чаплыгин, Flutter dev компании заказной разработки Amiga. Нашел интересную статью, решил поделиться переводом. Автор материала рассказывает, как добавить Flutter в новый или существующий проект Native iOS и протестировать его на Codemagic CI/CD с помощью codemagic.yaml.

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

App Clip и тысяча проблем

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

Menusa - проект Dodo Brands. Инструмент по автоматизации процессов для малого бизнеса в сфере общепита.

В этой статье расскажу как мы добавляли функционал вызова официанта в App Clip и с какими проблемами столкнулись.

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

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

Время на прочтение 5 мин
Количество просмотров 1.8K
В этом дайджесте для мобильных разработчиков листаем страницы и повышаем качество кода, защищаем и исследуем код, исследуем новый релиз Flutter, делаем дизайн-систему, автотесты, определяем “производительность” рекламных сетей.

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

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

Вклад авторов

Работа

Swift разработчик
51 вакансия
iOS разработчик
44 вакансии