Flare - фреймворк для работы с IAP
Flare — это современный и легковесный фреймворк на Swift, упрощающий работу со встроенными покупками и подписками. Построенный на базе StoreKit и StoreKit 2, он предоставляет чистый унифицированный API с поддержкой async/await и включает готовые UI-компоненты для бесшовной интеграции на всех платформах Apple.
Фичи:
• Полная поддержка покупок — расходуемые (consumable) и нерасходуемые (non-consumable) товары, а также подписки
• Промоакции — поддержка промо-предложений и вводных (introductory) предложений
• Современный Swift — использование async/await для чистого и читабельного кода
• StoreKit 1 и 2 — унифицированный API, поддерживающий обе версии StoreKit
• UI-компоненты — готовые представления на SwiftUI и UIKit для отображения продуктов
• Кроссплатформенность — совместимость с iOS, tvOS, watchOS, macOS и visionOS
• Тщательное тестирование — полное покрытие модульными (unit), интеграционными и snapshot-тестами
Flare на GitHub: https://github.com/space-code/flare
Платформа: iOS
⭐️: 68
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Flare — это современный и легковесный фреймворк на Swift, упрощающий работу со встроенными покупками и подписками. Построенный на базе StoreKit и StoreKit 2, он предоставляет чистый унифицированный API с поддержкой async/await и включает готовые UI-компоненты для бесшовной интеграции на всех платформах Apple.
Фичи:
• Полная поддержка покупок — расходуемые (consumable) и нерасходуемые (non-consumable) товары, а также подписки
• Промоакции — поддержка промо-предложений и вводных (introductory) предложений
• Современный Swift — использование async/await для чистого и читабельного кода
• StoreKit 1 и 2 — унифицированный API, поддерживающий обе версии StoreKit
• UI-компоненты — готовые представления на SwiftUI и UIKit для отображения продуктов
• Кроссплатформенность — совместимость с iOS, tvOS, watchOS, macOS и visionOS
• Тщательное тестирование — полное покрытие модульными (unit), интеграционными и snapshot-тестами
Flare на GitHub: https://github.com/space-code/flare
Платформа: iOS
⭐️: 68
Please open Telegram to view this post
VIEW IN TELEGRAM
Как R8 в два раза ускорил работу корутин Kotlin на Android
Когда команда Compose начала исследовать производительность, выяснилось, что корутины являются узким местом для многих операций, выполняемых вне композиции. Например, 80% времени, затрачиваемого на создание и обновление
Статья: https://apptractor.ru/info/articles/kak-r8-v-dva-raza-uskoril-rabotu-korutin-kotlin-na-android.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Когда команда Compose начала исследовать производительность, выяснилось, что корутины являются узким местом для многих операций, выполняемых вне композиции. Например, 80% времени, затрачиваемого на создание и обновление
Modifier.clickable, уходило на запуск и отмену внутренних корутин, обрабатывающих обновления InteractionSource. На основании этих наблюдений значительная часть первых работ по оптимизации была направлена на исключение корутин из стандартного пути выполнения и откладывание инициализации до момента, когда она действительно понадобится.Статья: https://apptractor.ru/info/articles/kak-r8-v-dva-raza-uskoril-rabotu-korutin-kotlin-na-android.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
TextKit - rich text редактор для Compose Multiplatform
TextKit — это редактор форматированного текста с поддержкой таблиц и верстки, предназначенный для многоплатформенной работы с Compose (Android, iOS, Desktop/JVM и Web — Wasm и JS). В комплект входят контейнер состояния
В отличие от редакторов, которые обрабатывают HTML или Markdown, TextKit сохраняет структурированный JSON-документ (тип: "doc" → блочные узлы → встроенные блоки с метками), поэтому стили, списки, ссылки и встроенные токены (упоминания, хэштеги) сохраняются в течение всего цикла загрузки → редактирования → экспорта. Когда вам нужно поделиться контентом, функции toHtml() и toMarkdown() генерируют эти форматы по запросу.
TextKit на GitHub: https://github.com/jjrodcast/TextKit
Платформа: Android/кроссплатформа
⭐️: 60
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
TextKit — это редактор форматированного текста с поддержкой таблиц и верстки, предназначенный для многоплатформенной работы с Compose (Android, iOS, Desktop/JVM и Web — Wasm и JS). В комплект входят контейнер состояния
TextKitState, готовые композабл редактора, панель форматирования, всплывающие окна для ссылок, выравнивание абзацев по левому краю, по центру, по правому краю и по ширине, а также универсальная система триггеров для упоминаний, хэштегов и команд через косую черту. TextKit также поддерживает встроенные блоки: изображения и другое содержимое, которое нельзя отрисовать напрямую, отображаются как кликабельные заполнители, а таблицы остаются полностью редактируемыми. Кроме того, движок предоставляет полноценную отмену и повтор действий с объединением последовательных операций, сериализацию и десериализацию без потери данных в документ JSON, похожий по структуре на формат ProseMirror, а также экспорт в HTML и Markdown в варианте GitHub.В отличие от редакторов, которые обрабатывают HTML или Markdown, TextKit сохраняет структурированный JSON-документ (тип: "doc" → блочные узлы → встроенные блоки с метками), поэтому стили, списки, ссылки и встроенные токены (упоминания, хэштеги) сохраняются в течение всего цикла загрузки → редактирования → экспорта. Когда вам нужно поделиться контентом, функции toHtml() и toMarkdown() генерируют эти форматы по запросу.
TextKit на GitHub: https://github.com/jjrodcast/TextKit
Платформа: Android/кроссплатформа
⭐️: 60
Please open Telegram to view this post
VIEW IN TELEGRAM
Публикуем iOS‑приложение без Мака и без Visa: пошаговый разбор
Собрать и опубликовать iOS-приложение без macOS нельзя — точка. Xcode, подпись, нотарификация, выгрузка в App Store Connect — всё это живёт только на маке. Флаттерщики и React Native-разработчики упираются в это на последнем шаге: код пишется где угодно, а
Для разработчика из РФ/СНГ к этому добавляются два специфических барьера:
Железо. Apple официально ушла, Mac — параллельный импорт. Гарантии Apple нет (гарантию обязан обеспечить продавец по закону о защите прав потребителей), цены зависят от того, где смотреть — подробнее в варианте 1.
Оплата. Российские карты не работают в зарубежных сервисах. MacStadium, MacinCloud, Codemagic, да и сам Apple Developer Program ($99/год) — всё требует работающую международную карту.
Разберём варианты по-честному, с ценами.
Статья: https://habr.com/ru/articles/1064144/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Собрать и опубликовать iOS-приложение без macOS нельзя — точка. Xcode, подпись, нотарификация, выгрузка в App Store Connect — всё это живёт только на маке. Флаттерщики и React Native-разработчики упираются в это на последнем шаге: код пишется где угодно, а
.ipa собирается только на технике Apple.Для разработчика из РФ/СНГ к этому добавляются два специфических барьера:
Железо. Apple официально ушла, Mac — параллельный импорт. Гарантии Apple нет (гарантию обязан обеспечить продавец по закону о защите прав потребителей), цены зависят от того, где смотреть — подробнее в варианте 1.
Оплата. Российские карты не работают в зарубежных сервисах. MacStadium, MacinCloud, Codemagic, да и сам Apple Developer Program ($99/год) — всё требует работающую международную карту.
Разберём варианты по-честному, с ценами.
Статья: https://habr.com/ru/articles/1064144/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
50 вопросов о System Design, ответы на которые должен знать каждый Senior iOS-разработчик: часть 4
Первая часть, про архитектуру приложения. Вторая про сетевой слой. Третья — локальное хранилище и Offline-First архитектура.
Производительность — один из самых простых критериев, по которым пользователи оценивают качество приложения.
Они могут не знать, какую архитектуру вы используете и соответствует ли ваш код принципам SOLID, но сразу заметят, если приложение долго запускается, дёргается при прокрутке, потребляет слишком много памяти или быстро разряжает аккумулятор.
Именно поэтому оптимизация производительности — одна из любимых тем на собеседованиях senior iOS-разработчиков.
Интервьюеры не ожидают, что вы выучите Instruments наизусть или дословно перескажете документацию Apple. Им нужны инженеры, способные находить узкие места, правильно расставлять приоритеты при оптимизации и принимать обоснованные компромиссные решения на основе реальных производственных сценариев.
В этой статье мы рассмотрим пять вопросов, которые часто встречаются на собеседованиях по архитектуре и системному проектированию iOS-приложений.
Статья: https://apptractor.ru/info/articles/50-voprosov-o-system-design-otvety-na-kotorye-dolzhen-znat-kazhdyy-senior-ios-razrabotchik-chast-4.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Первая часть, про архитектуру приложения. Вторая про сетевой слой. Третья — локальное хранилище и Offline-First архитектура.
Производительность — один из самых простых критериев, по которым пользователи оценивают качество приложения.
Они могут не знать, какую архитектуру вы используете и соответствует ли ваш код принципам SOLID, но сразу заметят, если приложение долго запускается, дёргается при прокрутке, потребляет слишком много памяти или быстро разряжает аккумулятор.
Именно поэтому оптимизация производительности — одна из любимых тем на собеседованиях senior iOS-разработчиков.
Интервьюеры не ожидают, что вы выучите Instruments наизусть или дословно перескажете документацию Apple. Им нужны инженеры, способные находить узкие места, правильно расставлять приоритеты при оптимизации и принимать обоснованные компромиссные решения на основе реальных производственных сценариев.
В этой статье мы рассмотрим пять вопросов, которые часто встречаются на собеседованиях по архитектуре и системному проектированию iOS-приложений.
Статья: https://apptractor.ru/info/articles/50-voprosov-o-system-design-otvety-na-kotorye-dolzhen-znat-kazhdyy-senior-ios-razrabotchik-chast-4.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Как DoorDash, Instacart и Uber Eats интегрировали LLM в поисковую выдачу тремя разными способами
За последние несколько лет три крупнейшие компании по доставке еды перестроили свои поисковые системы вокруг больших языковых моделей. DoorDash, Instacart и Uber Eats решали одну и ту же задачу: пытались понять намерение пользователя, когда он вводит запрос в строку поиска. Они также опирались примерно на одну и ту же исследовательскую базу. И всё же архитектуры, которые они внедрили, заметно отличаются друг от друга.
Это расхождение — один из самых интересных аспектов современной разработки с применением больших языковых моделей. Поняв, почему каждая компания пришла именно к своему решению, мы получим полезную модель мышления для интеграции искусственного интеллекта в любые производственные системы.
Статья: https://apptractor.ru/info/articles/kak-doordash-instacart-i-uber-eats-integrirovali-llm-v-poiskovuyu-vydachu-tremya-raznymi-sposobami.html
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
За последние несколько лет три крупнейшие компании по доставке еды перестроили свои поисковые системы вокруг больших языковых моделей. DoorDash, Instacart и Uber Eats решали одну и ту же задачу: пытались понять намерение пользователя, когда он вводит запрос в строку поиска. Они также опирались примерно на одну и ту же исследовательскую базу. И всё же архитектуры, которые они внедрили, заметно отличаются друг от друга.
Это расхождение — один из самых интересных аспектов современной разработки с применением больших языковых моделей. Поняв, почему каждая компания пришла именно к своему решению, мы получим полезную модель мышления для интеграции искусственного интеллекта в любые производственные системы.
Статья: https://apptractor.ru/info/articles/kak-doordash-instacart-i-uber-eats-integrirovali-llm-v-poiskovuyu-vydachu-tremya-raznymi-sposobami.html
Платформа: разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
xclocSmith - линтер и редактор Xcode String Catalogs
xclocSmith - линтер и редактор для каталога строк локализации Xcode. Он находит все проблемы с переводами, редактирует файлы .xcstrings, не разрушая структуру и данные, добавленные Xcode, и замыкает весь процесс: передаёт ИИ-модели точный список недостающих переводов, а затем проверяет полученный результат. Инструмент занимается только локализацией Xcode и ничем больше.
xclocSmith на GitHub: https://github.com/asutekku/xclocsmith
Платформа: iOS
⭐️: 1
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
xclocSmith - линтер и редактор для каталога строк локализации Xcode. Он находит все проблемы с переводами, редактирует файлы .xcstrings, не разрушая структуру и данные, добавленные Xcode, и замыкает весь процесс: передаёт ИИ-модели точный список недостающих переводов, а затем проверяет полученный результат. Инструмент занимается только локализацией Xcode и ничем больше.
xclocSmith на GitHub: https://github.com/asutekku/xclocsmith
Платформа: iOS
⭐️: 1
Please open Telegram to view this post
VIEW IN TELEGRAM
•
(iOS En) X App's New Scrollable Tabbar Using SwiftUI•
(iOS En) Instagram App's Minimizable Tab Bar Using SwiftUI•
(And Ru) Code Review эталонного Android приложения с AI фичами от Google•
(And En) •
(And En) •
(And En) 10 Behavioral Tips That Make You CRUSH Your Next Android Interview•
(And En) Moments When Things Go Wrong•
(And En) Breaking Frozen Frames: Phased Rendering for Feature Rich UIs•
(And En) Opinionated Ktor Services•
(And En) Kotlin as a Safety Net Type Driven Reliability in the Finance Industry•
(And En) Setting Kotlin Free with Native Tooling•
(And En) 10 Gradle Best Practices Every Kotlin Developer Should Know•
(And En) The 3 Jetpack Compose Phases Every Developer Should Understand•
(Crs En) Why I'm Not Much Using Compose Multiplatform Anymore•
(Dev Ru) AI в QA: почему инструмент без культуры не работает•
(Dev Ru) VLM против регресса: опыт создания AI-агента, тестирующего интерфейсы как человек•
(Dev Ru) Разработчик из Apple теперь в Яндексе: что отличается внутри•
(Dev Ru) Взгляд на будущее разработки•
(Mrk Ru) Как понять, что мобильная игра готова к масштабированию? Вся продуктовая аналитика на реальном кейсеПрошлогодние видео:
•
(iOS Ru) Почему Metal перестал быть страшным•
(iOS Ru) Локализация iOS-приложения за 1$ в 2024 году•
(And Ru) Нюансы работы Android Runtime в сравнении с HotSpot VM•
(And Ru) Как Google тайно изменил Android на глазах у всех: Project Mainline•
(Dev Ru) Алгоритмическая сессия на собеседовании (все собеседования)•
(Dev Ru) Автоматическая генерация верстки под Server-driven UI из макетов FigmaPlease open Telegram to view this post
VIEW IN TELEGRAM
YouTube
X App's New Scrollable Tabbar Using SwiftUI | Swipeable Tabs | Xcode 27
Hello Guys 🖐🖐🖐
In this video, I’ll demonstrate how to recreate the X/Twitter App's New Swipeable Tab bar using SwiftUI | Scrollable Tabs SwiftUI | SwiftUI Scroll Synchronised Tab bar | SwiftUI Animations | SwiftUI 2026 | iOS 27 | SwiftUI Xcode 27 | SwiftUI…
In this video, I’ll demonstrate how to recreate the X/Twitter App's New Swipeable Tab bar using SwiftUI | Scrollable Tabs SwiftUI | SwiftUI Scroll Synchronised Tab bar | SwiftUI Animations | SwiftUI 2026 | iOS 27 | SwiftUI Xcode 27 | SwiftUI…
Верификация Android разработчиков: что будет с устройствами в России
Прошлым летом Google объявил, что на Android телефоны можно будет устанавливать приложения только от проверенных разработчиков. В этой статье SafeMobile рассказывает, что узнали - по мнению авторов статьи, в ближайшее время серьёзных изменений не ожидается:
• устройства без сервисов Google вообще не участвуют в проверке;
• Россия не входит в первую волну;
• Google заявляет об исключении для стран, находящихся под санкциями;
• приложения, устанавливаемые через корпоративные MDM-системы на управляемые устройства, не должны проходить такую верификацию.
Таким образом, российские устройства без Google Play и корпоративные устройства под управлением MDM должны продолжить работать как раньше. Однако разработчикам обычных приложений авторы рекомендуют заранее пройти полную регистрацию, особенно если APK распространяется напрямую или через сторонние магазины.
Статья: https://habr.com/ru/companies/safemobile/articles/1064658/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Прошлым летом Google объявил, что на Android телефоны можно будет устанавливать приложения только от проверенных разработчиков. В этой статье SafeMobile рассказывает, что узнали - по мнению авторов статьи, в ближайшее время серьёзных изменений не ожидается:
• устройства без сервисов Google вообще не участвуют в проверке;
• Россия не входит в первую волну;
• Google заявляет об исключении для стран, находящихся под санкциями;
• приложения, устанавливаемые через корпоративные MDM-системы на управляемые устройства, не должны проходить такую верификацию.
Таким образом, российские устройства без Google Play и корпоративные устройства под управлением MDM должны продолжить работать как раньше. Однако разработчикам обычных приложений авторы рекомендуют заранее пройти полную регистрацию, особенно если APK распространяется напрямую или через сторонние магазины.
Статья: https://habr.com/ru/companies/safemobile/articles/1064658/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Strata - управление зависимостями между слоями архитектуры
Strata — это плагин Gradle, который контролирует явно заданный граф зависимостей между архитектурными слоями в многомодульной сборке. Каждый слой представлен уже существующим проектом верхнего уровня. Сам этот проект и все его дочерние проекты автоматически относятся к соответствующему слою.
Strata на GitHub: https://github.com/jzbrooks/strata
Платформа: Android
⭐️: 3
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Strata — это плагин Gradle, который контролирует явно заданный граф зависимостей между архитектурными слоями в многомодульной сборке. Каждый слой представлен уже существующим проектом верхнего уровня. Сам этот проект и все его дочерние проекты автоматически относятся к соответствующему слою.
Strata на GitHub: https://github.com/jzbrooks/strata
Платформа: Android
⭐️: 3
Please open Telegram to view this post
VIEW IN TELEGRAM
Локальные LLM на iPhone: память, Core ML, MLX и ограничения
Поговорим про:
1. Архитектуру Apple Silicon и Unified Memory — почему не можем использовать всю доступную память;
2. Память, квантование и KV Cache — где приложения начинают падать и как это отловить;
3. Core ML и MLX — чем отличаются, где какой быстрее и почему нельзя всё запускать на нейронном процессоре;
4. Температуру и троттлинг — что происходит с телефоном на длинной сессии;
5. Гибридный пайплайн — как взять сильные стороны обоих фреймворков и получить стабильную генерацию. Это практический разбор с примерами кода, замерами на Llama 3 1B и выводами, когда локальная модель оправдана, а когда лучше использовать серверные модели.
Статья: https://habr.com/ru/articles/1064924/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Поговорим про:
1. Архитектуру Apple Silicon и Unified Memory — почему не можем использовать всю доступную память;
2. Память, квантование и KV Cache — где приложения начинают падать и как это отловить;
3. Core ML и MLX — чем отличаются, где какой быстрее и почему нельзя всё запускать на нейронном процессоре;
4. Температуру и троттлинг — что происходит с телефоном на длинной сессии;
5. Гибридный пайплайн — как взять сильные стороны обоих фреймворков и получить стабильную генерацию. Это практический разбор с примерами кода, замерами на Llama 3 1B и выводами, когда локальная модель оправдана, а когда лучше использовать серверные модели.
Статья: https://habr.com/ru/articles/1064924/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Локальные LLM на iPhone: память, Core ML, MLX и ограничения
Всем привет! Меня зовут Никита Нагорнов , я iOS‑разработчик в компании «Исходный Код». В этой статье разберем, как запускать локальные LLM на iPhone . Поговорим про: Архитектуру Apple...
Untold Engine - Swift/Metal XR-движок
Untold Engine — это XR-движок с открытым исходным кодом на Swift/Metal для высокопроизводительных приложений пространственной визуализации для платформ Apple, предоставляющий разработчикам полный контроль над рендерингом, шейдерами и конвейером обработки данных.
Untold Engine создан для разработчиков и команд, которые:
• Нужен полный контроль над рендерингом, шейдерами и системами движка Metal
• Предпочитают нативную архитектуру Swift + Metal на платформах Apple
• Разрабатывают приложения XR, 3D или пространственной визуализации
• Необходимо обрабатывать большие сцены, потоковые данные или пользовательские конвейеры обработки ресурсов
• Хотят открытый движок, который можно изучать, модифицировать, расширять и встраивать
Untold Engine на GitHub: https://github.com/untoldengine/UntoldEngine
Платформа: iOS
⭐️: 125
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Untold Engine — это XR-движок с открытым исходным кодом на Swift/Metal для высокопроизводительных приложений пространственной визуализации для платформ Apple, предоставляющий разработчикам полный контроль над рендерингом, шейдерами и конвейером обработки данных.
Untold Engine создан для разработчиков и команд, которые:
• Нужен полный контроль над рендерингом, шейдерами и системами движка Metal
• Предпочитают нативную архитектуру Swift + Metal на платформах Apple
• Разрабатывают приложения XR, 3D или пространственной визуализации
• Необходимо обрабатывать большие сцены, потоковые данные или пользовательские конвейеры обработки ресурсов
• Хотят открытый движок, который можно изучать, модифицировать, расширять и встраивать
Untold Engine на GitHub: https://github.com/untoldengine/UntoldEngine
Платформа: iOS
⭐️: 125
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
Одна строчка, которая пожирала нашу память
Утечки памяти могут быть очень незаметными, а их поиск иногда кажется пугающе сложным. Но не стоит их бояться. Да, сначала непросто сопоставить данные гистограммы или кратчайший путь до корня сборщика мусора с кодом, который вы написали. Однако после того, как вы поймёте принцип, анализ помогает не только устранить конкретную проблему, но и обнаружить другие, менее очевидные недостатки.
Эта история служит важным напоминанием:
Статья: https://apptractor.ru/info/articles/odna-strochka-kotoraya-pozhirala-nashu-pamyat.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Утечки памяти могут быть очень незаметными, а их поиск иногда кажется пугающе сложным. Но не стоит их бояться. Да, сначала непросто сопоставить данные гистограммы или кратчайший путь до корня сборщика мусора с кодом, который вы написали. Однако после того, как вы поймёте принцип, анализ помогает не только устранить конкретную проблему, но и обнаружить другие, менее очевидные недостатки.
Эта история служит важным напоминанием:
Если contentType формируется из значения, уникального для каждого элемента на протяжении всего срока жизни списка, он засорит хранилище повторного использования Compose.Статья: https://apptractor.ru/info/articles/odna-strochka-kotoraya-pozhirala-nashu-pamyat.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
14 лет в Android-разработке, но кажется, что мобильная разработка умирает. Реально ли перейти в серверную разработку на Kotlin?
Общий настрой треда: переход из Android в бэкенд реалистичен, но Kotlin сам по себе не делает его простым. Большинство участников считают, что опыт старшего мобильного разработчика переносится частично: архитектурное мышление, Kotlin, корутины, проектирование интерфейсов программирования и опыт промышленной разработки остаются ценными. Однако серверная разработка требует отдельного набора знаний, и на собеседованиях придётся конкурировать с людьми, которые много лет работали с базами данных, распределёнными системами и инфраструктурой.
Статья: https://apptractor.ru/info/articles/14-let-v-android-razrabotke.html
Платформа: Android/карьера
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Общий настрой треда: переход из Android в бэкенд реалистичен, но Kotlin сам по себе не делает его простым. Большинство участников считают, что опыт старшего мобильного разработчика переносится частично: архитектурное мышление, Kotlin, корутины, проектирование интерфейсов программирования и опыт промышленной разработки остаются ценными. Однако серверная разработка требует отдельного набора знаний, и на собеседованиях придётся конкурировать с людьми, которые много лет работали с базами данных, распределёнными системами и инфраструктурой.
Статья: https://apptractor.ru/info/articles/14-let-v-android-razrabotke.html
Платформа: Android/карьера
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
Tidy - управление задачами
Приложение для управления задачами со всеми необходимыми функциями.
Фичи:
• Повторяющиеся задачи — Создавайте задачи, которые повторяются ежедневно, еженедельно или ежемесячно.
• Вложенные подзадачи — Организуйте работу с помощью глубоко вложенных подзадач, без ограничений по глубине.
• Поиск — Быстро находите любую задачу с помощью встроенного поиска.
• Резервное копирование — Автоматическое и ручное резервное копирование; экспорт данных в файл JSON.
Tidy на GitHub: https://github.com/Gauravkr7488/Tidy
Платформа: Android
⭐️: 15
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Приложение для управления задачами со всеми необходимыми функциями.
Фичи:
• Повторяющиеся задачи — Создавайте задачи, которые повторяются ежедневно, еженедельно или ежемесячно.
• Вложенные подзадачи — Организуйте работу с помощью глубоко вложенных подзадач, без ограничений по глубине.
• Поиск — Быстро находите любую задачу с помощью встроенного поиска.
• Резервное копирование — Автоматическое и ручное резервное копирование; экспорт данных в файл JSON.
Tidy на GitHub: https://github.com/Gauravkr7488/Tidy
Платформа: Android
⭐️: 15
Please open Telegram to view this post
VIEW IN TELEGRAM
Наконец-то я нашел применение для .fixedSize
Если бы неделю назад мне сказали, что
Уже одно название словно предупреждает: этот модификатор загонит вас в угол. Кому вообще нужны представления, зафиксированные в статическом размере? Поэтому, как и многие разработчики на SwiftUI, я мысленно отправил его в категорию «модификаторы, которыми я никогда не воспользуюсь».
А затем мне досталась задача по компоновке, которую — вот неожиданность — можно было аккуратно решить только с помощью
И она преподала мне урок, который стоило усвоить много лет назад: плохих API не существует — бывают лишь интерфейсы, для которых вы ещё не нашли подходящий сценарий. Каждый модификатор SwiftUI появился по определённой причине. Принципиально избегая какого-то из них, вы без всякой пользы сокращаете собственный набор инструментов.
Статья: https://apptractor.ru/info/articles/nakonets-to-ya-nashel-primenenie-dlya-fixedsize.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Если бы неделю назад мне сказали, что
.fixedSize спасёт мне вторую половину рабочего дня, я бы рассмеялся.Уже одно название словно предупреждает: этот модификатор загонит вас в угол. Кому вообще нужны представления, зафиксированные в статическом размере? Поэтому, как и многие разработчики на SwiftUI, я мысленно отправил его в категорию «модификаторы, которыми я никогда не воспользуюсь».
А затем мне досталась задача по компоновке, которую — вот неожиданность — можно было аккуратно решить только с помощью
.fixedSize.И она преподала мне урок, который стоило усвоить много лет назад: плохих API не существует — бывают лишь интерфейсы, для которых вы ещё не нашли подходящий сценарий. Каждый модификатор SwiftUI появился по определённой причине. Принципиально избегая какого-то из них, вы без всякой пользы сокращаете собственный набор инструментов.
Статья: https://apptractor.ru/info/articles/nakonets-to-ya-nashel-primenenie-dlya-fixedsize.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
🤷♂1🤣1
Diligence - экраны "О приложении" на SwiftUI
Diligence — это легковесный пакет Swift, содержащий набор UI-элементов для создания About экранов приложений для iOS и macOS.
Diligence на GitHub: https://github.com/inseven/diligence
Платформа: iOS
⭐️: 21
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Diligence — это легковесный пакет Swift, содержащий набор UI-элементов для создания About экранов приложений для iOS и macOS.
Diligence на GitHub: https://github.com/inseven/diligence
Платформа: iOS
⭐️: 21
Please open Telegram to view this post
VIEW IN TELEGRAM
Picture-in-Picture в iOS: от запуска до переключения контента
С системной функцией Picture-in-Picture (PiP) сталкивались, пожалуй, все владельцы iPhone: кто-то смотрит видео на фоне переписки, кто-то общается по видеосвязи в любимых мессенджерах. Для пользователя это просто удобство, а для разработчика видеосервиса - отдельный механизм со своей инфраструктурой, жизненным циклом и набором ограничений. В этой статье я разберу интеграцию PiP как встроенного плеера: от первого запуска до переключения контента. Поделюсь нюансами, с которыми вы точно столкнётесь на практике, и покажу, как обойти типовые грабли
Статья: https://habr.com/ru/companies/ivi/articles/1065430/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
С системной функцией Picture-in-Picture (PiP) сталкивались, пожалуй, все владельцы iPhone: кто-то смотрит видео на фоне переписки, кто-то общается по видеосвязи в любимых мессенджерах. Для пользователя это просто удобство, а для разработчика видеосервиса - отдельный механизм со своей инфраструктурой, жизненным циклом и набором ограничений. В этой статье я разберу интеграцию PiP как встроенного плеера: от первого запуска до переключения контента. Поделюсь нюансами, с которыми вы точно столкнётесь на практике, и покажу, как обойти типовые грабли
Статья: https://habr.com/ru/companies/ivi/articles/1065430/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Погружение в One‑Time Events в Android
Представьте, перед вами задача — после авторизации пользователя навигировать его на главный экран, или показать snackbar, например, об ошибке.
В Android для таких событий есть специальное название — One‑Time Events, или же просто Effects — события, которые мы отправляем UI из ViewModel и хотим, чтобы они обработались ровно один раз.
И они отличаются от состояния экрана! Состояние существует всегда, а effect отправляется и обрабатывается единожды; в состоянии существуют данные, с которыми user взаимодействует, или которые повторно могут отображаться на экране, когда как effect — совершенно противоположное.
Моделировать такой паттерн можно несколькими способами: через состояние,
Статья: https://habr.com/ru/articles/1067070/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Представьте, перед вами задача — после авторизации пользователя навигировать его на главный экран, или показать snackbar, например, об ошибке.
В Android для таких событий есть специальное название — One‑Time Events, или же просто Effects — события, которые мы отправляем UI из ViewModel и хотим, чтобы они обработались ровно один раз.
И они отличаются от состояния экрана! Состояние существует всегда, а effect отправляется и обрабатывается единожды; в состоянии существуют данные, с которыми user взаимодействует, или которые повторно могут отображаться на экране, когда как effect — совершенно противоположное.
Моделировать такой паттерн можно несколькими способами: через состояние,
SharedFlow или Channel. В этой статье мы разберем на простом примере каждый подход и обсудим минусы и плюсы, а также обсудим лучшее обходное решение!Статья: https://habr.com/ru/articles/1067070/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Погружение в One‑Time Events в Android
Представьте, перед вами задача — после авторизации пользователя навигировать его на главный экран, или показать snackbar, например, об ошибке. В Android для таких событий...
Спустя 3 года и 200 миллионов строк я наконец-то перестал использовать UUID в качестве ключа
Дело было не в этом. Тот же запрос, та же таблица, тот же код, который мы выпустили три года назад, — только теперь он незаметно перестал работать быстро.
Я открыл план выполнения запроса, ожидая увидеть случайную аномалию, но вместо этого получил стену цифр, от которых любой бэкенд разработчик мгновенно замирает.
Статья: https://apptractor.ru/info/articles/spustya-3-goda-i-200-millionov-strok-ya-nakonets-to-perestal-ispolzovat-uuid-v-kachestve-klyucha.html
Платформа: база данных
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Дело было не в этом. Тот же запрос, та же таблица, тот же код, который мы выпустили три года назад, — только теперь он незаметно перестал работать быстро.
Я открыл план выполнения запроса, ожидая увидеть случайную аномалию, но вместо этого получил стену цифр, от которых любой бэкенд разработчик мгновенно замирает.
Статья: https://apptractor.ru/info/articles/spustya-3-goda-i-200-millionov-strok-ya-nakonets-to-perestal-ispolzovat-uuid-v-kachestve-klyucha.html
Платформа: база данных
Please open Telegram to view this post
VIEW IN TELEGRAM