AppFiles - Mobile Development
1.99K subscribers
2.53K photos
33 videos
8 files
3.41K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
SunKit - это библиотека Swift, которая использует математику и тригонометрию для вычисления всех возможных сведений о Солнце (есть аналогичный и про Луну). Для вычисления восхода, заката, золотого часа, первого света, азимутов и всего прочего нужен только CLLocation и часовой пояс места.

Этот пакет был разработан командой учеников, относительно недавно освоивших язык программирования Swift, что означает, что в нем может быть много места для улучшений. SunKit был впервые разработан как часть более крупного проекта Sunlitt. Несмотря на то, что Sunlitt не предназначен для выпуска в качестве Open Source, авторы решили выделить фундаментальную логику приложения и сделать из нее библиотеку с открытым исходным кодом.

SunKit на GitHub: https://github.com/Sunlitt/SunKit
Платформа: iOS
⭐️: 51
🤔1
Тестирование производительности Swift-кода с помощью XCTest

В Swift мы можем проводить тестирование производительности с помощью фреймворка XCTest, который является частью среды разработки Xcode. XCTest — это фреймворк для модульного тестирования для Apple iOS и OS X, который позволяет разработчикам создавать и запускать автоматические тесты. Он предоставляет полный набор инструментов для написания, запуска и анализа модульных тестов и тестов производительности для Swift-приложений. В этой статье мы узнаем, как проводить тестирование производительности в Swift с помощью фреймворка XCTest.

Статья: https://apptractor.ru/xctest-perf
Платформа: iOS
👍1
Kotlin Onboarding — обучающий курс по Kotlin прямо в Intellij

Цель курса — научиться писать простые консольные приложения на Kotlin и ознакомиться с синтаксисом и возможностями языка. В качестве предварительного условия вам необходимо базовое понимание программирования на любом языке, поскольку курс не объясняет подробно фундаментальные понятия, такие как переменные, функции или циклы, а скорее предлагает простые напоминания об их определениях и демонстрирует, как они могут быть использованы в Kotlin.

В рамках курса вы реализуете шесть консольных приложений.

Статья: https://apptractor.ru/kotlin-onboarding
Платформа: Kotlin/обучение
KutePreferences - библиотека для создания экрана настроек. Из особенностей - Kotlin, Compose и Material Design 3, большое количество предопределенных типов настроек, поиск, поддержка стилей.

KutePreferences на GitHub: https://github.com/markusressel/KutePreferences
Платформа: Android
⭐️: 5
🔥1
TwitterTextEditor - автономный, гибкий API, предоставляющий полнофункциональный текстовый редактор для iOS-приложений. Он поддерживает безопасную модификацию текста, аннотации атрибутов, такие как подсветка синтаксиса, вставка или перетаскивание. Редактор обеспечивает надежную логику обновления атрибутов, расширенные события редактирования и безопасную обработку событий ввода текста в простых API на основе делегатов. TwitterTextEditor поддерживает последние версии iOS.

TwitterTextEditor на GitHub: https://github.com/twitter/TwitterTextEditor
Платформа: iOS
⭐️: 2.8K
Основы Android-разработки в Revolut

Давайте заглянем за кулисы разработки Android в Revolut и узнаем, как мы предоставляем наши культовые приложения миллионам клиентов по всему миру.

• Команда мечты
• Команда мобильной платформы
• Команда системного дизайна
• Продуктовые команды
• Процесс разработки
• Архитектура на уровне проекта
• Архитектура на уровне приложений
• UI/UX
• Краткий обзор технического стека
• QA и тестирование
• Обзор кода и поток Git
• Управление релизами
• Аналитика

Статья: https://apptractor.ru/revolut
Платформа: Android/разработка
🔥2🌚2
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