Миграция большого iOS-проекта с Objective-C на Swift кажется понятной задачей ровно до тех пор, пока не начинаешь считать объём. В нашем случае это были 10 тысяч файлов, сотни тысяч строк кода и постоянная необходимость не останавливать развитие продукта. Ручной подход работал слишком медленно, поэтому мы начали автоматизировать миграцию с помощью LLM — и в итоге превратили её из бесконечного техдолга в воспроизводимый процесс.
Рубрика «objective-c»
За два месяца вместо года: как мы переписали 97 тысяч строк кода с Objective-C на Swift
2026-05-05 в 9:00, admin, рубрики: llm, objective-c, swift, команда яндекс.браузера, яндексОб анатомии крэшей на iOS «по-взрослому»
2024-11-18 в 15:53, admin, рубрики: crashes, iOS, iPadOS, objective-c, swiftПривет. Меня зовут Давид Чупреев, я разработчик мобильных приложений в команде Core iOS ОК.
В работе любого ПО как на iOS, так и на других ОС, важна стабильность и отказоустойчивость. Вместе с тем, полностью исключить сбои и ошибки в работе приложений попросту невозможно. Соответственно, ключевое значение имеет возможность оперативного отлавливания ошибок и их устранения. В этом не обойтись без знания «анатомии» крэшей и понимания принципов работы с ними.
В этой статье я расскажу, как устроены крэши в iOS, откуда они берутся и как с ними взаимодействовать.
В удивительном мире ИТ существуют проекты, узнав о которых можно сильно поменять свои взгляды на жизнь, реальность и саму разработку. Об одном из таких проектов и будет наш рассказ.
О чем речь
Нет, речь пойдет не про волшебные мухомор..Читать полностью »
Модуляризация iOS-приложения Badoo: борьба с последствиями
2021-01-21 в 17:01, admin, рубрики: apple, badoo, cocoapods, iOS, modularity, modules, objective-c, swift, Блог компании Badoo, опыт, разработка мобильных приложений, разработка под iOSВ предыдущей статье я рассказывал о том, как мы выделили модуль чата в нашем приложении. Всё прошло успешно, и мы собирались распространить этот опыт — начать тотальную модуляризацию в iOS-разработке Badoo. Даже презентовали подход продуктовым командам, командам, занимающимся тестированием и непрерывной интеграцией, и постепенно стали внедрять модуляризацию в наши процессы.
Any и AnyObject в Swift. В чем их различие?
2020-01-10 в 15:01, admin, рубрики: iOS, objective-c, swift, разработка под iOSДовольно долгое время в своих проектах при написании когда я использовал тип Any, например при обработке JSON данных. Но также я знал что есть и второй тип — AnyObject. И недавно я задумался о разнице между этими двумя типами.Читать полностью »
То, что нужно знать о проверке чека App Store (App Store receipt)
2019-10-20 в 4:30, admin, рубрики: apphud, In-App Purchase API, in-app purchases, iOS, ios development, objective-c, receipt validation, storekit, StoreKit framework, subscriptions, swift, Блог компании Apphud, песочница Apple, разработка мобильных приложений, разработка под iOSВ StackOverflow по-прежнему появляется много вопросов о валидации App Store чеков, поэтому мы решили написать статью на эту тему в формате вопросов и ответов.
MetricKit. Анализ производительности iOS приложений
2019-09-21 в 17:13, admin, рубрики: development, ios development, MacOS, MetricKit, objective-c, swift, Программирование, разработка мобильных приложений, Тестирование мобильных приложений
Новая игрушка
Мы продолжаем знакомится с новым материалом от Apple, представленным на WWDC. На этот раз рассмотрим MetricKit, это абсолютно новый фреймворк, который служит инструментом для мониторинга производительности приложений.
Читать полностью »
MVC без C: Что изменит SwiftUI в архитектуре приложений?
2019-09-07 в 20:28, admin, рубрики: apple, elm, ios development, mobile development, objective-c, redux, swift, viper, Программирование, разработка под iOSMVC был давним стандартом в паттернах проектирования, используемых для написания iOS приложений. Структура iOS приложений, которые создавались ранее, была основана на одном базовом компоненте, который присутствует везде, и называется он — view controller. На WWDC19 был представлен SwiftUI, который не имеет такого компонента.
Проблема с так называемыми massive view-controllers должна быть решена в SwiftUI. Так, необходимо найти новый способ правильной декомпозиции кода. Давайте посмотрим на текущее состояние платформы и подумаем, какие парадигмы мы можем использовать при разработке для iOS13, и более поздних версий.
(Не очень) скрытые издержки общей кодовой базы iOS и Android
2019-08-16 в 10:37, admin, рубрики: android, c++, iOS, java, kotlin, objective-c, swift, разработка мобильных приложений, Разработка под android, разработка под iOS, С++До недавнего времени у Dropbox была техническая стратегия использовать общий код C++ для мобильных приложений iOS и Android. Идея понятна: написать код один раз на C++ вместо его дублирования отдельно на Java и Objective C. Мы приняли эту стратегию ещё в 2013 году, когда группа инженеров мобильной разработки была относительно небольшой и приходилось быстро развивать продукт. Такое решение позволило выдавать большой объём кода как на Android, так и на iOS силами маленькой команды.
Теперь мы полностью отказались от этой стратегии в пользу родных языков каждой платформы (в первую очередь Swift и Kotlin, которые не существовали, когда мы начинали). Решение связано с (не очень) скрытыми издержками на совместное использование кода.
Все проблемы вытекают из главного: оверхед оказался больше, чем просто написать код два раза.
Читать полностью »
AppCode 2019.2: Swift 5.1, анализ покрытия кода тестами, отображение дизассемблированного кода и другое
2019-08-01 в 11:15, admin, рубрики: appcode, iOS, objective-c, swift, xcode, Блог компании JetBrains, мобильная разработка, разработка мобильных приложений, разработка под iOSАстрологи объявили неделю релизов в JetBrains, количество публикаций в блоге выросло втрое! На самом деле, это тоже релизный пост, так что если вы участвовали в EAP, вы уже обо всем знаете.
Если нет — обязательно заходите под кат, потому что в этом релизе у нас не только появился анализ покрытия кода тестами и отображение дизассемблированного кода, но еще и поддержка DSL на Ruby и куча прочего интересного!



