Pull to refresh
4
Виталий Подольский@DevlabStudio

iOS software engineer

5
Subscribers
Send message

Покажу вам фокус: настраиваем property wrapper @FocusState — короткая инструкция

Level of difficultyEasy
Reading time3 min
Reach and readers6.2K

Всем привет! Меня зовут Дмитрий Демми, компания AGIMA. Мы часто разрабатываем приложения для банков или еком-продуктов. И в большинстве из них нужно заполнять поля: вписывать имя, контакты, адрес, номера документов, банковских карт или реквизиты. Иногда таких граф бывает много, и чтобы пользователям было удобно переключаться между ними, в iOS-разработке используется property wrapper @FocusState. Если вы пока не сталкивались с таким, то ниже всё объясняю и показываю.

Читать далее

Compose Multiplatform 1.8.0: поддержка iOS переходит в stable

Level of difficultyEasy
Reading time5 min
Reach and readers5.7K

Привет! Меня зовут Максим, я управляющий партнер и руководитель мобильной разработки в KTS.

Мы разрабатываем приложения на KMP еще с 2021 года, а в прошлом году начали экспериментировать с Compose Multiplatform. Вчера JetBrains официально объявили о выходе CMP 1.8.0, c которой поддержка iOS переходит в статус stable. Это важный этап, поскольку теперь CMP можно всерьез рассматривать как основу для кроссплатформенной мобильной разработки.

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

Читать далее

SwiftUI: Пишем простое фитнес-приложение с использованием HealthKit

Level of difficultyMedium
Reading time26 min
Reach and readers3.7K

В этой статье мы сосредоточимся на создании фитнес-приложения с использованием HealthKit. Это отличная возможность интегрировать данные о здоровье пользователей прямо в ваш продукт. Мы настроим фреймворк для отслеживания тренировок на Apple Watch; узнаем, как получить доступ к данным о физической активности и управлять ими, сохраняя при этом конфиденциальность пользователей.

Читать далее

Детские ошибки при сборке Gradle-приложений

Level of difficultyMedium
Reading time10 min
Reach and readers13K

Привет! Я Никита, сейчас разрабатываю мобильный банк под Android, много работаю с Gradle, и мне это нравится.

Сборка приложений для меня уже рутина — на пет-проектах и на работе. Но однажды я задумался, а можно ли ускорить сборку? Если да, то как и насколько: на доли секунд или это будет ощутимо? Как именно ускорять, ведь есть куча версий Gradle, плагины, бинарный интерфейс и всё такое?

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

Читать далее

Как запускать пет проекты, зарабатывать на них и отправлять на кладбище неуспешные

Level of difficultyEasy
Reading time12 min
Reach and readers31K

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

Я - Юра, разработчик и фаундер нескольких продуктов. В этой статье я расскажу о своем подходе к поиску идей, их реализации (без глубиных технических деталей), маркетинге, тайм менеджменте и в целом моментах, которые важны на мой взгляд. Будет мало теории и больше практики из моего опыта.

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

Читать далее

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

Level of difficultyMedium
Reading time7 min
Reach and readers4.7K

Tracer — модульный инструмент для аналитики ошибок в мобильных приложениях от OK.Tech, который мы представили год назад. За это время в Tracer зарегистрировалось более 1400 организаций и 5000 пользователей. Сейчас решение обрабатывает более 1 млрд событий в день и обслуживает приложения, которые имеют суммарный DAU в 20 млн пользователей. Опыт наших клиентов показывает, что Tracer успешно справляется с поставленными задачами, но мы всё равно не останавливаемся на достигнутом.

Меня зовут Кирилл Попов. Я руководитель направления Android-разработки в ОК. В этой статье я расскажу, какие возможности получил инструмент за последний год, и что мы планируем реализовывать в перспективе.

Читать далее

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

Level of difficultyHard
Reading time23 min
Reach and readers13K

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

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

Читать далее

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

Level of difficultyMedium
Reading time16 min
Reach and readers6.4K

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

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

Читать далее

Как написать Android приложение, которое не будет стыдно положить в портфолио. Гайд для новичков в Android разработке

Level of difficultyEasy
Reading time22 min
Reach and readers30K

Гайд по написанию Android-приложения с нуля, используя лучшие архитектурные подходы – Clean Architecture и MVI, они обеспечат поддерживаемость, тестируемость и масштабируемость приложения, что особенно важно для сложных и долгосрочных проектов.

Читать далее

Решение проблемы race condition в Kotlin корутинах

Level of difficultyMedium
Reading time4 min
Reach and readers13K

Синхронизация корутин в Android имеет огромное значение для обеспечения безопасности и эффективности многопоточности. Коррутины упрощают управление асинхронными задачами, но без должной синхронизации могут возникнуть проблемы, такие как race condition, что приведет к неправильному поведению приложения.

Читать далее

Платформа из красного кирпича: как настроить окружение в Kotlin Multiplatform Mobile

Reading time9 min
Reach and readers7.9K

Первое, в чём может возникнуть затруднение у Android разработчика при переходе на ККМ - это быстрая настройка окружения. Официальный сайт Kotlin не пестрит подробными инструкциями, и можно потратить несколько часов в поисках нужной информации. В данной статье мы пройдёмся по этапам настройки проекта.

Читать далее

Как ускорить запуск iOS-приложения в 2 раза с помощью Network Instrument

Level of difficultyMedium
Reading time14 min
Reach and readers9.4K

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

Если посмотреть на все запросы со стороны, то появится много вопросов: нужно ли переиспользовать URLSession.shared, почему первые запросы выполняются дольше остальных, как построить мониторинг качества работы сети и т.п.

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

Читать далее

Unity для детей: топ-25 бесплатных видеоуроков

Level of difficultyEasy
Reading time10 min
Reach and readers19K

Собрали видеоуроки по Unity для детей 10 лет и старше: от создания простой анимации до разработки небольших игр.

Unity — это игровой движок, который позволяет создавать компьютерные игры и приложения. На нем созданы такие игры, как Slender: The Arrival, РПГ Shadowrun Returns, одна из самых красочных игр прошлого десятилетия Ori and the Blind Forest, Outer Wilds и другие. Несмотря на то, что платформа используется профессиональными разработчиками, в качестве обучения детей «Юнити» подходит отлично, поскольку в процессе развиваются не только технические навыки и умение кодить на С#, но и множество других важных компетенций.

Читать далее

Удобная навигация в SwiftUI для iOS 16 и выше

Level of difficultyEasy
Reading time4 min
Reach and readers7.2K

Не будем мусолить всем известную проблему с навигацией в SwiftUI до 16 iOS, так как уже много крутых статей на эту тему есть в открытом доступе. Близится релиз 18 iOS, а это значит, что минимальные таргеты поднимутся на единичку ближе к 16 🥳

В данной статье хочу представить на `мой взгляд` наиболее удобную реализацию навигации на NavigationStack. Разумеется в концепции старого доброго MVVM, поэтому фанаты UDF извините 😜

Читать далее

Скрытая (на виду) сила KeyPath'ов

Reading time8 min
Reach and readers4.8K

Привет! Меня зовут Максим Черноусов, и я занимаюсь iOS-разработкой в Райфе. Я обожаю использовать и дизайнить классные API. А один из самых часто используемых строительных блоков для хороших API в Swift — это KeyPath'ы. Сегодня о них и поговорим.

Читать далее

Принципы SOLID на примере iOS-разработки

Level of difficultyMedium
Reading time13 min
Reach and readers11K

Привет, меня зовут Антон, я iOS-разработчик в компании Surf. Все программисты хотят писать красивый, масштабируемый и сопровождаемый код, и мобильщики – не исключение. Как в этом помогут принципы SOLID, и зачем они нужны?

Расскажем и покажем на примерах (куда без этого). Кейсы в статье относятся к iOS-разработке, но они будут полезны для всех разработчиков, независимо от стека.

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

Защита iOS-приложений от реверс-инженеринга

Level of difficultyEasy
Reading time5 min
Reach and readers3.8K

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

Читать далее

Введение в тестирование на Swift Testing

Level of difficultyMedium
Reading time17 min
Reach and readers14K

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

Читать далее

Делаем нативное мобильное приложение с ИИ и бэкендом (Туториал)

Level of difficultyEasy
Reading time15 min
Reach and readers11K

В этой статье мы рассмотрим тонкости создания Proof of Concept (PoC) мобильного приложения, построенного с помощью фреймворка SwiftUI и бэкенда с использованием FastAPI и OpenAI API. Дополнительно я продемонстрирую эффективные архитектурные паттерны для SwiftUI-приложений, в частности MVVMP в сочетании с принципами SOLID и Dependency Injection (DI). Для андроид код можно легко перевести на Kotlin с помощью Jetpack Compose Framework.

Читать далее

Privacy Manifest: что нужно о нём знать для внедрения в проект

Level of difficultyMedium
Reading time11 min
Reach and readers12K

На работе я столкнулся с задачей внедрения Privacy Manifest в проект. Изучение вопроса началось с прочтения документации Apple, а продолжилось просмотром WWDC-сессии на тему конфиденциальности. После внедрения оказалось, что для корректной работы над задачей нужно изучить больше информации. Поэтому я решил поделиться опытом в формате инструкции. Покажу, как внедрять Privacy Manifest на примере вымышленного проекта, и дам практические советы по внедрению манифеста конфиденциальности.

Читать далее
1
23 ...

Information

Rating
Does not participate
Location
Белград, Белград, Сербия
Date of birth
Registered
Activity

Specialization

Десктоп разработчик, Разработчик мобильных приложений
Ведущий