AppFiles - Mobile Development
2.01K subscribers
2.56K photos
33 videos
8 files
3.45K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Простой процесс локализации в XCode с помощью Таблицы Google

В более крупных проектах я использовал такие инструменты локализации, как Phrase или Lokalize, но они довольно быстро могут стать дорогостоящими, и мне в собственном проекте не нужно большинство их функций. Чтобы сэкономить деньги, я сначала начал вручную обрабатывать файлы Localizable.strings, но и это стало огромной проблемой. XCode на самом деле не поможет вам избежать ошибок, поскольку он не даст вам знать, если вы пропустили перевод на каком-либо языке. Рефакторинг или удаление ключей перевода также отнимало много времени и приводило к ошибкам.

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

Статья: https://apptractor.ru/xcdsheet
Платформа: локализация/iOS
👍1👎1🔥1
VLC for Android - официальный порт VLC для платформы Android. Основой приложения является LibVLC, библиотека, реализующая множество мультимедийных функций, таких как проигрывание мультимедиа файлов, эффективное декодирование, просмотр сетевых ресурсов и т.п.

VLC for Android на GitHub: https://github.com/videolan/vlc-android
Платформа: Android
⭐️: 1.7K
SnapshotTesting - фреймворк для тестирования снепшотов. С помощью простой функции можно сохранить “снимок” (снепшот) любой структуры на диск, а при последующих выполнениях теста сравнивать новые снимки с ранее сохраненным. Если возникнет расхождение - Xcode выдаст ошибку и укажет на изменения. Отличие SnapshotTesting от аналогов в том, что он может работать не только с UIImage или с UIView, но с любыми данными на любых платформах.

SnapshotTesting на GitHub: https://github.com/pointfreeco/swift-snapshot-testing
Статья: https://www.pointfree.co/episodes/ep41-a-tour-of-snapshot-testing
Платформа: iOS
⭐️: 2.9K
👍2
Быстрее переписать с нуля на новой технологии: как приложение Uber переписывали на Swift

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

Статья: https://apptractor.ru/uberswift
Платформа: iOS/разработка
Stream Log — это легкая и расширяемая библиотека логирования для Kotlin и Android. Stream Log был создан на одноименной чат-платформе и уже проверен на миллиардах конечных пользователей по всему миру в тысячах различных приложений. Он прост и удобен в использовании, состоит из нескольких компонентов и вы даже можете писать логи рантайма во внешний .txt файл и использовать его для отслеживания сообщений журнала.

Stream Log на GitHub: https://github.com/GetStream/stream-log
Платформа: Android
⭐️: 54
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Coduo позволяет вам делиться проектом в Xcode и совместно работать над ним в браузере. Один человек загружает проект Xcode и Coduo, а другой подключается к нему из браузера. Поддерживаются все основные браузеры.

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

Для начала у Coduo есть 100 часов потокового времени, дальше рабочее время нужно покупать за деньги.

Coduo в Mac App Store: https://apps.apple.com/us/app/coduo-pair-coding-for-xcode/id6443565833
Платформа: iOS
🤔3❤‍🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Physics Layout - библиотека предлагает кастомный макет Jetpack Compose, который работает на основе простого физического движка dyn4j. Каждый компонент Composable корневого уровня в PhysicsLayout может использовать модификатор, чтобы сообщить симуляции, как Composable ведет себя в физическом мире. Таким образом можно создавать пространства и размещать в них элементы интерфейса как на видео.

Physics Layout на GitHub: https://github.com/KlassenKonstantin/ComposePhysicsLayout
Платформа: Android
⭐️: 171
👍1
Невозвратные затраты: когда стоит бросить проект?

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

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

Статья: https://apptractor.ru/nvzvrt
Платформа: разработка
👍1
Copilot for Xcode — это расширение Xcode Source Editor, которое обеспечивает поддержку Github Copilot в Xcode. Он использует LSP, предоставляемый через Copilot.vim.

Copilot for Xcode на GitHub: https://github.com/intitni/CopilotForXcode
Платформа: iOS
⭐️: 42
🔥2👍1
Как решить задачу Google про бросание яиц со здания

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

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

Статья: https://apptractor.ru/100eggs
Платформа: программирование
👎4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Maestro - простой и эффективный фреймворк для тестирования UI. Главные особенности: толерантность к изменениям интерфейса, автоматическая обработка задержек, быстрые итерации, декларативный синтаксис, простая установка.

Maestro на GitHub: https://github.com/mobile-dev-inc/maestro
Платформа: Android/iOS
⭐️: 2.8K
Seal - загрузчик видео/аудио для Android. Умеет скачивать видео и аудио с платформ, поддерживаемых yt-dlp (youtube-dl), добавлять файлам метаданные, скачивать плейлисты, встраивать субтитры и пр. Сделано на Material Design 3 и с учетом MAD на чистом Kotlin.

Seal на GitHub: https://github.com/JunkFood02/Seal
Платформа: Android
⭐️: 1.9K
👍1
Jukebox - минималистичный аудиоплеер для Jetpack Compose. Основное внимание в нем уделяется гибкости загрузки, отображения ошибок и управления аудио.

Jukebox на GitHub: https://github.com/LouisDuboscq/Jukebox
Платформа: Android
⭐️: 37
👍1
Popup View - тосты, алерты и попапы для SwiftUI.

Popup View на GitHub: https://github.com/exyte/PopupView
Платформа: iOS
⭐️: 1.8K
Формирование навыков разработчика

Кошелек Миллера — неприятная закономерность, которая делает из сложности программного обеспечения проблему. Самый простой и очевидный способ борьбы с кошельком — это разделение программы на небольшие части, в каждой из которых не больше 5-10 сущностей. Но у этого простого и очевидного способа есть недостаток, озвученный еще Дэвидом Уилером в известном афоризме:

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

Статья: https://apptractor.ru/navrazr
Платформа: разработка
👍2
Animated Circular Download Button - анимированная кнопка , отображающая процесс загрузки. Сделано все на Jetpack Compose.

Animated Circular Download Button на GitHub: https://github.com/M0Coding/Animated-Circular-Download-Button
Платформа: Android
⭐️: 33
SwiftUI View Lifecycle - приложение для iOS и macOS, демонстрирующее как разные конструкты и представления контейнеров в SwiftUI работают с событиями жизненного цикла, вроде onAppear и onDisappear.

SwiftUI View Lifecycle на GitHub: https://github.com/ole/swiftui-view-lifecycle
Платформа: iOS
⭐️: 104
Catalog Android Sample App - фреймворк для ускорения создания приложений-каталогов за счет удаления шаблонного кода и динамического включения всего нужного в одну Activity. Google предупреждает, что это экспериментальный проект, который находится в стадии интенсивной разработки, API могут часто меняться.

CASA на GitHub: https://github.com/google/casa-android
Платформа: Android
⭐️: 128