Об анатомии крэшей на iOS «по-взрослому»
В работе любого ПО как на iOS, так и на других ОС, важна стабильность и отказоустойчивость. Вместе с тем, полностью исключить сбои и ошибки в работе приложений попросту невозможно. Соответственно, ключевое значение имеет возможность оперативного отлавливания ошибок и их устранения. В этом не обойтись без знания «анатомии» крэшей и понимания принципов работы с ними.
В этой статье я расскажу, как устроены крэши в iOS, откуда они берутся и как с ними взаимодействовать.
Статья: https://habr.com/ru/companies/odnoklassniki/articles/858302/
Платформа: iOS
В работе любого ПО как на iOS, так и на других ОС, важна стабильность и отказоустойчивость. Вместе с тем, полностью исключить сбои и ошибки в работе приложений попросту невозможно. Соответственно, ключевое значение имеет возможность оперативного отлавливания ошибок и их устранения. В этом не обойтись без знания «анатомии» крэшей и понимания принципов работы с ними.
В этой статье я расскажу, как устроены крэши в iOS, откуда они берутся и как с ними взаимодействовать.
Статья: https://habr.com/ru/companies/odnoklassniki/articles/858302/
Платформа: iOS
❤2
Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая
Главное, на что я хотел бы обратить ваше внимание — это то, насколько логика становится целостной, если проектировать ее с точки зрения приложения, а не пользовательского интерфейса. А ещё насколько она гибкая, тестируемая и масштабируемая, если каждая функция отделена от своих зависимостей на уровне действий (функций), а не объектов.
Статья: https://habr.com/ru/articles/851808/
Платформа: Android
Главное, на что я хотел бы обратить ваше внимание — это то, насколько логика становится целостной, если проектировать ее с точки зрения приложения, а не пользовательского интерфейса. А ещё насколько она гибкая, тестируемая и масштабируемая, если каждая функция отделена от своих зависимостей на уровне действий (функций), а не объектов.
Статья: https://habr.com/ru/articles/851808/
Платформа: Android
Поиск нашего Золотого пути к устойчивой Android-разработке
Следуя «Золотому пути», мы не просто пишем код — мы создаем устойчивую и адаптируемую культуру разработки, которая выдержит испытание временем.
Статья: https://apptractor.ru/info/articles/poisk-nashego-zolotogo-puti-k-ustoychivoy-android-razrabotke.html
Платформа: Android
Следуя «Золотому пути», мы не просто пишем код — мы создаем устойчивую и адаптируемую культуру разработки, которая выдержит испытание временем.
Статья: https://apptractor.ru/info/articles/poisk-nashego-zolotogo-puti-k-ustoychivoy-android-razrabotke.html
Платформа: Android
Focus Launcher - минималистичный лаунчер для Android, созданный с помощью Jetpack Compose. Поддерживает светлый и темный режим, есть свой пак иконок, данные о фазе Луны, анимированные часы, избранные приложения. Стек: Kotlin, Jetpack Compose, корутины, архитектура Circuit, коллекция Android Architecture Component, Hilt-Dagger, Ktor.
Focus Launcher на GitHub: https://github.com/mslalith/focus_launcher
Платформа: Android
⭐️: 138
Focus Launcher на GitHub: https://github.com/mslalith/focus_launcher
Платформа: Android
⭐️: 138
❤3
Реверс-инжиниринг новой функции iOS Inactivity Reboot
В iOS 18 появилась новая функция безопасности: перезагрузка бездействия (inactivity reboot). От чего она защищает и как работает? В этом посте мы рассмотрим все подробности вплоть до расширения ядра и Secure Enclave Processor.
Статья: https://habr.com/ru/companies/ruvds/articles/859884/
Платформа: iOS
В iOS 18 появилась новая функция безопасности: перезагрузка бездействия (inactivity reboot). От чего она защищает и как работает? В этом посте мы рассмотрим все подробности вплоть до расширения ядра и Secure Enclave Processor.
Статья: https://habr.com/ru/companies/ruvds/articles/859884/
Платформа: iOS
Избавляемся от Android в api-модулях
Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами».
Статья: https://habr.com/ru/companies/alfa/articles/859450/
Платформа: Android
Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами».
Статья: https://habr.com/ru/companies/alfa/articles/859450/
Платформа: Android
RichEditorSwiftUI - библиотека на основе Swift, позволяющая легко сделать редактор текста в SwiftUI. Поддерживает жирный, наклонный, подчеркнутый шрифт и разные заголовки.
RichEditorSwiftUI на GitHub: https://github.com/canopas/rich-editor-swiftui
Платформа: iOS
⭐️: 81
RichEditorSwiftUI на GitHub: https://github.com/canopas/rich-editor-swiftui
Платформа: iOS
⭐️: 81
Портал, манулы и мячи: опыт разработки для Apple Vision Pro. Часть 1
В статье описан мой опыт разработки мини-игр для Apple Vision Pro в условиях жёсткого ограничения во времени. Расскажу, с какими сложностями я столкнулся в ходе работы с 3D-моделями, и поделюсь способами их преодоления. Лайфхаки для упрощения работы с RealityViewContent и Reality Composer Pro прилагаются.
Статья: https://habr.com/ru/articles/860194/
Платформа: iOS
В статье описан мой опыт разработки мини-игр для Apple Vision Pro в условиях жёсткого ограничения во времени. Расскажу, с какими сложностями я столкнулся в ходе работы с 3D-моделями, и поделюсь способами их преодоления. Лайфхаки для упрощения работы с RealityViewContent и Reality Composer Pro прилагаются.
Статья: https://habr.com/ru/articles/860194/
Платформа: iOS
Видео и подкасты за неделю на @AppFiles
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
#ios #android #mobile #video
•
(iOS Ru) Дейтинг, Swift и Формула-1: от первых шагов в IT до победы в хакатоне•
(iOS Ru) iOS разработка с нуля•
(iOS En) Disintegration Effect (Thanos Snap Effect) | SwiftUI•
(iOS En) Recreating Mail App’s Tab bar | SwiftUI•
(iOS En) Fix iOS 18 Gesture Problems With ScrollViews | SwiftUI•
(iOS En) How to save data to local storage - iOS File System and Sandboxing•
(iOS En) Apple's Official Method to Learn Swift and iOS•
(iOS En) SwiftUI Tutorial: Build a Real App! Payment Calculator•
(Andr Ru) Code Review: вы не поверите, насколько распространены эти ошибки в коде Android-проектов•
(And En) Graphics layers | Jetpack Compose Tips•
(And En) Open Health Stack•
(And En) How to Deserialize Inconsistent JSON Data With a Custom Kotlinx Serializer•
(And En) Anonymous Functions Aren't Lambdas•
(And En) Animating Your World with Doris Liu – Dive into Jetpack Compose Animations•
(Crs En) The Compose Multiplatform Crash Course for 2025 - Build a Clean Code Book App•
(Crs En) Platform Integrations With Russel Wolf•
(Crs En) From Sprite Sheets to Stunning Animations in Jetpack Compose! KMP Library•
(Crs En) Building a Clean, Multi-Module Application with Compose Multiplatform•
(Dev Ru) iOS vs Android: большая битва платформ — что лучше для разработчика, бизнеса и простого пользователя•
(Dev Ru) Всё о лицензиях библиотек, что необходимо знать разработчику#ios #android #mobile #video
Akkurate - библиотека валидации, использующая выразительные возможности Kotlin. Не нужно 30+ аннотаций или сложных ограничений, пишите код проверки на Kotlin с помощью красивого декларативного API.
Разработанный с нуля для обработки сложной бизнес-логики, Akkurate призван помочь вам писать качественный и поддерживаемый код валидации.
Akkurate на GitHub: https://github.com/nesk/akkurate
Платформа: Android
⭐️: 319
Разработанный с нуля для обработки сложной бизнес-логики, Akkurate призван помочь вам писать качественный и поддерживаемый код валидации.
Akkurate на GitHub: https://github.com/nesk/akkurate
Платформа: Android
⭐️: 319
Дебаг на максимум: секретные настройки Xcode, которые должен знать каждый разработчик
Я поделюсь, как пофиксить отрисовку. Вам понадобятся знания основ Swift, CPU, GPU (про них поговорим) и немного юмора. Пройдёмся по примерам багов отображения на iPhone 16 Pro.
Примеры будем смотреть на картинках с красным мотоциклом. Красный байк был мечтой айосеров-старожилов в Альфе и даже стал локальным мемом. На собеседованиях мы часто спрашиваем, есть ли у кандидата красный мотоцикл (если да — это идеальный мэтч).
Статья: https://habr.com/ru/companies/alfa/articles/858706/
Платформа: iOS
Я поделюсь, как пофиксить отрисовку. Вам понадобятся знания основ Swift, CPU, GPU (про них поговорим) и немного юмора. Пройдёмся по примерам багов отображения на iPhone 16 Pro.
Примеры будем смотреть на картинках с красным мотоциклом. Красный байк был мечтой айосеров-старожилов в Альфе и даже стал локальным мемом. На собеседованиях мы часто спрашиваем, есть ли у кандидата красный мотоцикл (если да — это идеальный мэтч).
Статья: https://habr.com/ru/companies/alfa/articles/858706/
Платформа: iOS
Работа с CoordinatorLayout: шапочный разбор
В этой статье я поделюсь опытом по реализации двух версий шапки на главном экране приложения Avito.
Реализации фичей очень похожи, поэтому в своем рассказе я остановлюсь на второй версии. Эта статья будет особенно полезна разработчикам, которые хотят познакомиться с CoordinatorLayout и научиться делать похожие задачки с нетривиальным взаимодействием view между собой. Да, тема не нова, но, тем не менее, она не теряет своей актуальности! Итак, обо всем по порядку.
Статья: https://habr.com/ru/companies/avito/articles/859692/
Платформа: Android
В этой статье я поделюсь опытом по реализации двух версий шапки на главном экране приложения Avito.
Реализации фичей очень похожи, поэтому в своем рассказе я остановлюсь на второй версии. Эта статья будет особенно полезна разработчикам, которые хотят познакомиться с CoordinatorLayout и научиться делать похожие задачки с нетривиальным взаимодействием view между собой. Да, тема не нова, но, тем не менее, она не теряет своей актуальности! Итак, обо всем по порядку.
Статья: https://habr.com/ru/companies/avito/articles/859692/
Платформа: Android
Используйте транзакции вместо сохранения в SwiftData и Core Data
Обеспечение согласованности и целостности данных имеет решающее значение в операциях сохранения данных. Фреймворк SwiftData вводит метод
Статья: https://apptractor.ru/info/articles/ispolzuyte-tranzaktsiy-vmesto-sohraneniya-v-swiftdata-i-core-data.html
Платформа: iOS
Обеспечение согласованности и целостности данных имеет решающее значение в операциях сохранения данных. Фреймворк SwiftData вводит метод
transaction в ModelContext, предоставляя разработчикам более элегантный способ организации и управления операциями с данными. В этой статье мы рассмотрим, как использовать концепцию транзакций для создания более надежных и эффективных операций сохранения данных.Статья: https://apptractor.ru/info/articles/ispolzuyte-tranzaktsiy-vmesto-sohraneniya-v-swiftdata-i-core-data.html
Платформа: iOS
This media is not supported in your browser
VIEW IN TELEGRAM
LazyPager for SwiftUI - плавный, с ленивой загрузкой, панорамированием, масштабированием и возможностью отказа от жестов просмотрщик для SwiftUI.
Цель этой библиотеки - предоставить простой интерфейс SwiftUI для плавного и бесшовного просмотра контента. В отличие от других пейджеров для SwiftUI - этот построен поверх UIKit API, раскрывая возможности, которые еще не доступны в SwiftUI.
Фичи: ленивая загрузка, показ любого контента, не только изображений, горизонтальная и вертикальная прокрутка, увеличение и уменьшение, двойной тап для зума, работа с .ignoresSafeArea() для действительно полноэкранного просмотра, собятия нажатий обрабатываются внутри, настройки.
LazyPager for SwiftUI на GitHub: https://github.com/gh123man/SwiftUI-LazyPager
Платформа: iOS
⭐️: 169
Цель этой библиотеки - предоставить простой интерфейс SwiftUI для плавного и бесшовного просмотра контента. В отличие от других пейджеров для SwiftUI - этот построен поверх UIKit API, раскрывая возможности, которые еще не доступны в SwiftUI.
Фичи: ленивая загрузка, показ любого контента, не только изображений, горизонтальная и вертикальная прокрутка, увеличение и уменьшение, двойной тап для зума, работа с .ignoresSafeArea() для действительно полноэкранного просмотра, собятия нажатий обрабатываются внутри, настройки.
LazyPager for SwiftUI на GitHub: https://github.com/gh123man/SwiftUI-LazyPager
Платформа: iOS
⭐️: 169
🔥2
Tracer спустя год: новые фичи и возможности инструмента для аналитики ошибок в мобильных приложениях
Tracer — модульный инструмент для аналитики ошибок в мобильных приложениях от OK.Tech, который мы представили год назад. За это время в Tracer зарегистрировалось более 1500 организаций и 5000 пользователей. Сейчас решение обрабатывает более 1 млрд событий в день и обслуживает приложения, которые имеют суммарный DAU в 20 млн пользователей. Опыт наших клиентов показывает, что Tracer успешно справляется с поставленными задачами, но мы всё равно не останавливаемся на достигнутом.
Меня зовут Кирилл Попов. Я руководитель направления Android-разработки в ОК. В этой статье я расскажу, какие возможности получил инструмент за последний год, и что мы планируем реализовывать в перспективе.
Статья: https://habr.com/ru/companies/odnoklassniki/articles/861044/
Платформа: разработка
Tracer — модульный инструмент для аналитики ошибок в мобильных приложениях от OK.Tech, который мы представили год назад. За это время в Tracer зарегистрировалось более 1500 организаций и 5000 пользователей. Сейчас решение обрабатывает более 1 млрд событий в день и обслуживает приложения, которые имеют суммарный DAU в 20 млн пользователей. Опыт наших клиентов показывает, что Tracer успешно справляется с поставленными задачами, но мы всё равно не останавливаемся на достигнутом.
Меня зовут Кирилл Попов. Я руководитель направления Android-разработки в ОК. В этой статье я расскажу, какие возможности получил инструмент за последний год, и что мы планируем реализовывать в перспективе.
Статья: https://habr.com/ru/companies/odnoklassniki/articles/861044/
Платформа: разработка
❤3
Легаси шмегаси
В большинстве компаний полно legacy систем. Некомпетентные программисты создают их и оставляют беспорядок следующему человеку. У нового счастливчика не хватает моральных принципов, чтобы исправить беспорядок, поэтому он переписывает все заново, и цикл повторяется.
Вы можете разорвать этот цикл; вы можете позаботиться о том, чтобы не создавать унаследованные системы и делегировать те, которые вы нашли. Благодаря этому вы станете лучшим инженером, а рынок признает вас как человека, который решает проблемы, а не создает их. Ваша репутация вырастет, и вы будете достойно вознаграждены.
Статья: https://apptractor.ru/info/articles/legasi-shmegasi.html
Платформа: разработка
В большинстве компаний полно legacy систем. Некомпетентные программисты создают их и оставляют беспорядок следующему человеку. У нового счастливчика не хватает моральных принципов, чтобы исправить беспорядок, поэтому он переписывает все заново, и цикл повторяется.
Вы можете разорвать этот цикл; вы можете позаботиться о том, чтобы не создавать унаследованные системы и делегировать те, которые вы нашли. Благодаря этому вы станете лучшим инженером, а рынок признает вас как человека, который решает проблемы, а не создает их. Ваша репутация вырастет, и вы будете достойно вознаграждены.
Статья: https://apptractor.ru/info/articles/legasi-shmegasi.html
Платформа: разработка
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Constraints Explorer - легковесный инструмент, помогающий понять и отладить, как ограничения компоновки (layout constraints) в Compose влияют на ваши композабл. Он предназначен для использования в предварительных просмотрах и позволяет настраивать ограничения в интерактивном режиме.
Constraints Explorer на GitHub: https://github.com/zach-klippenstein/constraints-explorer
Платформа: Android
⭐️: 49
Constraints Explorer на GitHub: https://github.com/zach-klippenstein/constraints-explorer
Платформа: Android
⭐️: 49
❤1
Кросс-платформенное тестирование мобильных приложений: особенности, инструменты и решения
В современном мире без мобильных приложений никуда. Их стабильная и правильная работа требует особого подхода к тестированию, особенно когда речь идёт о кросс‑платформенных приложениях, работающих в iOS и Android. В этой статье я поделюсь своим опытом и трудностями, которые могут встретиться в процессе тестирования приложений в упомянутых ОС.
Статья: https://habr.com/ru/companies/domclick/articles/859546/
Платформа: тестирование
В современном мире без мобильных приложений никуда. Их стабильная и правильная работа требует особого подхода к тестированию, особенно когда речь идёт о кросс‑платформенных приложениях, работающих в iOS и Android. В этой статье я поделюсь своим опытом и трудностями, которые могут встретиться в процессе тестирования приложений в упомянутых ОС.
Статья: https://habr.com/ru/companies/domclick/articles/859546/
Платформа: тестирование
❤1
Асинхронность в iOS: как ускорить корпоративные приложения и не сломать мозг разработчика
Если ваше приложение не отвечает мгновенно на действия пользователя, то в голове у него сразу зажигается красный флаг: «Это медленно. Это неудобно. Может, удалить?». В корпоративных приложениях, где важна каждая секунда, это недопустимо.
В этой статье мы поговорим о том, как организовать асинхронную работу в iOS-приложениях. Разберём подходы от старой доброй GCD до современной магии Swift Concurrency и покажем, как они помогают ускорить приложение без лишнего хаоса в коде.
Статья: https://habr.com/ru/articles/861342/
Платформа: iOS
Если ваше приложение не отвечает мгновенно на действия пользователя, то в голове у него сразу зажигается красный флаг: «Это медленно. Это неудобно. Может, удалить?». В корпоративных приложениях, где важна каждая секунда, это недопустимо.
В этой статье мы поговорим о том, как организовать асинхронную работу в iOS-приложениях. Разберём подходы от старой доброй GCD до современной магии Swift Concurrency и покажем, как они помогают ускорить приложение без лишнего хаоса в коде.
Статья: https://habr.com/ru/articles/861342/
Платформа: iOS
Полное руководство по написанию чистого кода Jetpack Compose
Это руководство призвано помочь разработчикам освоить лучшие практики Jetpack Compose, обеспечив правильное наименование, структуру и управление композитными функциями.
В нем рассматриваются такие ключевые принципы, как правильное использование модификаторов, важность компонентов без состояния и контролируемых компонентов, а также эффективная обработка состояния путем его поднятия.
Следуя этим рекомендациям, разработчики смогут создавать модульные, поддерживаемые и производительные пользовательские интерфейсы, в полной мере использующие возможности декларативной природы Compose.
Статья: https://apptractor.ru/info/articles/polnoe-rukovodstvo-po-napisaniyu-chistogo-koda-jetpack-compose.html
Платформа: Android
Это руководство призвано помочь разработчикам освоить лучшие практики Jetpack Compose, обеспечив правильное наименование, структуру и управление композитными функциями.
В нем рассматриваются такие ключевые принципы, как правильное использование модификаторов, важность компонентов без состояния и контролируемых компонентов, а также эффективная обработка состояния путем его поднятия.
Следуя этим рекомендациям, разработчики смогут создавать модульные, поддерживаемые и производительные пользовательские интерфейсы, в полной мере использующие возможности декларативной природы Compose.
Статья: https://apptractor.ru/info/articles/polnoe-rukovodstvo-po-napisaniyu-chistogo-koda-jetpack-compose.html
Платформа: Android
❤1
Делаем поисковые подсказки в SwiftU
Модификатор searchSuggestions(_:) в SwiftUI — это мощная функция, которая улучшает работу поиска в приложениях для iOS. В сочетании с отслеживанием недавних поисковых запросов он создает интуитивно понятный интерфейс, который помогает пользователям быстро найти то, что они ищут, и легко вернуться к ранее просмотренным элементам.
Давайте создадим приложение для каталога Apple Products, которое продемонстрирует возможности поиска в SwiftUI. Мы реализуем интеллектуальную систему поиска, которая не только фильтрует товары в режиме реального времени, но и предоставляет предложения по поиску, а также отслеживает недавно просмотренные товары.
Статья: https://apptractor.ru/info/articles/delaem-poiskovye-podskazki-v-swiftui.html
Платформа: iOS
Модификатор searchSuggestions(_:) в SwiftUI — это мощная функция, которая улучшает работу поиска в приложениях для iOS. В сочетании с отслеживанием недавних поисковых запросов он создает интуитивно понятный интерфейс, который помогает пользователям быстро найти то, что они ищут, и легко вернуться к ранее просмотренным элементам.
Давайте создадим приложение для каталога Apple Products, которое продемонстрирует возможности поиска в SwiftUI. Мы реализуем интеллектуальную систему поиска, которая не только фильтрует товары в режиме реального времени, но и предоставляет предложения по поиску, а также отслеживает недавно просмотренные товары.
Статья: https://apptractor.ru/info/articles/delaem-poiskovye-podskazki-v-swiftui.html
Платформа: iOS