AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.12K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
SeeMoreTextView - подкласс NSTextView / UITextView со ссылкой See More. Помогает избежать загромождения слишком большим количеством текста, скрывая его часть и позволяя пользователям выбирать, отображать ли скрытую информацию или нет.

Исходники: https://github.com/SergeBouts/SeeMoreTextView
Smartcat Serge - пример проекта с использованием полностью автоматизированного подхода к непрерывной локализации (continuous localization) с помощью платформы Smartcat.

Это предварительно настроенный контейнер Docker с инструментом автоматизации локализации из командной строки Serge (String Extraction and Resource Generation Engine). Он извлечет изменения из вашего репозитория, проанализирует исходные файлы и отправит их на перевод в Smartcat, вернет готовые тексты, интегрирует их в локальную базу данных, сгенерирует локализованные файлы и отправит их обратно в репозиторий - все за один проход.

Проект для iOS: https://github.com/smartcatai/smartcat-serge-bootstrap-ios-native

Проект для Android: https://github.com/smartcatai/smartcat-serge-bootstrap-android-native
This media is not supported in your browser
VIEW IN TELEGRAM
TileProgressView - простой Progress View с анимацией движения.

Исходники: https://github.com/iammert/TileProgressView
Game Off — ежегодный гейм джем, который проводит GitHub. Разработчикам дается месяц на создание игры по заданным мотивам (в этом году это было “moonshot” - “полет на Луну”), а исходники потом публикуются на GitHub. В этой подборке лучшие игры джема этого года, а их исходники традиционно открыты.

GitHub: https://github.blog/2020-12-23-highlights-from-game-off-2020/
Обычно показ видео на Android “стоит” очень дорого с точки зрения производительности. Кроме того, из-за большого размера часто разработчики не хотят добавлять видео в свои проекты. С помощью этой библиотеки VideoLayout вы можете сделать быстро работающий и мало весящий видео фон в несколько строчек кода.

Исходники: https://github.com/AsynctaskCoffee/VideoLayout
Navigation controller, который отображает свои View Controller-ы в виде интерактивной стопки карточек. Бесшовно работает со scroll view, поддерживает смену ориентации экрана, может использоваться без сторибордов, написан полностью на Swift на стандартных компонентах.

Исходники: https://github.com/james01/CardNavigation
Biser Alert - “синтаксический сахар” от нашего читателя для работы с UIAlertController в стиле SwiftUI.

Пример экрана:

Alert(.actionSheet)
.ok("Gallery", [.image(.SFSymbol("rectangle.stack.fill", size: 18)), .alignment(.left), .noscriptColor(.black), .imageColor(.systemBlue)])
.ok("Camera", [.image(.SFSymbol("bolt.fill", size: 20)), .alignment(.left), .noscriptColor(.black), .imageColor(.systemBlue)])
.ok("Document", [.image(.SFSymbol("doc.text.fill", size: 20)), .alignment(.left), .noscriptColor(.black), .imageColor(.systemBlue)])
.ok("Location", [.image(.SFSymbol("location.fill", size: 20)), .alignment(.left), .noscriptColor(.black), .imageColor(.systemBlue)])
.ok("Contact", [.image(.SFSymbol("person.fill", size: 22)), .alignment(.left), .noscriptColor(.black), .imageColor(.systemBlue)], action: { _ in
print("Contact Tapped")
})
.cancel("Cancel")
.present()

Библиотека: https://github.com/dimabiserov/Alert
Finances - приложение для управления финансами как площадка для применения всех новых возможностей в Android-разработке.

Есть:

• Kotlin
• GitHub Actions
• Kotlin serialization
• Gradle Kotlin DSL
• Многомодульная архитектура
• Чистая архитектура
• Корутины и Kotlin Flow
• Java 8 desugaring
• Dagger 2
• MVI
• Firebase
• Jetpack
• Материальные компоненты
• Motion layout
• Coil
• Beagle
• Strikt
• Spek
• MockK

Исходники: https://github.com/creati8e/Finances
UIKitPlus - декларативный фреймворк для создания интерфейса iOS-приложения. Нет, не SwiftUI, лучше :) Работает с iOS 9, есть Live-preview, встроенная реактивность, локализация, основан на UIKit, поэтому основы знакомы большинству разработчиков.

Пример создания View:

#if canImport(SwiftUI) && DEBUG
import SwiftUI
@available(iOS 13.0, *)
struct MyButton_Preview: PreviewProvider, DeclarativePreview {
static var preview: Preview {
Preview {
UButton(String(.en("Hello"), .fr("Bonjour"), .ru("Привет")))
.circle()
.background(.blackHole / .white)
.color(.white / .black)
.height(54)
.edgesToSuperview(h: 8)
.centerYInSuperview()
}
.colorScheme(.dark)
.layout(.fixed(width: 300, height: 64))
.language(.fr)
.rtl(true)
}
}
#endif

Исходники: https://github.com/MihaelIsaev/UIKitPlus
SwipeDismissImage - кастомный View для Android для показа изображений с такими функциями управления пальцами, как swipe to dismiss, зум, пин и т.п.

Библиотека: https://github.com/KaustubhPatange/SwipeDismissImage
IQListKit - реализация UITableView/UICollectionView без dataSource. Просто определяете секции и ячейки, а библиотека дальше все делает сама, в том числе и анимацию изменений. Работает с iOS 9.0.

Исходники: https://github.com/hackiftekhar/IQListKit
Skelly - это крошечная библиотека для отображения скелетов, пустых состояний во время загрузки контента. Все скелеты полностью синхронизированы во всем приложении, независимо от того, сколько из них отображается на экране в данный момент. Можно настраивать цвета и радиус скругления.

Исходники: https://github.com/int02h/skelly
Dovve - это клон Twitter, созданный с помощью Twitter API. Вы можете посмотреть весь путь создания этого приложения с нуля на странице автора в Instagram, там есть видео с разными уроками.

Instagram: https://www.instagram.com/dheeraj.iosdev/

Исходники приложения: https://github.com/dheerajghub/dovve
Библиотека от нашего читателя. Finch - настраиваемое меню отладки для Android-приложений. Оно не влияет на производственный код, но разработчики могут легко и просто добавлять свои собственные функции отладки.

Исходники: https://github.com/kernel0x/finch
BottomSheet - выдвигающийся снизу экран (как в Apple Maps, Shortcuts или Apple Music) с тремя состояниями на SwiftUI.

Библиотека: https://github.com/LucasMucGH/BottomSheet
Multiplatform Compose - Kotlin-библиотека для использования Jetpack Compose в Android и iOS. Позволяет писать UI сразу для двух платформ на Kotlin. Пока, как и сам Compose, в стадии экспериментов.

Библиотека: https://github.com/cl3m/multiplatform-compose

А вот тут у нас есть вводные уроки по Jetpack Compose: https://apptractor.ru/info/articles/jetpack-compose-1.html
XCMetrics - инструмент от инженеров Spotify, который помогает собирать метрики сборок в Xcode и улучшать их качество.

XCMetrics построен поверх XCLogParser, который представляет собой инструмент анализа логов Xcode и xcodebuild, хранящихся в формате xcactivitylog. Это позволяет XCMetrics собирать точные метрики, которые вы можете просматривать и отслеживать в течение всего жизненного цикла кодовой базы. XCMetrics обработал почти 1 миллион сборок и более 10 миллиардов шагов всех приложений Spotify для iOS с момента своего появления. Это позволило разработчикам принять важные и обоснованные решение в отношении структуры и архитектуры проекта.

Сайт: https://xcmetrics.io/

Исходники: https://github.com/spotify/XCMetrics
This media is not supported in your browser
VIEW IN TELEGRAM
Продолжаем изучать Jetpack Compose. ComposeSlackDesktop - демо-версия Slack, написанная на Jetpack Compose и Kotlin.

Исходники: https://github.com/vipulasri/ComposeSlackDesktop

Документация Compose for Desktop: https://www.jetbrains.com/lp/compose/

Начинаем работу с Jetpack Compose: https://apptractor.ru/info/articles/jetpack-compose-1.html
This media is not supported in your browser
VIEW IN TELEGRAM
ToastUI - простой способ показывать “тосты”, предупреждения, индикаторы загрузки или любой другой контент поверх экранов SwiftUI.

Библиотека: https://github.com/quanshousio/ToastUI
Fast Shopping - простой список покупок. Не содержит рекламы, нет голосового ввода, нет курсов валют или бюджетирования. Простое приложение для работы.

Исходники: https://github.com/Albert221/FastShopping