AppFiles - Mobile Development
1.99K subscribers
2.53K photos
33 videos
8 files
3.41K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Media player UI for Jetpack Compose - composable компоненты для AndroidX Media3, коллекции медиабиблиотек.

Media player на GitHub: https://github.com/fengdai/compose-media
Платформа: Android
⭐️: 54
Как стать -10х инженером

10x разработчики может и миф, но инженеры -10x существуют.

Чтобы стать -10x инженером нужно просто потратить 400 инженерных часов в неделю. Вот какими стратегиями этого можно добиться.

• Свести к нулю результаты работы 10 инженеров
• Создайте 400 часов напряженной работы
• Создайте 400 часов выгорания/текучки
• Держите 10 инженеров в заложниках технической дискуссии
• Добавьте 400 часов накладных расходов на коммуникации
• Потратьте 10-недельный зарплатный фонд на облачные расходы
• Создавайте бесполезные инструменты
• Добавьте 400 часов времени на компиляцию/сборку
• Пишите бессмысленные тесты
• Потратьте 400 часов на проектирование плохой архитектуры
• Потратьте 400 часов на развертывание
• Потратьте 10-недельный зарплатный фонд на недовольных клиентов
• Пишите бесполезную документацию
• Заманите 10 инженеров в ловушку бесполезного проекта
• Добавьте зависимости, которые требуют 400 часов на поддержку
• Откладывайте пивот
• Наймите десять 0х инженеров
• Наймите пять -1x инженеров
• Не допускайте увольнения десяти -1x инженеров
• Потратьте 400 часов на устранение ошибок

Статья: https://apptractor.ru/info/articles/10h.html
SwiftFormat - библиотека и инструмент командной строки для реформатирования кода Swift. SwiftFormat выходит за рамки того, что можно ожидать от форматера кода. В дополнение к корректировке пробелов он может вставлять или удалять неявные self, удалять лишние скобки и исправлять многие другие отклонения от стандартных идиом Swift.

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

SwiftFormat на GitHub: https://github.com/nicklockwood/SwiftFormat
Платформа: iOS
⭐️: 6.5K
👍2
Создание Reddit Recap с помощью Jetpack Compose

Когда мы впервые представили Reddit Recap нашим пользователям в конце 2021 года, он завоевал огромную популярность, и мы знали, что он вернется в 2022 году. И хотя между выпусками прошел всего год, способ создания мобильных приложений в Reddit кардинально изменился, что заставило нас перестроить работу с Recap с нуля, сделав его более ярким, с богатой анимацией и расширенными возможностями шаринга.

Одним из самых значительных изменений стало внедрение Jetpack Compose и нашей архитектуры презентаций на основе композиций. Чтобы полностью использовать нашу реактивную UI-архитектуру, мы решили переписать весь пользовательский интерфейс с нуля на Compose. Мы посчитали, что это стоит того, поскольку Compose позволит нам выразить наш пользовательский интерфейс с помощью простых, многократно используемых компонентов.

Статья: https://apptractor.ru/reddit-recap
Платформа: Android
Android User Interface Samples - коллекция фирменных Android-проектов от Google, которые помогут вам понять фичи UI и начать встраивать их в свои приложения.

Android User Interface Samples на GitHub: https://github.com/android/user-interface-samples
Платформа: Android
⭐️: 3.9K
Один год инди-разработки

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

Статья: https://apptractor.ru/odin-god
Платформа: инди-разработка
SwiftWhisper - обертка для порта системы Whisper от OpenAI 🙈 Whisper - это модель распознавания речи общего назначения. Она обучена на большом наборе данных разнообразных аудиозаписей и является многозадачной моделью, которая может выполнять многоязычное распознавание речи, перевод речи и идентификацию языка. С помощью SwiftWhisper вы можете встроить стороннюю C/C++ имплементацию Whisper в свои приложения.

SwiftWhisper на GitHub: https://github.com/exPHAT/SwiftWhisper
Whisper.cpp на GitHub: https://github.com/ggerganov/whisper.cpp
OpenAI Whisper на GitHub: https://github.com/openai/whisper
Платформа: iOS
⭐️: 38
Stream Result - “железнодорожно-ориентированная” библиотека для моделирования и простой обработки успехов/неудач для Kotlin, Android и Retrofit.

Железнодорожно-ориентированное программирование - это функциональный подход к обработке success/failure нормализованными способами, всегда позволяющий предсказать результат. Эта библиотека поможет вам реализовать железнодорожно-ориентированные модели и функции в Kotlin и Android (особенно с помощью Retrofit).

Stream Result на GitHub: https://github.com/getStream/stream-result
Платформа: Android
⭐️: 59
Шаблон Цепочка обязанностей и его реализация на Swift

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

Статья: https://apptractor.ru/Chain-of-responsibility
Платформа: Swift
Swift Power Assert - показывает информацию о состоянии всех переменных ассерта в виде удобной диаграммы (Power assertions или Диаграммные утверждения дополняют неудачи утверждений информацией о значениях, полученных при оценке условия, и представляют ее в легко усваиваемой форме).

Swift Power Assert реализована с использованием макросов - экспериментальной возможности Swift. Поэтому для использования этой библиотеки необходимо использовать предварительную версию инструментов Swift.

Swift Power Assert на GitHub: https://github.com/kishikawakatsumi/swift-power-assert
Платформа: iOS
⭐️: 136
В Compose враг номер один - это ненужные рекомпозиции. Часто разработчики используют такие инструменты, как recompositionHighligher, LogComposition и layout inspector для подсчета рекомпозиций, но нет прямого способа понять, почему произошла рекомпозиция. Rebugger - это простая функция компоновки, которая может отслеживать изменения в заданных аргументах. Она выводит причину рекомпозиции в окно Logcat.

Rebugger на GitHub: https://github.com/theapache64/rebugger
Платформа: Android
⭐️: 339
До того, как это стало стримом — рассказываем о настройке потокового вещания

Пользователь запускает приложение, нажимает кнопку — и вжух, уже стримит в сеть, а к его стриму подключаются другие пользователи. В плеере в этот момент происходит огромная работа: скрипты забирают изображение и звук, кодируют, пакуют в контейнеры, и передают данные в местный разгрузочный порт, где контейнер снова разбивают на упакованное в него видео и аудио. Сколько усилий! Как эти усилия выглядят на самом деле и о способах настройки потокового вещания на примере работы с протоколом SRT рассказывает iOS-разработчик CleverPumpkin Никита Тархов.

Статья: https://apptractor.ru/stream-potok
Платформа: iOS
MarkdownUI - это мощная библиотека для отображения и настройки Markdown-текста в SwiftUI. Она совместима с GitHub Flavored Markdown Spec и может отображать изображения, заголовки, списки, кавычки, блоки кода, таблицы, а также стилизованный текст и ссылки.

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

Работает минимум на iOS 15.0.

MarkdownUI на GitHub: https://github.com/gonzalezreal/swift-markdown-ui
Платформа: iOS
⭐️: 1.3K
5 способов подготовить ваше приложение к выходу Android Studio Flamingo

При обновлении до Android Studio Flamingo и Android Gradle Plugin 8.0 необходимо обновить файлы сборки приложений, чтобы учесть пять важных изменений в поведении сборки.

Статья (En): https://apptractor.ru/5-ways-to-prepare-your-app
Платформа: Android
Как использовать If Case Let в Swift и не сойти с ума

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

Статья (En): https://apptractor.ru/if-case-let-in-swift
Платформа: iOS
Forwarded from Код Воробья для iOS разработчиков
В 💻 Xcode 14 прокачали автокомплит - инициализаторы, Codable, форматирование и другое. В видео наглядно, как это работает.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Сам себе экосистема: Как я адаптировал старый смартфон под современные реалии и написал клиенты нужных мне сервисов

Время неумолимо бежит вперед: выходят новые гаджеты, постепенно заменяя старые, превращая их в тыкву или в лучшем случае, в «тапочек» для звонков. Сейчас смартфоны стали практически одинаковы во всем: дисплей на всю площадь передней панели, почти полное отсутствие аппаратных кнопок, беспроводная зарядка… Это всё, конечно, здорово, но ведь иногда так хочется взять в руки старый, но такой необычный в наше время QWERTY-смартфон и попытатьфся его использовать как основной, да и цены на них могут приятно удивить: БУ девайс можно купить за несколько сотен рублей (~5-10$). Одна проблема — клиенты приложений на версии Android 1.6-2.0 безбожно устарели и давно не работают. Но иногда желание воскресить старый девайс превыше потребительского качества и тут я пришёл к мысли… а почему бы не написать с нуля свои клиенты популярных приложений? ВК с музыкой, YouTube, трекинг посылок. Так я и сел писать необходимые в повседневной жизни приложения, с нуля, на голом API Android, без каких либо фреймворков (и даже AppCompat).

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