AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.13K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Эффект свечения в стиле Apple Intelligence в SwiftUI

Новый язык дизайна Apple представил эффект светящейся анимированной обводки, которая изящно и динамично подсвечивает формы и компоненты. Давайте рассмотрим, как воссоздать этот эффект в SwiftUI с помощью многоразовых расширений.

Статья: https://apptractor.ru/info/articles/effekt-svecheniya-v-stile-apple-intelligence-v-swiftui.html
Платформа: iOS
👍1
ИИ-генерация изображений в Firebase AI Logic

Добавление кастомных изображений в ваше приложение может значительно улучшить и персонализировать пользовательский опыт, а также повысить вовлеченность пользователей. В этой статье рассматриваются две новые возможности генерации изображений с помощью Firebase AI Logic: специализированные функции редактирования Imagen, которые в настоящее время находятся в стадии предварительной версии, и общедоступный Gemini 2.5 Flash Image (также известный как «Nano Banana»), предназначенный для создания контекстных или диалоговых изображений.

Статья: https://apptractor.ru/info/articles/ii-generatsiya-izobrazheniy-v-firebase-ai-logic.html
Платформа: Android
1
Placeholder Compose - настраиваемые плейсхолдеры для Compose

Placeholder Compose - полностью настраиваемые плейсхолдеры для Jetpack Compose и KMP. Вы можете легко реализовать красивые эффекты загрузки с помощью модификаторов. Библиотека предлагает интуитивно понятные возможности настройки цветов, форм и анимации подсветки, позволяя создавать широкий спектр эффектов загрузки. 

Placeholder Compose на GitHub: https://github.com/RevenueCat/placeholder-compose
Платформа: Android
⭐️: 82
👍1
Xcode: ключевые инструменты для ручного тестирования мобильных приложений

В сети много материалов о сторонних решениях для отладки и контроля качества iOS-приложений, но часто из виду упускается то, что сам Xcode предлагает всё необходимое «из коробки», при этом многие инструменты остаются невостребованными.

В этой статье я подробно разберу 4 инструмента, которые используются в моей команде для отлова тех самых 65% ошибок. Каждый раздел статьи содержит пошаговый разбор работы инструмента и то, как он применяется в тестировании.

Статья: https://habr.com/ru/companies/sovcombank_technologies/articles/956112/
Платформа: iOS
👍1
Android для новичков: как не наломать дров с корутинами и какие привычки оставить в прошлом

Когда только начинаешь разрабатывать под Android, самые неприятные баги появляются не из-за опечаток, а из-за систематических ошибок. Хардкод строк и цветов, корутины, которые живут сами по себе, попытки писать Compose по старинке, как старые view — всё это превращается в технический долг, который мешает развивать продукт.

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

Статья: https://habr.com/ru/companies/netologyru/articles/956346/
Платформа: Android
1
Опыт собеседования с iOS-разработчиком в Microsoft

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

Статья: https://apptractor.ru/info/articles/opyt-sobesedovaniya-s-ios-razrabotchikom-v-microsoft.html
Все собеседования: https://apptractor.ru/sobesedovaniya
Платформа: iOS
👍1
RichText - улучшенный TextView

RichText - расширенный TextView для SwiftUI, обеспечивающий улучшенный выбор текста, а также позволяющий встраивать другие нативные представления в текст с использованием декларативного синтаксиса. Работает на базе TextKit 2.

RichText на GitHub: https://github.com/LiYanan2004/RichText
Платформа: iOS
⭐️: 108
👍1
Интеграция Predictive back в Android

В Android 13 Google представил новую «фишку»: predictive‑навигация. Это API позволяет пользователю «посмотреть» на какой экран он вернется, не выполняя непосредственно возврат. Подобный функционал довольно давно есть в iOS и, например, в Telegram на Android. Теперь же данный функционал должен работать в Android «из коробки», а с Android 16 будет включен по умолчанию. Немного поресерчив тему можно найти что для его работы необходимо включить флаг enableOnBackInvokedCallback и мигрировать на BackPressedDispatcher. Посмотрим так ли это.

Статья: https://habr.com/ru/articles/956680/
Платформа: Android
1
Резервное копирование для Android-приложения в стиле WhatsApp с использованием API Google Drive

Большинство приложений хранят важные пользовательские данные локально в Room или любом другом локальном хранилище, но что делать, если пользователь сменит телефон или переустановит ваше приложение? В этой статье вы узнаете, как за 10 простых шагов добавить функцию резервного копирования и восстановления на основе Google Drive в ваше Android-приложение, чтобы резервная копия оставалась конфиденциальной и надежно хранилась в облаке.

Статья: https://apptractor.ru/info/articles/rezervnoe-kopirovanie-dlya-android-prilozheniya-v-stile-whatsapp-s-ispolzovaniem-api-google-drive.html
Платформа: Android
👍1
Norm - трекер привычек на Flutter

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

Norm на GitHub: https://github.com/tusharonly/norm
Платформа: кроссплатформа
⭐️: 25
👍2
📺 Видео и подкасты за неделю @AppFiles

(iOS En) SwiftUI App Update Checker
(iOS En) SwiftUI Concentric Rectangle & Concentric Corners in iOS 26
(iOS En) Building a Drawing App in SwiftUI with PaperKit
(iOS En) Conditional App Store Rating Popup Using SwiftUI
(And Ru) Семантический Gradle: публикуем артефакты со спокойствием и уверенностью
(And En) From natural language to UI tests: A deep dive into Journeys for Android Studio
(And En) Split Buttons in Material3 Expressive - Full Guide
(And En) The NEW Material3 Expressive Motion Physics Animation System
(And En) Koin to Kotzilla - TypeAlias Show
(And En) derivedStateOf() vs remember(key) - Optimize recompositions
(Dev Ru) 7 грехов стартапера
(Dev Ru) Собеседование DS инженера в Авито: ML system design (все собеседования)
(Dev Ru) AI-агенты и безопасность — безопасность, уязвимости, LLM, MCP
(Dev En) Mobile System Design - Design Youtube App
(Dev En) Agentic coding at Airbnb
(Dev En) Google Generative AI Leader Certification Course – Pass the Exam

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

(And Ru) Как следить за качеством работы вашего кода. Tracer. Кирилл Попов
(And Ru) 1000 откликов и 0 собеседований — как не войти в айти в 2024: кодревью
(And Ru) Замена иконок — что может быть проще?
Please open Telegram to view this post
VIEW IN TELEGRAM
Moneytopia - трекер финансов

Moneytopia - полнофункциональный личный трекер расходов, созданный с помощью Jetpack Compose и Material 3. Благодаря чистому и интуитивно понятному дизайну он делает управление финансами простым и легким, помогая вам с легкостью контролировать свои расходы.

Внутри: Realm, корутины, Compose Navigation, Compose Compiler Gradle Plugin, Lifecycle ViewModel Compose, AppCompatб Vico Compose Chart, Compose Material Icons Extended.

Moneytopia на GitHub: https://github.com/dimrnhhh/moneytopia
Платформа: Android
⭐️: 53
1
Вайбуем в закрытом корпконтуре с Android Studio, Continue и Ollama в локальном режиме

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

Статья: https://habr.com/ru/companies/sportmaster_lab/articles/957260/
Платформа: Android
1.webm
296.4 KB
Эффект глюка на Jetpack Compose

Эффекты глитча (глюка, сбоя) — неотъемлемая часть научно-фантастических фильмов и киберпанк-игр. В этой статье мы увидим, как легко реализовать этот эффект в Jetpack Compose.

Статья: https://apptractor.ru/info/articles/effekt-glyuka-na-jetpack-compose.html
Платформа: Android
MarkdownView - отображение markdown контента в SwiftUI

MarkdownView предлагает невероятно простой и гибко настраиваемый способ отображения markdown разметки в вашем приложении. Он использует Swift-Markdown для анализа разметки, полностью совместим со спецификацией CommonMark.

Фичи:

• Полностью совместима с CommonMark
• Поддерживает рендеринг SVG 
• Поддерживает LaTeX
• Настраиваемые шрифты, подсветка кода, цветов
• Нативная реализация для SwiftUI

MarkdownView на GitHub: https://github.com/LiYanan2004/MarkdownView
Платформа: iOS
⭐️: 440
Сам себе Шерлок: 7 способов найти логи и поймать баг на iOS

Знакома ситуация, когда кнопка не работает, приложение виснет, анимации тормозят, но при этом нет никаких ошибок на экране? Можно часами играть в детектива, гадая по UI и строя догадки, что пошло не так. А можно за несколько минут найти настоящего преступника — ведь iOS щедро оставляет улики в виде логов. Нужно лишь знать, где их искать. Секрет — в грамотном выборе способа, как собрать доказательства.

Статья: https://habr.com/ru/articles/958142/
Платформа: iOS
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Что такое ANR и как с ним работать правильно

Когда пользователь открывает приложение, нажимает на кнопку — и ничего не происходит несколько секунд, Android начинает считать, что “приложение не отвечает”. Через 5 секунд на главном потоке система показывает диалог:

“Приложение не отвечает. Закрыть?”

Это и есть ANR (Application Not Responding).

Статья: https://habr.com/ru/articles/958278/
Платформа: Android
👍1
Продвинутые Codable

В статье автор показывает, как выйти за рамки стандартного Codable в Swift, когда JSON-структура не совпадает с моделью данных. Вместо громоздких init(from:) предлагается разделять DTO (структуру, соответствующую JSON) и модель, используя протоколы AdvancedDecodable и AdvancedEncodable. Они позволяют автоматически кодировать и декодировать данные через промежуточный слой, где можно добавлять валидацию и преобразования, не теряя простоту Codable. Помимо этого, автор предлагает обёртки Maybe, Either и Both — универсальные решения для обработки некорректных или неоднородных данных. Такой подход сохраняет читаемость и устойчивость к изменениям API, делая код надёжнее и понятнее.

Статья: https://nothingtocommitworkingtreeclean.com/advanced_codable.html
Платформа: iOS
👍1
Уменьшающиеся слоны

В статье команда инженеров Block рассказывает о проблеме масштабных монорепозиториев — когда проект разбит на тысячи подпроектов и IDE синхронизирует десятки миллионов строк кода, разработка становится неэффективной. В примере приводят ситуацию, когда «холодная» (cold) синхронизация в IntelliJ с Gradle занимает около 24 минут, и при этом используется порядка 36 ГБ оперативной памяти — очевидно, что для разработчика такое ожидание неприемлемо.

Чтобы решить эту проблему, авторы вводят ряд «интервенций» — изменений поверх обычного Gradle-процесса, направленных на уменьшение объёма работы IDE при синхронизации. Среди них — параллельная загрузка моделей, ограничение числа проектов, которые синхронизируются (Spotlight), отключение транзитивной синхронизации зависимостей (intransitive sync), замена подпроектов на заранее собранные артефакты (artifact swap), предпроскачивание зависимостей (pre-fetch). В совокупности эти меры позволили снизить время синхронизации с нескольких минут до ~15 секунд — улучшение порядка 97% — и значительно снизить нагрузку на ресурсы.

Статья: https://engineering.block.xyz/blog/shrinking-elephants
Платформа: Android
👍1
Material Pickers - Material 3 пикеры для Compose

Material Pickers - компоненты выбора для Jetpack Compose, соответствующие материальному дизайну. Выразительные, настраиваемые и идеально вписывающиеся в систему дизайна Material 3. Библиотека предоставляет готовые к использованию вертикальные, горизонтальные и двойные (парные) пикеры, а также низкоуровневые примитивы для создания полностью настраиваемых макетов.

Material Pickers на GitHub: https://github.com/eidam-slices/material-pickers
Платформа: Android
⭐️: 7
1