AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.13K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
CZAN - это дизайн система, названная в честь Поля Сезанна, знаменитого художника из Франциb, родного города разработчика. Она создана для приложений, использующих Compose Multiplatform, и построена на Material 3, системе дизайна Google с открытым исходным кодом.

CZAN следует методологии Atomic Design, где атомы, молекулы, организмы и шаблоны - это различные уровни дизайна, которые вы можете использовать для создания своего приложения.

CZAN на GitHub: https://github.com/Tweener/czan
Платформа: Android/кроссплатформа
⭐️: 58
😁1
Тактики ускорения билда: матиз, кобальт, камри 3.5

Разработчики часто игнорируют билд-тайм, пока он не превращается в проблему. Возможно, поставить утром сборку на 30 минут и пойти пить кофе — это круто, но я считаю, это неэффективно. Если представить человека, который постоянно пытается ускорить билд-тайм, то вот он: руки у него в копоти, потому что он по 50 раз запускал билд-тайм, и руки его горят.

Статья: https://habr.com/ru/articles/889548/
Платформа: iOS
ServerSocket для IPS в Android и примеры межпроцессного взаимодействия

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

Статья: https://habr.com/ru/companies/tbank/articles/889656/
Платформа: Android
😁2
Объединяем Compose и View: бесшовное взаимодействие с помощью CompositionLocal

При переходе на Compose наша команда столкнулась с рядом проблем, связанных с совместимостью, поскольку мы интегрировали новые композабл в существующую кодовую базу. Одним из ключевых препятствий было определение того, как вызывать события из Compose и отправлять их основному держателю представления, такому как Фрагмент или Активити.

После некоторых исследований мы нашли эффективное решение с использованием CompositionLocal. Вот как мы его реализовали.

Статья: https://apptractor.ru/info/articles/obedinyaem-compose-i-view.html
Платформа: Android
Производительный SwiftUI: используем UIKit

Можно ожидать, что жизненный цикл приложений SwiftUI и недавно появившийся навигационный API позволят нам реализовать практически все необходимые функции: глубокие ссылки, восстановление состояния и т.д. К сожалению, в некоторых случаях производительность SwiftUI может давать сбои. Особенно если у вас есть бесконечные коллекции данных, такие как социальные ленты или макеты для календарей.

Статья: https://apptractor.ru/info/articles/proizvoditelnyy-swiftui-ispolzuem-uikit.html
Платформа: iOS
FeedKit - это библиотека Swift для чтения и генерации RSS, Atom и JSON фидов.

FeedKit на GitHub: https://github.com/nmdias/FeedKit
Платформа: iOS
⭐️: 1.2K
Урок ценой $115 000: чему меня научила разработка продукта с нуля

Последние пару лет в свободное от Настоящей Работы время я в роли CTO/соло-бэкендера участвовал в создании Stry — фитнес-стартапа с подписной моделью. Теперь, когда наша команда официально объявила о прекращении дальнейшего развития проекта, пришло время порефлексировать и поделиться полученным опытом. В этой статье я в двух словах представлю продукт, детально опишу архитектуру проекта и расскажу о наших (моих?) основных технических успехах и неудачах.

Статья: https://habr.com/ru/articles/889758/
Платформа: iOS
This media is not supported in your browser
VIEW IN TELEGRAM
Отслеживание угла горизонта на изображении с помощью фреймворка Vision

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

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

Статья: https://apptractor.ru/info/articles/horizon-vision.html
Платформа: iOS
This media is not supported in your browser
VIEW IN TELEGRAM
KMP Liquid Search - анимированная поисковая строка для Compose. Поддерживает Android, iOS, Desktop, Web, есть множество настроек.

KMP Liquid Search на GitHub: https://github.com/mejdi14/KMP-Liquid-Search
Платформа: Android/кроссплатформа
⭐️: 21
👍2
Сборка ядра Android и модулей aircrack-ng

Думаю, кто читает эту статью, сталкиваются с проблемой драйверов для внешних устройств, в частности Wi-Fi адаптеров, таких как ALFA, TP-Link и других на чипсетах RTL. Здесь я опишу принципы компиляции ядер Samsung с использованием системы сборки Soong для Android-устройств, а также расскажу, как подготовить среду для компиляции и сборки ядра. Кроме того, я опишу, как скомпилировать внешние модули ядра aircrack-ng для мобильных устройств.

Статья: https://habr.com/ru/articles/890088/
Платформа: Android
Как я прошел Android-собеседования в Google, Amazon и Motorola

Недавно у меня была возможность пройти собеседование в трех ведущих компаниях:

• Google - Android Engineer
• Amazon - Android Engineer (Великобритания, Кембридж)
• Amazon - инженер Fire TV (Берлин)
• Motorola - Android Engineer

...и успешно прошел все из них! 🎉

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

Статья: https://apptractor.ru/info/articles/kak-ya-proshel-android-sobesedovaniya-v-google-amazon-i-motorola.html
Платформа: Android
🤡7👍2
SwiftUIKit - это Swift SDK, который добавляет дополнительную функциональность в SwiftUI и Swift. Он содержит дополнительные компоненты, множество расширений нативных типов и многое другое.

SwiftUIKit может дать толчок вашей разработке и решить множество сложных проблем.

SwiftUIKit на GitHub: https://github.com/danielsaidi/SwiftUIKit
Платформа: iOS
⭐️: 1.6K
📺 Видео и подкасты за неделю на @AppFiles

(iOS Ru) Жизнь iOS разработчика в условиях санкций
(iOS En) iOS Architecture in the Era of SwiftUI
(iOS En) Publish Your macOS App Outside the App Store: Notarization, DMG, & Gumroad Guide
(iOS En) Responsive Chips Selection - Layout API - Resizable - iOS 16+
(iOS En) Xcode 16 Debugging Tutorial for Beginners
(iOS En) Mastering Enum-Driven Tab Views in SwiftUI: A Smarter Approach
(iOS En) From Top Bar To Sidebar With The sidebarAdaptable TabView Style
(And En) Now in Android: 114 - Google I/O 2025, Android Studio at 10, Android 16 Betas, and more
(And En) Develop for Android XR
(And En) Top 4 Security Best Practices for Your Android App
(And En) Fix Kotlin App Issues in Minutes - Stop Debugging the Hard Way!
(Crs Ru) Flutter Dev Podcast #50: Flutter на ОС Аврора
(Crs Ru) Полный разбор Kotlin Inject — Dagger для Kotlin Multiplatform
(Crs En) A Pragmatic approach to use Pattern Matching and Records in Flutter and Dart
(Crs En) How to manage global app events effectively on your Flutter app
(Dev Ru) Путь UX-исследователя — эмпатия vs аналитика, поиск респондентов и происшествия на интервью
(Dev Ru) От Junior до Senior: требования к грейдам и здоровье как скилл
(Dev Ru) Как проводить собеседования интересно и продуктивно
(Dev Ru) Зачем программисту знать лямбда исчисление
(Dev Ru) Мок интервью на позицию СТО

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

(iOS Ru) Моменты неотзывчивости iOS-приложений: как найти и исправить
(iOS Ru) Swift-уроки: cоздание горизонтального меню с индикатором
(And Ru) Собеседование по Kotlin (все собеседования)
(And Ru) Ultron — фреймворк для тестирования Android UI и Compose
(And Ru) Собираем грабли при профилировании Android-приложений
(Crs Ru) Коллекции во Flutter
(Dev Ru) Как принимать решения, строить команды и выбирать инструменты разработки — Павел Щедухин (Ozon Tech)
(Dev Ru) Публичное собеседование по System Design
(Dev Ru) Мобильная инфраструктура. Взгляд изнутри
(Dev Ru) BDUI – удовольствие или боль?
(Dev Ru) BDUI на 100%: управляем шиммерами с бэкенда
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
OpenNote - современное Android-приложение для ведения заметок со множеством полезных функций. Внутри Kotlin, Gradle с Kotlin DSL, MVVM, Чистая архитектура, Compose, Hilt, KSP, Room, Compose Navigation, Material 3 и CommonMark для работы с Markdown.

OpenNote на GitHub: https://github.com/YangDai2003/OpenNote-Compose
Платформа: Android
⭐️: 386
1
Формализация принципа Open/Closed: как сохранить обратную совместимость с помощью SOLID

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

Статья: https://habr.com/ru/companies/psb/articles/873612/
Платформа: iOS
👍1
Шпаргалка: Kotlin suspend функции

Пытаюсь лучше понять работу Kotlin Coroutine. Беру небольшую тему про Kotlin Coroutine и пытаюсь разобраться и написать шпаргалку. Сегодня про suspend функции.

Статья: https://habr.com/ru/articles/888932/
Платформа: Android
1
Go Cycling - это приложение-трекер для велосипедистов, созданное для iOS с помощью SwiftUI. Оно должно быть очень простым в использовании для велосипедистов любого уровня.

Ключевая часть Go Cycling - это принцип конфиденциальности: здесь нет необходимости в какой-либо авторизации, а все данные хранятся исключительно на устройстве пользователя. Кроме того, приложение не содержит рекламы.

Go Cycling использует многие фреймворки и API Apple, включая:

• Core Location для данных о местоположении
• MapKit для встроенных карт
• Core Data для хранения данных о велосипедных маршрутах и предпочтениях пользователей
• CloudKit для хранения и синхронизации маршрутов, записей и предпочтений в iCloud
• Combine для обработки событий обновления местоположения

Go Cycling на GitHub: https://github.com/AnthonyH93/GoCycling
Платформа: iOS
⭐️: 155
👍3
Рендеринг пиксель-арта в SwiftUI

Пиксельная графика может выглядеть размыто на современных дисплеях, если ее неправильно масштабировать. В статье рассказывается, как в SwiftUI можно отображать пиксель-арт с четкими границами, используя модификатор .interpolation(.none), который предотвращает сглаживание при увеличении изображения. Также автор предлагает создать собственную структуру Bitmap, хранящую массив цветов, и визуализировать ее с помощью Image или Canvas.

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

Статья: https://twocentstudios.com/2025/03/10/pixel-art-swift-ui/
Платформа: iOS

👍 если хотите эту статью на русском
1👍1
В защиту простых архитектур

Максимально упростив архитектуру приложений, мы можем тратить бюджет на сложность (и численность персонала) там, где сложность выгодна нашему бизнесу. Идея делать все как можно проще, если нет веских причин для усложнения, позволила нам построить довольно крупный бизнес с небольшим количеством инженеров.

Статья: https://apptractor.ru/info/articles/v-zaschitu-prostyh-arhitektur.html
Платформа: архитектура
2
This media is not supported in your browser
VIEW IN TELEGRAM
HandWriting - библиотека инструментов для рисования на основе Compose, построенная на Kotlin Multiplatform.

Поддерживает рисование, стирание, выделение и манипуляции, отмену/повтор и функцию масштабирования.

HandWriting на GitHub: https://github.com/henni99/Handwriting
Платформа: Android/кроссплатформа
⭐️: 13
1
This media is not supported in your browser
VIEW IN TELEGRAM
Cursor Talk to Figma MCP - проект реализует интеграцию протокола Model Context Protocol (MCP) между Cursor AI и Figma, позволяя Cursor взаимодействовать с Figma для чтения проектов и их программной модификации.

Например, можно попросить разработать современный экран приложения для входа в систему.

Cursor Talk to Figma MCP на GitHub: https://github.com/sonnylazuardi/cursor-talk-to-figma-mcp
Платформа: дизайн и прототипирование
⭐️: 647
👍3🔥1