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

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

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

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

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

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

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

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

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

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

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

Новости

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Истории

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

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

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

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

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

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

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

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

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

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

Синтаксис 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 мин
Количество просмотров 545

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Swift Utilities — Equatable для сложных Enum

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

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

Мне часто встречалась ситуация когда надо подписать enum со вложенными типами под протокол Equitable и приходилось реализовывать его функции

Чтобы упростить жизнь и каждый раз не писать сложные static func ==(lhs: T, rhs: T) -> Bool Можно подписать enum под protocol ComplexEquatable

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

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

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
Business Code Conference
Дата 30 ноября
Время 17:30 – 00:00
Место Москва
Импульс Т1
Дата 1 декабря
Время 12:30
Место Москва Онлайн
YaTalks 2023 — главная конференция Яндекса для IT сообщества
Дата 5 – 6 декабря
Время 9:00 – 23:59
Место Москва Белград Онлайн

Swift Utilities — Потокобезопасное свойство

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

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

При разработке очень важна безопасность данных при параллельном доступе к ним. В этой статье я покажу , как создать потокобезопасное свойство с использованием свойства-обёртки @SynchronizedLock.

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

Swift Utilities — Упрощаем работу с UserDefaults

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

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

Работа с UserDefaults может быть удобной и простой, в этом поможет обертка UserDefaultsWrapper. Давайте разберемся, как она работает.

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

Swift Utilities — Работа с Динамическими Цветами

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

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

При разработке приложений, одним из ключевых аспектов является адаптивность интерфейса к различным режимам отображения, особенно к светлой и тёмной теме. Я покажу подход к управлению цветами интерфейса с использованием свойства-обёртки DynamicUIColor

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

Рефакторинг Swift

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

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

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

Добавляем подсказки в приложение с помощью TipKit

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

Когда TipKit был впервые упомянут во время выступления на WWDC 2023, я поначалу предположил, что это какой-то новый способ отображения приложений в приложении Tips и, возможно, Spotlight. Вместо этого мы увидели встроенный компонент для добавления небольших обучающих представлений в наши собственные приложения на всех платформах с системой правил для отображения на основе условий и синхронизацией на нескольких устройствах через iCloud! Более того, Apple сама использует этот компонент в iOS 17, например, в приложениях Messages и Photos.

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

Листаем цифровые страницы: UIPageViewController

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

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

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

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

Абстрактная фабрика: искусство создания масштабируемого кода

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

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

Что вообще хотим увидеть:

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

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

Работа

Swift разработчик
56 вакансий
iOS разработчик
46 вакансий