AppFiles - Mobile Development
2.01K subscribers
2.61K photos
33 videos
8 files
3.51K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Gramophone - вменяемый музыкальный плеер, построенный на media3 и библиотеке Material Design, который строго следует стандартам Android. Из фич - современный дизайн на основе Material 3, динамический UI, поиск, синхронизированные тексты песен, управление плейлистами.

Gramophone на GitHub: https://github.com/AkaneTan/Gramophone
Платформа: Android
⭐️: 543
Android TOML. Просто о каталогах зависимостей в Android Studio

Меня зовут Евгений и я Android-разработчик. Сегодня хотел бы поделиться своими знаниями и наблюдениями относительно нового способа добавления зависимостей в проекты, созданные на базе Android Studio.

Статья: https://habr.com/ru/articles/801287/
Платформа: Android
🤔1
Интерактивные виджет-подборки в Иви (iOS)

В 2022 году у нас появились первые HomeScreen виджеты, это был первый опыт работы с библиотекой WidgetKit. Затем появились LockScreen виджеты и мы их тоже добавили. А выход iOS 17 и поддержка библиотеки AppIntents в виджетах, знаменовал новый этап в эволюции виджетов.

В этой статье поговорим о том, как мы зарелизили интерактивные виджеты и из чего они состоят: разделение логических слоёв на SPM пакеты, обеспечение качества (unit, snapshot тесты), accessibility и с каким нюансами столкнулись, о которых Apple не рассказывала на WWDC23.

Статья: https://habr.com/ru/companies/ivi/articles/796331/
Платформа: iOS
🔥1
Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 1

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

Это первая статья из серии и посвящена она инициализации состояния в блоке init{}. Всего планируется 15 (!) статей.

Перевод: https://apptractor.ru/info/articles/osvaivaem-viewmodel-v-android-mozhno-i-nelzya-chast-1.html
Платформа: Android
1
This media is not supported in your browser
VIEW IN TELEGRAM
JTAppleCalendar - календарь для iOS на Swift. Полностью настраиваемый, с настройками ячеек и общего вида, горизонтальным и вертикальным режимом, изменяемыми заголовками, выбором диапазонов и всем прочим.

JTAppleCalendar на GItHub: https://github.com/patchthecode/JTAppleCalendar
Платформа: iOS
⭐️: 7.5K
Вы за это заплатите! Цена Чистой Архитектуры

Меня зовут Артемий, я работаю старшим Android-разработчиком в core-команде RuStore. Мой опыт в индустрии уже 8 лет. За это время я успел поработать в разных проектах и компаниях. У меня был опыт работы на проекте, в котором было свыше 300 модулей и больше 60 Android-разработчиков. Такие условия заставляют задуматься о масштабируемости на принципиально ином уровне.

Сегодня я расскажу о способах обеспечения масштабируемости проекта и как этому может навредить неправильное восприятие Чистой Архитектуры.

Статья: https://habr.com/ru/companies/vk/articles/801393/
Платформа: архитектура

Еще:

Видео
В защиту простых архитектур
Отсутствие архитектуры лучше, чем плохая архитектура
2
Shattered Pixel Dungeon - это традиционный рогалик с открытым исходным кодом, рандомизированными уровнями и врагами, а также сотнями предметов для сбора и использования. Shattered Pixel Dungeon в настоящее время можно скомпилировать для Android, iOS и настольных платформ.

Shattered Pixel Dungeon на GitHub: https://github.com/00-Evan/shattered-pixel-dungeon
Платформа: Android
⭐️: 3.9K
AutoDev - помощник для программирования на базе искусственного интеллекта с многоязыковой поддержкой, автоматической генерацией кода и помощником по устранению ошибок. Поддерживает Java, Kotlin, JavaScript/TypeScript, Rust, Python, Golang, C/C++, Rust, SQL и прочие языки, создание юнит-тестов и конфигов CI/CD, генерацию документации и т.д.

AutoDev на GitHub: https://github.com/unit-mesh/auto-dev
Платформа: разработка
⭐️: 1.4K
Видео и подкасты за неделю:

(iOS Ru) Разработка под Apple Vision Pro
(iOS Ru) Как встроить в TextField индикатор загрузки и кастомную View
(iOS En) JSON Parsing With Pagination
(iOS En) Build 3D content for visionOS Apps
(iOS En) Long Press Button With Progress Bar
(iOS En) Create a 3D shiny card in SwiftUI
(iOS En) Sign In With Apple - Firebase
(iOS En) SwiftUI Horizontal Wheel Picker
(And Ru) Разработка новостного приложения. Часть 4
(And Ru) Мапим данные из domain в ui модуль в многомодульном проекте
(And En) Now in Android: 101 - Android 15 Developer Preview 2, TheAndroidShow, the Google I/O date, & more
(And En) How to Implement Biometric Auth in Your Android App
(And En) This Is My FAVORITE Error Handling Class
(And En) Java vs. Kotlin: The Ultimate Showdown of Virtual Threads & Coroutines
(Crs Ru) Рецепт приготовления кроссплатформенного мобильного видеоредактора
(Dev Ru) Собеседование по System Design: проектируем клон Авито (все собеседования 🧠)
(Dev Ru) Демистифицируем машинное обучение – из разработчика в ML-инженеры
(Dev Ru) Не работал в FAANG — не программист: полгода работы в Apple
(Dev Ru) Программисты не нужны

Что вы интересного посмотрели/послушали про разработку на этой неделе? 🌐 @AppFiles
Please open Telegram to view this post
VIEW IN TELEGRAM
AboutLibraries автоматически собирает все зависимости и лицензии Gradle-проекта и предоставляет легко интегрируемые UI-компоненты для сред Android и Compose. Делает это во время компиляции и предлагает простые API для их визуализации в приложении. Никаких накладных расходов во время выполнения. Сильное кэширование. Поддерживаются любые gradle-зависимости. Поддерживает Kotlin Multiplatform.

AboutLibraries на GitHub: https://github.com/mikepenz/AboutLibraries
Платформа: Android
⭐️: 3.5K
Быстрый старт, или Как ускорить запуск iOS-приложений

В этой статье мы попробуем разобраться, как ускорить запуск приложения, а именно:

• что происходит от момента нажатия на иконку приложения до представления возможности пользователю взаимодействовать с UI;
• как собрать актуальные метрики скорости запуска и отзывчивости приложения;
• какие тактики применить, чтобы ускорить старт и отзывчивость запуска.

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

Статья: https://habr.com/ru/companies/simbirsoft/articles/801251/
Платформа: iOS
Разработка под Android в 2024 году

Эта статья отражает моё личное мнение и профессиональные взгляды, учитывающие различные точки зрения в сообществе Android-разработчиков. Кроме того, я регулярно просматриваю руководства от Google для Android.

Статья: https://habr.com/ru/companies/otus/articles/800979/
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Делаем DVD-заставку на SwiftUI

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

Статья: https://apptractor.ru/info/articles/delaem-dvd-zastavku-na-swiftui.html
Платформа: iOS
4
Ignite - это конструктор статических сайтов для разработчиков Swift, предлагающий выразительный и мощный API для создания красивых сайтов, которые отлично работают на всех устройствах.

Ignite не пытается преобразовать код SwiftUI в HTML или просто сопоставить HTML-теги с кодом Swift. Вместо этого он стремится использовать синтаксис, похожий на SwiftUI, чтобы помочь вам создавать прекрасные веб-сайты, даже если вы не знаете HTML или CSS.

Ignite на GitHub: https://github.com/twostraws/Ignite
Платформа: iOS
⭐️: 562
👍2
Инструментальные цепочки Gradle редко бывают хорошей идеей

Вас никто не осудит за то, что вы считаете, что цепочки инструментов Java - это лучший способ управления компиляцией. Однако они редко бывают хорошей идеей. Давайте разберемся, почему.

Статья: https://apptractor.ru/info/articles/instrumentalnye-tsepochki-gradle-redko-byvayut-horoshey-ideey.html
Платформа: Android
Adwaita for Swift - это фреймворк для создания пользовательских интерфейсов для GNOME с API, похожим на SwiftUI. Основная цель Adwaita - предоставить iOS-разработчикам простой в использовании интерфейс для создания GNOME-приложений. Бэкэнд должен оставаться как можно более простым, не ограничивая при этом возможности Libadwaita и GTK.

Adwaita на GitHub: https://github.com/AparokshaUI/adwaita-swift
Платформа: iOS/кроссплатформа
⭐️: 295
Better Open With заменяет диалог "Открыть файл с помощью" в Android. Приложение визуально отображает все действия по умолчанию для открытия ссылок, изображений, PDF и многих других типов файлов, перечисляя все возможные приложения, которые вы обычно видите. В отличие от стандартного диалога, всплывающее окно показывается в течение нескольких секунд (по умолчанию 5, но это можно настроить). В окне предлагается выбрать приложение, после выбора оно автоматически будет открывать данный тип файлов. В отличии от других подобных приложений, в этом вы просто ждете запуска приложения по умолчанию (без необходимости нажимать) или выбираете другое.

Better Open With на GitHub: https://github.com/Giorgi/BetterOpenWith
Платформа: Android
⭐️: 23
К чему с годами приводит работа с Dependency Injection и Service Locator

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

Так произошло и со мной. Решил написать полноценный функционал для работы с зависимостями и, так как я Android-разработчик, адаптировать для работы в моей привычной среде и для моих таких же привычных задач.

А делюсь я написанным творением с наивной мыслью, что это сделает кого-то лучше в техническом плане.

Статья: https://habr.com/ru/companies/alfa/articles/802587/
Платформа: Android
SQLite.swift - типобезопасный слой чистого Swift поверх SQLite3. Библиотека обеспечивает проверку синтаксиса выражений и намерений SQL-операторов во время компиляции, предоставляя массу полезных простых в использовании функций для работы с базой данных.

SQLite.swift на GitHub: https://github.com/stephencelis/SQLite.swift
Платформа: iOS
⭐️: 9.4K
Исходников нет, но мы не сдадимся: как и зачем я портировал более старый Android, чем стоял «с завода»?

Моддинг-сцена с разработкой и портированием кастомных прошивок для Android-устройств существует вот уже более 10 лет. В основном, энтузиасты пытаются проапгрейдить свои устройства путем портирования более свежих версий Android, чем предлагает производитель девайса. Чего уж говорить, если Galaxy S III, которому уже 12 лет стукнуло, получил неофициальный апгрейд до Android 14. Порой мне в голову приходят различные, весьма странные моддерские мысли: например, почему бы не портировать на старенький смартфон… ещё более старую версию Android, дабы посмотреть «что будет». Казалось бы «портировал и портировал», но в процессе работы я столкнулся с множеством интересных нюансов и особенностей работы Android, о которых хотел бы рассказать и вам.

Статья: https://habr.com/ru/companies/timeweb/articles/802591/
Платформа: Android
1