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

Библиотека поддерживает использование в различных компонентах, включая Активити, Фрагменты, ViewGroup и RecyclerView.ViewHolder.

ViewBindingPropertyDelegate на GitHub: https://github.com/androidbroadcast/ViewBindingPropertyDelegate
Платформа: Android
⭐️: 1.5K
👍1
О iOS дизайн системе за 5 мин

Сегодня хочу рассказать Вам, как мы пилили дробили монолит на SPM пакеты и создавали дизайн систему.

Статья: https://habr.com/ru/articles/881612/
Платформа: iOS
👍1😁1
Обновляем дорожную карту Android-разработчика в 2025 году

Прошло уже более трех лет с момента выпуска дорожной карты Android-разработчика, и технологии Android продолжают стремительно развиваться в различных областях. В то время Jetpack Compose только достиг стабильного релиза 1.0, и разработчики с нетерпением ждали его зрелости и развития экосистемы.

Со временем появилось множество решений и инструментов для решения проблем разработки, которые значительно улучшили проекты. В частности, значительно повысилась производительность Android Studio, а интеграции с искусственным интеллектом в IDE теперь помогают разработчикам писать код более эффективно. Однако основные принципы создания Android-приложений остались относительно стабильными.

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

Статья: https://apptractor.ru/info/articles/obnovlyaem-dorozhnuyu-kartu-android-razrabotchika-v-2025-godu.html
Платформа: Android
1
Как я создал собственную дизайн-систему для компонентов iOS-приложения

Если вы создаете свое приложение или работаете в компании, где ваша команда еще не перенесла дизайн компонентов пользовательского интерфейса в отдельную библиотеку, пришло время сделать этот шаг. В этой статье я расскажу вам о своем подходе к созданию многократно используемых компонентов с помощью SwiftUI. Я пропущу базовую настройку библиотеки в Xcode (этому посвящено множество руководств) и сосредоточусь на том, что действительно важно: на создании надежной системы компонентов.

Статья: https://apptractor.ru/info/articles/kak-ya-sozdal-sobstvennuyu-dizayn-sistemu-dlya-komponentov-ios-prilozheniya.html
Платформа: iOS
👍1💩1
Опыт прохождения собеседования для iOS-разработчика в Walmart

Ришабх Шарма поделился своим опытом прохождения собеседования в Wallmart (говорит, что SDE-III, но вопросы, конечно, больше похожи наSDE-I).

Всем, кто готовится к подобным ролям, он советует следующее:

• Освойте структуры данных и алгоритмы (решите как минимум 100+ задач Leetcode)
• Глубоко изучите концепции iOS
• Практикуйтесь в объяснении своих проектов и дизайна систем
• Сохраняйте спокойствие и думайте на ходу во время неожиданных вопросов

Все собеседования мобильных разработчиков тут.
1
Embedded Swift Example Projects - этот репозиторий представляет собой набор демонстрационных проектов для встраиваемого Swift. Embedded Swift - это режим компиляции и языка, который позволяет разрабатывать на Swift baremetal, встраиваемые и автономные программы. Чтобы узнать больше, см:

Этот репозиторий призван продемонстрировать широкие возможности применения Embedded Swift. Примеры ориентированы на различные микроконтроллеры, где Swift может быть легко использован, включая платы STM32, Raspberry Pi Pico, платы Nordic Semiconductor и даже RISC-V ESP32. Примеры также охватывают различные системы сборки и варианты интеграции, такие как создание полностью автономного Swift-кода и сопряжение существующих SDK от производителей плат с Swift.

Embedded Swift Example Projects на GitHub: https://github.com/apple/swift-embedded-examples
Платформа: iOS/Swift
⭐️: 809
👍1
📺 Видео и подкасты за неделю на @AppFiles

(iOS Ru) Переход с UIKit на SwiftUI — разработка трекера тренировок с нуля
(iOS En) Apple Invites App OnBoarding UI - Infinite ScrollView - Text Renderer - Animations - SwiftUI
(iOS En) How to Create a Custom Help System in SwiftUI
(And Ru) Опасности в Android: уязвимости и защитные меры
(And En) The Full Guide to Supporting Edge-to-Edge On Android 15+ (Compose + XML)
(And En) 5 Minutes to Faster Edits in IntelliJ and Android Studio - Multiple Cursors
(And En) Automatically Detects Performance Issues in Your Kotlin Apps
(Dev Ru) Рынок разработки в СНГ (Средняя Азия)
(Dev Ru) Системный аналитик: мифы и реальная польза для бизнеса
(Dev Ru) Открытые зарплаты — зарплатный разрыв, самоуправление, социократия
(Dsg En) Create Stunning Animations for Mobile/Web with New Lottie Lab!

Что было год назад:

(iOS Ru) Как устроен Яндекс Go и зачем работать со студентами и стажерами
(iOS Ru) Навигация в SwiftUI
(And Ru) Многомодульность для UI-тестов
(And Ru) Как мы создавали дизайн-систему на Jetpack Compose
(And Ru) Как мы автоматизировали генерацию Baseline Profile
(And Ru) Кто-то съел мою память на CI!
(And Ru) Верхнеуровневый обзор архитектуры CI/CD мобильного приложения
(Dev Ru) Как затащить новую технологию
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Тайны рейтингов: как добиться стабильно высокого рейтинга Android-приложения?

Важно понимать, что в крупных корпоративных приложениях рейтинг зачастую зависит не только от качества самого приложения, но и от общего уровня сервиса, предоставляемого пользователям. Если проанализировать отзывы, оставленные пользователями, становится очевидным, что многие из них касаются не функциональности приложения, а проблем с обслуживанием или недовольством работой компании в целом. Например, распространенные комментарии включают: "Менеджеры ничего не знают", "В чате не отвечают", "Заказал обратный звонок — 3 дня никто не перезванивает", "Ставка 25%, кто будет брать ипотеку?". Поэтому важно не только разрабатывать качественное приложение, но и обеспечивать высокий уровень сервиса. В этой статье мы сосредоточим внимание на корнеркейсы Android-разработки, которые могут повлиять на пользовательский опыт и, соответственно, на рейтинг приложения.

Статья: https://habr.com/ru/companies/domclick/articles/879364/
Платформа: Android
👍1
Задачи с собеседований: Leetcode — Самая длинная подстрока без повторений

Для заданной строки задана строка s, найдите длину самой длинной подстроки без повторяющихся символов.

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

Статья: https://apptractor.ru/develop/coding/zadachi-s-sobesedovaniy-leetcode-samaya-dlinnaya-podstroka-bez-povtoreniy.html
Платформа: собеседования
👍2
Sketch - это библиотека загрузки изображений, специально разработанная для Compose Multiplatform и Android View. Она обладает следующими возможностями:

• Поддерживает загрузку изображений из различных источников, таких как http, файлы, ресурсы Compose, ассеты и т.д.
• Поддержка трехуровневого кэширования, автоматическая отмена запросов, автоматическая регулировка размера изображений, автоматический поворот изображений в соответствии с ориентацией Exif и т. д.
• Поддержка анимированных изображений, SVG-изображений, Base64-изображений и видеокадров.
• Поддержка расширений различных аспектов, таких как кэширование, декодирование, трансформация, переход, плейсхолдеры и т.д.
• Практичные фичи, такие как приостановка загрузки при работе в сотовой сети, приостановка загрузки при прокрутке списка, значки типа изображения, индикаторы прогресса загрузки и т.д.

Библиотека полностью основана на Kotlin и корутинах.

Sketch Image Loader на GitHub: https://github.com/panpf/sketch
Платформа: Android
⭐️: 2.1K
🔥2👍1
Поддержка webextensions под Андроид

Сегодня я хочу представить очередную свою работу, точнее рабочий черновик. Да, я в курсе — дураку полработы не показывают, но так и на хабре то не дураки сидят. Итак, сегодня я расскажу как перенес поддержку webextensions в chromium под Андроид, что работает а что не работает, как пользоваться тем что работает и когда будет работать то что не работает.

Статья: https://habr.com/ru/articles/882640/
Платформа: Android
1
Осваиваем скроллинг в SwiftUI: реализация кастомного пейджинга

Начиная с iOS 17 в SwiftUI появилась функция scrollTargetBehavior, позволяющая разработчикам управлять поведением прокрутки с большей точностью. Будь то выравнивание представлений в состоянии покоя или реализация пользовательских эффектов пагинации, ScrollTargetBehavior обеспечивает надежную поддержку. Что еще более важно, разработчики могут создавать собственные реализации ScrollTargetBehavior для удовлетворения конкретных потребностей. В этой статье на реальном примере шаг за шагом будет показано, как использовать scrollTargetBehavior и в конечном итоге реализовать пользовательскую логику управления скроллингом.

Статья: https://fatbobman.com/en/posts/mastering-swiftui-scrolling-implementing-custom-paging/
Платформа: iOS
👍2
SAST приложений под Android: делаем код безопаснее

Статическое тестирование безопасности приложений (SAST) используется для обеспечения безопасности программного обеспечения путём анализа исходного кода программы с целью выявления источников уязвимостей. Мы будем говорить об инструментах для анализа исходного кода для Android. Здесь мы сразу договоримся, что рассматриваться будут отдельные утилиты, не привязанные к какой‑либо IDE и легко интегрируемые в конвейер CI/CD.

Статья: https://habr.com/ru/companies/otus/articles/881110/
Платформа: Android
1
Fluent - это ORM (Object-Relational Mapper) фреймворк для Swift. Он использует преимущества сильной системы типов Swift, чтобы обеспечить простой в использовании интерфейс для вашей базы данных. Использование Fluent сосредоточено на создании типов моделей, которые представляют структуры данных в вашей базе данных. Эти модели затем используются для выполнения операций создания, чтения, обновления и удаления данных вместо написания сырых запросов, что позволяет писать запросы, безопасные для типов и не зависящие от базы данных.

Пример:
let planets = try await Planet.query(on: database)
.filter(\.$type == .gasGiant)
.sort(\.$name)
.with(\.$star)
.all()


Fluent на GitHub: https://github.com/vapor/fluent-kit
Платформа: iOS
⭐️: 223
👍1
Что такое перерисовка и как с ней бороться

Рендеринг, то есть отрисовка пользовательского интерфейса на экране мобильного устройства, влияет на восприятие качества каждым пользователем приложения. Глаза требуют плавности при выводе изображений и текста на экран. Поэтому лучше избегать медленной отзывчивости и задержек при отрисовке на экране.

В этой статье я расскажу, что такое перерисовки (Overdraw), как они влияют на производительность рендеринга и как можно их исправить. Вперед!

Статья: https://apptractor.ru/info/articles/chto-takoe-pererisovka-i-kak-s-ney-borotsya.html
Платформа: Android
1
This media is not supported in your browser
VIEW IN TELEGRAM
Основы SwiftLint: упорядочивание качества кода Swift

В статье автор подробно рассказывает о том, как SwiftLint помогает улучшить качество кода в Swift-проектах. Инструмент автоматически проверяет стиль кода, выявляет потенциальные ошибки и обеспечивает соблюдение стандартов кодирования, что способствует поддержанию чистоты и согласованности кода.

Интеграция SwiftLint в проект позволяет разработчикам автоматизировать процесс проверки кода, снижая количество ошибок и улучшая читаемость. Использование такого инструмента способствует повышению эффективности командной работы и облегчает сопровождение проектов в долгосрочной перспективе.

Статья: https://medium.com/icommunity/swiftlint-101-streamline-your-swift-code-quality-681745bbe38d
Платформа: iOS
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
KMP Liquid Slider - “жидкий” слайдер на Jetpack Compose с широкими возможностями настройки. Оригинал, судя по всему, можно найти тут.

KMP Liquid Slider на GitHub: https://github.com/mejdi14/KMP-Liquid-Slider
Платформа: Android
⭐️: 10
2
Как мы сокращали размер JSONʼа в SDUI

Шаблонизация существенно уменьшила объём JSON при работе с однотипными элементами. Результат для нашего примера:

• Сокращение на 5 элементах составило около 45%.
• При 100 элементах — примерно 74% (учитывая количество символов, а не строк).

Но помимо уменьшения объёма, JSON стал более читабельным благодаря четкому разделению данных и статичной разметки. Делаю вывод, что усилия не были напрасны.

Статья: https://habr.com/ru/companies/alfa/articles/882054/
Платформа: разработка
👎2
Секреты мобильной разработки в логистике: разгоняем MVVM до максимума

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

Статья: https://habr.com/ru/companies/yandex/articles/883202/
Платформа: разработка