AppFiles - Mobile Development
2.13K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
VoiceInk - приложение для транскрибации речи

VoiceInk — приложение для macOS, которое практически мгновенно преобразует вашу речь в текст. Цель автора — сделать его самым эффективным и конфиденциальным решением для голосового перевода текста для macOS, которым будет приятно пользоваться. Хотя исходный код уже доступен для использования и внесения своего вклада, приобретение лицензии поможет поддержать дальнейшую разработку и предоставит вам доступ к автоматическим обновлениям, приоритетной поддержке и будущим функциям.

VoiceInk на GitHub: https://github.com/Beingpax/VoiceInk
Платформа: macOS/iOS
⭐️: 1.6K
3
Cactus - кроссплатформенный фреймворк для локального развертывания LLM/VLM/TTS моделей

По мере того, как небольшие устройства становятся всё более мощными, на них теперь можно запускать большие языковые модели (LLM). Это критически важно для полной конфиденциальности и контроля, поскольку модели, использующие приватные данные, могут работать локально без подключения к внешним серверам. Cactus — это лёгкий, высокопроизводительный фреймворк с открытым исходным кодом, который делает именно это, позволяя запускать ИИ-модели на мобильных устройствах.

Основные фичи Cactus:

• Поддерживает Flutter, React Native и Kotlin Multiplatform
• GGUF модели: работает с любой моделью GGUF от Hugging Face, включая Qwen, Gemma, Llama и DeepSeek
• Мультимодальный ИИ: запуск различных моделей, включая LLM, VLM, Embedding модели и модели TTS (преобразование текста в речь)
• Оптимизированная производительность: эффективное выполнение моделей от FP32 до 2-битных квантованных версий
• Работа с агентами: используйте агенты Cactus для интеграции пользовательских инструментов для сложных, расширенных рабочих процессов
• Нативная поддержка: включает iOS xcframework и JNILibs для нативной работы
• Компактная сборка C++: идеально подходит для развертывания на кастомном оборудовании

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

Cactus на GitHub: https://github.com/cactus-compute/cactus
Платформа: искусственный интеллект
⭐️: 2.9K
👍1
AppFiles - Mobile Development
Как RecyclerView создает магию анимаций: архитектура ItemAnimator под капотом RecyclerView умеет превращать обычные операции с данными в плавные анимации. Когда вы добавляете элемент в список, остальные элементы плавно расступаются. При удалении — схлопываются.…
Архитектурная эволюция и приложение для Android

В статье рассказывается, почему архитектура приложения — это не разовая работа, а непрерывный процесс адаптации под новые условия. Автор делает акцент на частых изменениях бизнес-модели, роста количества пользователей и усложнении инфраструктуры, что вынуждает пересматривать ключевые решения и подходы в разработке.

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

Статья: https://herrbert74.github.io/posts/architectural-evolution-of-an-app/
Платформа: Android
1
Pathfinder - простая навигация Jetpack Compose

Pathfinder — это легковесная навигационная библиотека Jetpack Compose, построенная на Navigation 3. Она упрощает навигацию в приложениях Android, предоставляя понятный, типобезопасный и расширяемый API. Pathfinder управляет экранной навигацией, диалоговыми окнами, контрактами активити и управлением стеком переходов.

Фичи:

• Типобезопасная навигация с использованием ComposeScreen, ActivityScreen и Dialog
• Простое управление стеком переходов
• Безопасное выполнение команд навигации, даже если активити или навигатор временно недоступны
• Поддержка контрактов результатов активити через PathfinderActivity
• Работает как с фреймворками внедрения зависимостей, такими как Hilt, так и без них
• Интеграция с RouterProvider и PathFinderNavDisplay

Pathfinder на GitHub: https://github.com/ampfarisaho/pathfinder
Платформа: Android
⭐️: 0
1
Flutter + нативные iOS виджеты: любовь с первого Method Chann

Как создать нативные iOS виджеты для Flutter приложения: Widget Extension, Method Channel для обмена данными, Timeline Provider для обновлений и SwiftUI верстка.

Пошаговый гайд с примерами кода на русском языке. Рассматриваем настройку App Groups, работу с UserDefaults и стратегии обновления виджетов.

Без лишних библиотек, только нативные возможности iOS и стандартные механизмы Flutter.

Статья: https://habr.com/ru/articles/940678/
Платформа: кроссплатформа
👍2😁1
Продвинутая анимация в SwiftUI: matchedGeometryEffect, TimelineView, PhaseAnimator и другое

В этом обзоре рассматривают самые передовые инструменты анимации SwiftUI — от переходов и рендеринга на основе временной шкалы до многофазной анимации и кастомных интерполяций.

Статья: https://swift-pal.com/advanced-animations-in-swiftui-matchedgeometryeffect-timelineview-phaseanimator-beyond-2025-da8876b7b0b9
Платформа: iOS
🔥2
Как я сократил время загрузки Android-приложения на 70% с помощью параллельных сетевых вызовов

В прошлом месяце я отлаживал дашборд пользователя в своём Android-приложении, который загружался мучительно долго — 4.5 секунды. Пользователи просто закрывали экран, и я знал, что нужно что-то менять. Виновники? Последовательные сетевые вызовы, которые без необходимости блокировали друг друга.

После реализации параллельных сетевых вызовов с использованием корутин Kotlin тот же экран теперь загружается всего за 1.3 секунды. Вот как я это сделал, и как можете сделать вы.

Статья: https://apptractor.ru/info/articles/kak-ya-sokratil-vremya-zagruzki-android-prilozheniya-na-70-s-pomoschyu-parallelnyh-setevyh-vyzovov.html
Платформа: Android
😁2👍1
SwiftToasts - тосты для SwiftUI

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

SwiftToasts — это библиотека для SwiftUI, которая обеспечивает простую, быструю, гибкую и настраиваемую интеграцию всплывающих уведомлений в платформы Apple на уровне сцены. Библиотека, разработанная с учетом соглашений API SwiftUI, делает использование библиотеки привычным, интуитивно понятным и по-настоящему нативным.

SwiftToasts на GitHub: https://github.com/athankefalas/swift-toasts
Платформа: iOS
⭐️: 3
👍2
Flutter умрёт?

Flutter не умер. И не умирает. Но никто и не гарантируется его вечное доминирование.

Фреймворк, который победит в следующем десятилетии, — это тот, который лучше всего адаптируется к меняющимся потребностям разработчиков и требованиям платформ.

Сейчас Flutter довольно хорошо адаптируется.

Настоящий вопрос не в том, «умрет ли Flutter?».

А в том, «будет ли Flutter развиваться достаточно быстро, чтобы оставаться актуальным?».

Статья: https://apptractor.ru/info/articles/flutter-umryot.html
Платформа: кроссплатформа
Slide to Unlock - настраиваемый слайдер для разблокировки

Slide to Unlock - полностью настраиваемый слайдер для Jetpack Compose и KMP от RevenueCat. Вы можете легко реализовать функцию разблокировки слайдером с помощью композабл SlideToUnlock. Он предлагает интуитивно понятные возможности настройки цветов, текста, форм и даже всего содержимого миниатюры и подсказки, позволяя создавать широкий спектр стилей.

Slide to Unlock на GitHub: https://github.com/RevenueCat/slide-to-unlock
Платформа: Android
⭐️: 83
2
Stack Inspector: мониторинг стека в iOS и macOS

В разработке приложений для iOS и macOS управление памятью - ключевой аспект стабильности и производительности. Одним из фундаментальных элементов памяти потока является стек. Понимание того, как работает стек, и возможность контролировать его состояние помогает разработчикам избегать критических ошибок, таких как stack overflow, и оптимизировать алгоритмы.

Статья: https://habr.com/ru/articles/941586/
Платформа: iOS
👍1
📺 Видео и подкасты за неделю @AppFiles

(iOS En) Login Page + Firebase Email Authentication + Email Verification
(iOS En) Login Page UI + Firebase Phone Auth
(iOS En) What’s New in SF Symbols 7 – Stunning Visual Effects for iOS & macOS 26
(iOS En) Fluid Zoom Transition with Liquid Glass
(And Ru) Google закрывает свободу на Android
(And En) Android Developer Story: How Dashlane brought Credential Manager to Wear OS with 92% code reuse
(And En) Credential Manager for Wear OS
(And En) Large Scale Changes with AI – Migrating millions of lines of Java to Kotlin at Uber
(Crs Ru) Kotlin Multiplatform в большом проекте
(Crs En) How to Deep Link Into iOS & Android With Compose Multiplatform
(Crs En) Kotlin Multiplatform's Cross Platform Brilliance at Norway's 377-Year-Old National Postal Service
(Crs En) Scale your Kotlin Multiplatform projects using dependency injection
(Dev Ru) Как «думают» LLM: внутренняя механика языковых моделей
(Dev Ru) Как AI научился рассуждать — Reinforcement learning, reasoning models
(Dev En) 4 Common Mistakes in Mobile System Design Interviews
(Dev En) Data Analysis for finance in Kotlin
(Dev En) Professional Cloud Architect Certification Course – Pass the Exam
(Dev En) Computer Vision with Arduino Tutorial
(Mrk Ru) iOS подписки на TV пультах. Окупаемость 3 месяца?

Прошлогодние видео:

(iOS Ru) Стратегия автотестирования для iOS приложений
(iOS Ru) 5 вопросов для iOS разработчика
(iOS Ru) Борьба с утечками памяти: от задачи до победы
(And Ru) 5 уроков из опыта реализации pixel-perfect тестирования дизайн-системы в Android
(And Ru) Gradle-сборка. Измеряем самое важное
(And Ru) Шифруем файлы в Android
(Dev Ru) Как писать чистый код — угадываем что ввел юзер и дизайним с нуля Clean Code Approach
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Levitan - дизайн-сиcтема для iOS от HH.ru

Levitan - это набор инструментов от HH.ru для разработки пользовательских интерфейсов, позволяющий удобно и декларативно проектировать приложения с использованием SwiftUI и UIKit.

Levitan на GitHub: https://github.com/hhru/Levitan
Платформа: iOS
⭐️: 35
👍2
Память в Swift

Я занимаюсь iOS-разработкой, и за время работы я прочитал множество статей и документаций. Для того чтобы не теряться в этом потоке информации, я стал делать для себя короткие шпаргалки — они помогали закрепить изученное и готовиться к собеседованиям. В этой статье я решил собрать часть таких заметок в один материал, посвящённый работе с памятью в Swift. Надеюсь, он поможет кому-то освежить знания или узнать что-то новое.

Статья: https://habr.com/ru/articles/942500/
Платформа: iOS
👍1
С нуля до APK: Android-приложение для озвучки новостей из Telegram с помощью ИИ

В конце июня этого года я возвращался с дачи, слушая радио в машине. Новости по радио выходят раз в час, и их разнообразие оставляет желать лучшего. Тогда я подумал: было бы здорово, если бы было приложение, которое автоматически собирало новости из Telegram-каналов и озвучивало их голосом на русском языке. Вернувшись домой, я поискал готовое решение, но ничего подходящего в интернете не нашёл. Решил спросить у ИИ.

Статья: https://habr.com/ru/articles/942488/
Платформа: Android
👍1😭1
Как замедлить программу и почему это может быть полезно

Большинство исследований производительности языков программирования задают вариации одного и того же вопроса: как ускорить конкретную программу? Иногда мы ищем способы использовать меньше памяти. Это означает, что многие исследования сосредоточены исключительно на уменьшении объёма ресурсов, необходимых для достижения какой-либо вычислительной цели.

Так зачем же нам тогда замедлять программы? Замедление программ может быть полезно для выявления условий гонки, моделирования ускорения и оценки точности профилировщиков.

Статья: https://apptractor.ru/info/articles/kak-zamedlit-programmu-i-pochemu-eto-mozhet-byt-polezno.html
Платформа: разработка
👍1
Capsule - скругленные углы для Jetpack Compose

Capsule - это библиотека Jetpack Compose, которая создает скругленные G2-сопряженные (радиус кривизны не имеет скачков) прямоугольники. 

Отрисовка кубических кривых Безье на Android выполняется не очень эффективно. Однако библиотека Capsule использует очень эффективный метод расчёта контрольных точек, обеспечивая оптимальную теоретическую производительность.

Capsule на GitHub: https://github.com/Kyant0/Capsule
Платформа: Android
⭐️: 49
👍1
Android. Glance Widgets. Начало

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

Статья: https://habr.com/ru/articles/942886/
Платформа: Android
1
Упрощаем NFC: обзор нового SDK для Android разработки

Работа с NFC в Android всегда была непростой задачей. Нативный API требует от разработчика понимания низкоуровневых протоколов и механизмов обработки данных. Новый TAO NFC SDK (Android) призван решить эту проблему, предоставляя высокоуровневую абстракцию, которая значительно упрощает взаимодействие с NFC-метками.

Статья: https://habr.com/ru/articles/942474/
Платформа: Android
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем впечатляющие анимации загрузки с помощью SF Symbols

SF Symbols умеют проигрывать плавные анимации автоматически, позволяя легко настраивать стиль, цвет и даже сложные эффекты с помощью модификаторов (например, .hideInactiveLayers и .iterative).

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

Статья: https://danielsaidi.com/blog/2025/07/24/creating-amazing-loading-animations-with-sf-symbols
Мой перевод: https://apptractor.ru/info/articles/sozdanie-potryasayuschih-zagruzochnyh-animatsiy-s-pomoschyu-sf-symbols.html
Платформа: iOS
👍2