RouterNavigation: практический подход к упрощению навигации в iOS
Статья предлагает эффективный метод управления навигацией в iOS-приложениях. Автор вводит концепцию "RouterNavigation", направленную на упрощение и структурирование навигационных процессов, что особенно актуально для крупных проектов с множеством экранов и сложными переходами.
В статье рассматриваются ключевые концепции, такие как маршрутизация (routing), разделение ответственности и инверсия управления. Предлагаемый подход подразумевает использование роутера для управления переходами между экранами, что позволяет отделить логику навигации от пользовательского интерфейса. Это способствует повышению модульности и упрощает тестирование компонентов.
Для iOS-разработчиков данный подход может быть полезен тем, что он обеспечивает более чистую и поддерживаемую архитектуру приложения. Использование роутера позволяет централизовать управление навигацией, снижая связанность между компонентами и облегчая внесение изменений в навигационную логику без необходимости модификации отдельных экранов. Это особенно важно при масштабировании приложений и работе в больших командах.
Статья: https://medium.com/@francescostabile/routernavigation-a-practical-approach-to-simplify-ios-navigation-2e6aca4a84a0
Платформа: iOS
Статья предлагает эффективный метод управления навигацией в iOS-приложениях. Автор вводит концепцию "RouterNavigation", направленную на упрощение и структурирование навигационных процессов, что особенно актуально для крупных проектов с множеством экранов и сложными переходами.
В статье рассматриваются ключевые концепции, такие как маршрутизация (routing), разделение ответственности и инверсия управления. Предлагаемый подход подразумевает использование роутера для управления переходами между экранами, что позволяет отделить логику навигации от пользовательского интерфейса. Это способствует повышению модульности и упрощает тестирование компонентов.
Для iOS-разработчиков данный подход может быть полезен тем, что он обеспечивает более чистую и поддерживаемую архитектуру приложения. Использование роутера позволяет централизовать управление навигацией, снижая связанность между компонентами и облегчая внесение изменений в навигационную логику без необходимости модификации отдельных экранов. Это особенно важно при масштабировании приложений и работе в больших командах.
Статья: https://medium.com/@francescostabile/routernavigation-a-practical-approach-to-simplify-ios-navigation-2e6aca4a84a0
Платформа: iOS
👍1
ComposableMemes - приложение Compose Multiplatform для просмотра и создания мемов. Есть коллекция мемов, есть продвинутый редактор для их создания, возможность сохранить свое творение на устройстве или поделиться им с миром, поддержка Android, iOS & Web (WASM).
ComposableMemes на GitHub: https://github.com/mvk059/ComposableMemes
Платформа: Android/кроссплатформа
⭐️: 12
ComposableMemes на GitHub: https://github.com/mvk059/ComposableMemes
Платформа: Android/кроссплатформа
⭐️: 12
🔥2🥰1😁1
Видео и подкасты за неделю на @AppFiles
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Вспоминаем, что было год назад:
•
•
•
•
•
•
•
(iOS Ru) Как мы адаптировали проект к Strict Concurrency Checking — Swift 6•
(iOS En) Animated OTP Code TextField | SwiftUI•
(iOS En) Manual View Orientation Control | Orientation Lock | SwiftUI•
(iOS En) The easiest way to use SwiftUI in a UIKit app•
(iOS En) Reorder & Move Cards Between Sections with Drag & Drop in SwiftUI + Core Data•
(iOS En) SceneStorage•
(And En) Integrate Google Pay with Jetpack Compose on Android•
(And En) Dagger-Hilt vs. Koin vs. Manual Dependency Injection•
(And En) Efficient IO With Buffered Reading & Writing In Kotlin•
(And En) Arrow for Everyone•
(Crs En) Multi-Module KMP: The Ultimate Guide to Resource Sharing•
(Dev Ru) Проектирование и запуск разработки•
(Dev Ru) Как не уронить прод: Даниэль Халиулин про стабильный софт, качество и разработку•
(Dev En) LLM Course – Build a Semantic Book Recommender (Python, OpenAI, LangChain, Gradio)•
(Mrk Ru) Тренды маркетинга мобильных приложений в 2025 годуВспоминаем, что было год назад:
•
(iOS Ru) Как избежать утечек памяти при использовании Task, Combine, CurrentValueSubject и AsyncStream•
(And Ru) Построение multi-app архитектуры•
(And Ru) Старт карьеры в Android-разработке до 18 лет•
(And Ru) Compose Navigation Codelab: проходим кодлаб от Google•
(Dev Ru) Найти работу в кризис: джун, мидл и сеньёр•
(Dev Ru) Кем вы видите себя в компании через 5 лет? Отвечает Head of Mobile❤1
Swift продолжает набирать популярность как кроссплатформенный язык, поддерживающий самые разные сценарии использования, с поддержкой различных встраиваемых устройств, форм-факторов, охватывающих от носимых устройств до серверов, и широкого спектра операционных систем. По мере развития Swift целесообразно инвестировать в соответствующие кросс-платформенные инструменты сборки, которые обеспечивают мощный, последовательный и гибкий опыт во всей экосистеме.
В качестве основополагающего шага в этой новой главе технологий сборки Swift, сегодня Apple открыла доступ к Swift Build, мощному и расширяемому механизму сборки, который предоставляет набор правил сборки для создания проектов Swift. Swift Build - это движок, используемый в Xcode, который поддерживает миллионы приложений в App Store, а также внутренний процесс сборки собственных операционных систем Apple. В репозиторий с открытым исходным кодом также включена поддержка таргетинга для Linux и Windows.
Swift Build - это высокоуровневая система сборки, основанная на
Swift Build предоставляет такие возможности, как:
• Надежная интеграция с компилятором Swift для надежной и эффективной координации сборки Swift-проектов
• Поддержка широкого спектра типов продуктов, включая библиотеки, инструменты командной строки и GUI-приложения с расширенными опциями конфигурации сборки
• Оптимизация графа сборки, позволяющая максимально использовать параллелизм при сборке Swift- и C-кода
Swift Build на GitHub: https://github.com/swiftlang/swift-build
Платформа: iOS
⭐️: 990
В качестве основополагающего шага в этой новой главе технологий сборки Swift, сегодня Apple открыла доступ к Swift Build, мощному и расширяемому механизму сборки, который предоставляет набор правил сборки для создания проектов Swift. Swift Build - это движок, используемый в Xcode, который поддерживает миллионы приложений в App Store, а также внутренний процесс сборки собственных операционных систем Apple. В репозиторий с открытым исходным кодом также включена поддержка таргетинга для Linux и Windows.
Swift Build - это высокоуровневая система сборки, основанная на
llbuild с расширенной поддержкой Swift. Она используется в Xcode для сборки проектов Xcode и Swift Package Manager, а также в Swift Playground. Swift Build предоставляет такие возможности, как:
• Надежная интеграция с компилятором Swift для надежной и эффективной координации сборки Swift-проектов
• Поддержка широкого спектра типов продуктов, включая библиотеки, инструменты командной строки и GUI-приложения с расширенными опциями конфигурации сборки
• Оптимизация графа сборки, позволяющая максимально использовать параллелизм при сборке Swift- и C-кода
Swift Build на GitHub: https://github.com/swiftlang/swift-build
Платформа: iOS
⭐️: 990
❤1
Потоки под капотом: как работают многопоточность и синхронизация
В решении рабочих задач и прохождении собеседований часто затрагиваются вопросы, связанные с многопоточностью и самими потоками, а также с необходимостью их синхронизации. Однако что происходит за кулисами этих процессов? Как функционирует механизм потоков изнутри?
В данной статье мы рассмотрим детали этой темы, а именно:
• проанализируем работу потоков;
• выявим скрытые механизмы, обеспечивающие их функционирование;
• определим, какую пользу практикующим iOS‑разработчикам приносит понимание внутреннего устройства потоков.
Статья: https://habr.com/ru/companies/kts/articles/875096/
Платформа: iOS
В решении рабочих задач и прохождении собеседований часто затрагиваются вопросы, связанные с многопоточностью и самими потоками, а также с необходимостью их синхронизации. Однако что происходит за кулисами этих процессов? Как функционирует механизм потоков изнутри?
В данной статье мы рассмотрим детали этой темы, а именно:
• проанализируем работу потоков;
• выявим скрытые механизмы, обеспечивающие их функционирование;
• определим, какую пользу практикующим iOS‑разработчикам приносит понимание внутреннего устройства потоков.
Статья: https://habr.com/ru/companies/kts/articles/875096/
Платформа: iOS
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Swipeable Cards - легкая современная библиотека для Android, обеспечивающая плавное пролистывание карточек в стиле Tinder с помощью Jetpack Compose.
Фичи:
• Плавная, основанная на физике анимация пролистывания
• Полностью настраиваемое содержимое карточек
• Свайпы вправо и влево
• Эффект сложенных карт
• Интерактивное управление жестами
• Простая интеграция
• Легкий вес с минимальным количеством зависимостей
• Создано с помощью Jetpack Compose
Compose Swipeable Cards на GitHub: https://github.com/smartword-app/compose-swipeable-cards
Платформа: Android
⭐️: 28
Фичи:
• Плавная, основанная на физике анимация пролистывания
• Полностью настраиваемое содержимое карточек
• Свайпы вправо и влево
• Эффект сложенных карт
• Интерактивное управление жестами
• Простая интеграция
• Легкий вес с минимальным количеством зависимостей
• Создано с помощью Jetpack Compose
Compose Swipeable Cards на GitHub: https://github.com/smartword-app/compose-swipeable-cards
Платформа: Android
⭐️: 28
👍1
Плагины: автоматизация разработки в продуктах JetBrains (на примере Android Studio)
Плагины для продуктов JetBrains, включая Android Studio, позволяют расширять функциональность IDE, улучшая процесс написания, отладки и тестирования кода. Они помогают автоматизировать рутинные задачи, интегрировать сторонние инструменты и адаптировать среду под индивидуальные потребности разработчика. В этой статье мы рассмотрим, как плагины упрощают работу в Android Studio, ускоряют разработку и делают процесс кодинга более продуктивным.
Так, например, можно написать плагин для автоматического форматирования и инспекции кода, для генерации шаблонов, таких как геттеры, сеттеры, шаблоны классов и XML‑разметки и тд. Возможностей и идей много, много всего уже реализовано, но не все уже созданное может подойти именно под ваши задачи и стиль кода, так что имеет смысл уметь писать собственные плагины.
Статья: https://habr.com/ru/articles/878870/
Платформа: Android
Плагины для продуктов JetBrains, включая Android Studio, позволяют расширять функциональность IDE, улучшая процесс написания, отладки и тестирования кода. Они помогают автоматизировать рутинные задачи, интегрировать сторонние инструменты и адаптировать среду под индивидуальные потребности разработчика. В этой статье мы рассмотрим, как плагины упрощают работу в Android Studio, ускоряют разработку и делают процесс кодинга более продуктивным.
Так, например, можно написать плагин для автоматического форматирования и инспекции кода, для генерации шаблонов, таких как геттеры, сеттеры, шаблоны классов и XML‑разметки и тд. Возможностей и идей много, много всего уже реализовано, но не все уже созданное может подойти именно под ваши задачи и стиль кода, так что имеет смысл уметь писать собственные плагины.
Статья: https://habr.com/ru/articles/878870/
Платформа: Android
❤2
Рисуем карты с помощью Swift Charts
Артем Новичков, iOS-разработчик в Welltory, поделился интересной функцией Swift Charts — оказывается, с их помощью можно рисовать карты.
Статья: https://apptractor.ru/info/articles/risuem-karty-s-pomoschyu-swift-charts.html
Платформа: iOS
Артем Новичков, iOS-разработчик в Welltory, поделился интересной функцией Swift Charts — оказывается, с их помощью можно рисовать карты.
Конечный результат не идеален, но я обнаружил много интересных и неочевидных моментов, которые могут быть полезны в будущем. У Swift Charts большой потенциал. Диаграммы могут быть интерактивными; мы можем усовершенствовать приведенный выше пример и добавить выбор региона. Более того, Swift Charts поддерживает доступность, и мы можем добавить VoiceOver, чтобы сделать карту более доступной.
Статья: https://apptractor.ru/info/articles/risuem-karty-s-pomoschyu-swift-charts.html
Платформа: iOS
👍2😱1
SymbolPicker - простой и кроссплатформенный выбор символов SF Symbols для SwiftUI. Поддерживает iOS, macOS, watchOS, tvOS и даже visionOS.
SymbolPicker на GitHub: https://github.com/xnth97/SymbolPicker
Платформа: iOS
⭐️: 181
SymbolPicker на GitHub: https://github.com/xnth97/SymbolPicker
Платформа: iOS
⭐️: 181
👍2
Что Swift Build означает для экосистемы Swift
Это шаг, который стоит отметить. Каждый новый компонент, который Apple делает открытым — это возможность для появления различных идей и улучшения всей экосистемы. Так что спасибо всем, кто сделал это возможным. Мы рады этому и с нетерпением ждем, что ждет Swift в будущем.
Статья: https://apptractor.ru/info/articles/chto-swift-build-oznachaet-dlya-ekosistemy-swift.html
Платформа: iOS
Это шаг, который стоит отметить. Каждый новый компонент, который Apple делает открытым — это возможность для появления различных идей и улучшения всей экосистемы. Так что спасибо всем, кто сделал это возможным. Мы рады этому и с нетерпением ждем, что ждет Swift в будущем.
Статья: https://apptractor.ru/info/articles/chto-swift-build-oznachaet-dlya-ekosistemy-swift.html
Платформа: iOS
👍1
Системный дизайн Android-приложения DeepSeek
В статье автор подробно описывает клиент-серверную архитектуру приложения DeepSeek, а также его возможности для работы в офлайн-режиме. Статья предоставляет высокоуровневый обзор системы, что может быть полезно для разработчиков, стремящихся понять эффективные подходы к проектированию Android-приложений.
Статья: https://medium.com/@YodgorbekKomilo/system-design-of-deepseek-android-app-e5cd6afac4dc
Платформа: Android
В статье автор подробно описывает клиент-серверную архитектуру приложения DeepSeek, а также его возможности для работы в офлайн-режиме. Статья предоставляет высокоуровневый обзор системы, что может быть полезно для разработчиков, стремящихся понять эффективные подходы к проектированию Android-приложений.
Статья: https://medium.com/@YodgorbekKomilo/system-design-of-deepseek-android-app-e5cd6afac4dc
Платформа: Android
🔥2
Рисуем график сна в Compose
Вчера путешествовали с Swift Charts, сегодня спим с Compose. В этой статье приведено руководство по созданию собственного графика сна, подобного тому, который можно найти в приложении Fitbit.
Статья: https://apptractor.ru/info/articles/risuem-grafik-sna-v-compose.html
Платформа: Android
Вчера путешествовали с Swift Charts, сегодня спим с Compose. В этой статье приведено руководство по созданию собственного графика сна, подобного тому, который можно найти в приложении Fitbit.
Статья: https://apptractor.ru/info/articles/risuem-grafik-sna-v-compose.html
Платформа: Android
👍3
Mihon — это бесплатное и открытое приложение для чтения манги, вебтунов и комиксов на устройствах Android. Оно является преемником популярного приложения Tachiyomi и предлагает множество фич для удобного чтения и управления вашей библиотекой.
Mihon на GitHub: https://github.com/mihonapp/mihon
Платформа: Android
⭐️: 11.7K
Mihon на GitHub: https://github.com/mihonapp/mihon
Платформа: Android
⭐️: 11.7K
❤1
Sheet с автоматическим подсчётом высоты и поддержкой iOS 15
В этой статье я расскажу о том, как создать нативный
Статья: https://habr.com/ru/articles/879854/
Платформа: iOS
В этой статье я расскажу о том, как создать нативный
Sheet, который автоматически подсчитывает свою высоту в зависимости от котента (SwiftUI View). Задача была в том, чтобы решение было c минимумом костылей и сохраняло поддержку iOS 15. Готового похожего решения мне не удалось найти, поэтому решил создать свой вариант.Статья: https://habr.com/ru/articles/879854/
Платформа: iOS
💩1
Transtation - это сочетание "Translate" и "Station", простое в использовании и мощное приложение для перевода для Android/Desktop(JVM), основанное на Kotlin Multiplatform + Compose Multiplatform.
Реализует одновременный перевод с использованием нескольких движков (Bing, Google, Baidu, Tencent), может использовать для перевода несколько передовых больших языковых моделей (LLM), таких как ChatGPT, GPT-4, ChatGLM, Qwen (в том числе в режиме общения), поддерживает плагины, загрузки, перевод изображений, перевод экрана и многое другое.
Внутри Kotlin Multiplatform + Compose Multiplatform + MVVM + Kotlin Coroutine + Flow + SqlDelight, многомодульный дизайн.
Transtation на GitHub: https://github.com/FunnySaltyFish/Transtation-KMP
Платформа: Android/кроссплатформа
⭐️: 99
Реализует одновременный перевод с использованием нескольких движков (Bing, Google, Baidu, Tencent), может использовать для перевода несколько передовых больших языковых моделей (LLM), таких как ChatGPT, GPT-4, ChatGLM, Qwen (в том числе в режиме общения), поддерживает плагины, загрузки, перевод изображений, перевод экрана и многое другое.
Внутри Kotlin Multiplatform + Compose Multiplatform + MVVM + Kotlin Coroutine + Flow + SqlDelight, многомодульный дизайн.
Transtation на GitHub: https://github.com/FunnySaltyFish/Transtation-KMP
Платформа: Android/кроссплатформа
⭐️: 99
👍2
8 советов по производительности Swift, которые я узнал после многих лет программирования
Я хотел поделиться этими советами по производительности Swift, которые, как мне кажется, должны быть известны каждому, поскольку мне потребовалось много усилий и ошибок, чтобы научиться этому. Итак, вот восемь советов по производительности, которые реально изменили мои проекты:
1. Отдавайте предпочтение структурам, а не классам
2. Используйте ленивые свойства для ресурсоемких инициализаций
3. Оптимизация массивов путем предварительного распределения объема
4. Используйте параллелизм Swift с помощью Async/Await
5. Сведите к минимуму использование Optional в коде, критичном к производительности
6. Используйте типы данных для обеспечения потокобезопасности
7. Оптимизируйте операции со строками с помощью String API
8. Профилирование и бенчмаркинг с помощью Xcode Instr8 советов по производительности Swift, которые я узнал после многих лет программирования
Статья: https://apptractor.ru/info/articles/8-sovetov-po-proizvoditelnosti-swift-kotorye-ya-uznal-posle-mnogih-let-programmirovaniya.html
Платформа: iOS
Я хотел поделиться этими советами по производительности Swift, которые, как мне кажется, должны быть известны каждому, поскольку мне потребовалось много усилий и ошибок, чтобы научиться этому. Итак, вот восемь советов по производительности, которые реально изменили мои проекты:
1. Отдавайте предпочтение структурам, а не классам
2. Используйте ленивые свойства для ресурсоемких инициализаций
3. Оптимизация массивов путем предварительного распределения объема
4. Используйте параллелизм Swift с помощью Async/Await
5. Сведите к минимуму использование Optional в коде, критичном к производительности
6. Используйте типы данных для обеспечения потокобезопасности
7. Оптимизируйте операции со строками с помощью String API
8. Профилирование и бенчмаркинг с помощью Xcode Instr8 советов по производительности Swift, которые я узнал после многих лет программирования
Статья: https://apptractor.ru/info/articles/8-sovetov-po-proizvoditelnosti-swift-kotorye-ya-uznal-posle-mnogih-let-programmirovaniya.html
Платформа: iOS
👍2🤔2
Пишем простой плагин для Android Studio
В настоящий момент для разработки используем Flutter и в наших проектах стараемся придерживаться принципов чистой архитектуры типа feature-first. Из-за этого приходится создавать множество папок и файлов по одному и тому же шаблону, поэтому в целях ускорения разработки было принято решение по написанию простого плагина для Android Studio.
Хотелось бы предупредить, что это мой первый опыт в создании плагинов, и я не претендую на роль эксперта, но возможно кто-то находится в поисках простой реализации плагина, и сможет почерпнуть для себя что-то полезное.
Статья: https://habr.com/ru/articles/880160/
Платформа: Android
В настоящий момент для разработки используем Flutter и в наших проектах стараемся придерживаться принципов чистой архитектуры типа feature-first. Из-за этого приходится создавать множество папок и файлов по одному и тому же шаблону, поэтому в целях ускорения разработки было принято решение по написанию простого плагина для Android Studio.
Хотелось бы предупредить, что это мой первый опыт в создании плагинов, и я не претендую на роль эксперта, но возможно кто-то находится в поисках простой реализации плагина, и сможет почерпнуть для себя что-то полезное.
Статья: https://habr.com/ru/articles/880160/
Платформа: Android
❤1
Видео и подкасты за неделю на @AppFiles
•
•
•
•
•
•
•
•
•
•
Что было год назад:
•
•
•
•
•
(iOS En) Swipe Actions For ScrollViews | SwiftUI •
(iOS En) self vs. Self in Swift – Everything You Need to Know!•
(iOS En) SwiftUI Custom Alerts | iOS/iPadOS 17 & 18•
(And Ru) Реактивный велосипед для SDK•
(And En) When to Use a Single Activity Architecture On Android?•
(And En) How to Get Started With Firebase Test Lab In Android Studio•
(And En) Guards in Kotlin 2.1•
(Dev Ru) Информационная безопасность Ozon — Кирилл Мякишев•
(Dev En) AI Engineer Roadmap – How to Learn AI in 2025•
(Dsg En) Designing the Perfect Side Menu in Figma - For BeginnersЧто было год назад:
•
(iOS Ru) Как поддерживать недельный релизный цикл и ничего не забывать•
(And Ru) Мобильные игры в продуктовых приложениях•
(And Ru) Разбор кода приложения по доставке пиццы•
(And Ru) Запускаем автотесты Android на EMCEEMantis - это библиотека для обрезки (кропа) изображений для iOS, написанная на Swift и обеспечивающая богатые возможности обрезки для вашего приложения для iOS/Mac. Поддерживает разные формы (в том числе кастомные), кнопку отмены.
Mantis на GitHub: https://github.com/guoyingtao/Mantis
Платформа: iOS
⭐️: 965
Mantis на GitHub: https://github.com/guoyingtao/Mantis
Платформа: iOS
⭐️: 965
👍1