SeeMoreTextView - подкласс NSTextView / UITextView со ссылкой See More. Помогает избежать загромождения слишком большим количеством текста, скрывая его часть и позволяя пользователям выбирать, отображать ли скрытую информацию или нет.
Исходники: https://github.com/SergeBouts/SeeMoreTextView
Исходники: 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
Это предварительно настроенный контейнер 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
Исходники: https://github.com/iammert/TileProgressView
Game Off — ежегодный гейм джем, который проводит GitHub. Разработчикам дается месяц на создание игры по заданным мотивам (в этом году это было “moonshot” - “полет на Луну”), а исходники потом публикуются на GitHub. В этой подборке лучшие игры джема этого года, а их исходники традиционно открыты.
GitHub: https://github.blog/2020-12-23-highlights-from-game-off-2020/
GitHub: https://github.blog/2020-12-23-highlights-from-game-off-2020/
The GitHub Blog
Highlights from Game Off 2020
Explore over 500 fun and free games that were submitted - all with source code available!
Обычно показ видео на Android “стоит” очень дорого с точки зрения производительности. Кроме того, из-за большого размера часто разработчики не хотят добавлять видео в свои проекты. С помощью этой библиотеки VideoLayout вы можете сделать быстро работающий и мало весящий видео фон в несколько строчек кода.
Исходники: https://github.com/AsynctaskCoffee/VideoLayout
Исходники: https://github.com/AsynctaskCoffee/VideoLayout
Navigation controller, который отображает свои View Controller-ы в виде интерактивной стопки карточек. Бесшовно работает со scroll view, поддерживает смену ориентации экрана, может использоваться без сторибордов, написан полностью на Swift на стандартных компонентах.
Исходники: https://github.com/james01/CardNavigation
Исходники: https://github.com/james01/CardNavigation
Biser Alert - “синтаксический сахар” от нашего читателя для работы с UIAlertController в стиле SwiftUI.
Пример экрана:
Библиотека: https://github.com/dimabiserov/Alert
Пример экрана:
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
Думаю разделить канал на два - отдельно все про iOS и отдельно про Android. Как лучше?
Anonymous Poll
35%
Лучше все в одном, как сейчас
54%
Лучше раздельно
7%
Не хочу ничего решать, хочу оливье
4%
Решать не хочу, но хочу сельдь под шубой. Вот выше упыри-то, оливье...
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
Есть:
• 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:
Пример создания 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/UIKitPlusSwipeDismissImage - кастомный View для Android для показа изображений с такими функциями управления пальцами, как swipe to dismiss, зум, пин и т.п.
Библиотека: https://github.com/KaustubhPatange/SwipeDismissImage
Библиотека: https://github.com/KaustubhPatange/SwipeDismissImage
IQListKit - реализация UITableView/UICollectionView без dataSource. Просто определяете секции и ячейки, а библиотека дальше все делает сама, в том числе и анимацию изменений. Работает с iOS 9.0.
Исходники: https://github.com/hackiftekhar/IQListKit
Исходники: https://github.com/hackiftekhar/IQListKit
Skelly - это крошечная библиотека для отображения скелетов, пустых состояний во время загрузки контента. Все скелеты полностью синхронизированы во всем приложении, независимо от того, сколько из них отображается на экране в данный момент. Можно настраивать цвета и радиус скругления.
Исходники: https://github.com/int02h/skelly
Исходники: https://github.com/int02h/skelly
Dovve - это клон Twitter, созданный с помощью Twitter API. Вы можете посмотреть весь путь создания этого приложения с нуля на странице автора в Instagram, там есть видео с разными уроками.
Instagram: https://www.instagram.com/dheeraj.iosdev/
Исходники приложения: https://github.com/dheerajghub/dovve
Instagram: https://www.instagram.com/dheeraj.iosdev/
Исходники приложения: https://github.com/dheerajghub/dovve
Библиотека от нашего читателя. Finch - настраиваемое меню отладки для Android-приложений. Оно не влияет на производственный код, но разработчики могут легко и просто добавлять свои собственные функции отладки.
Исходники: https://github.com/kernel0x/finch
Исходники: https://github.com/kernel0x/finch
BottomSheet - выдвигающийся снизу экран (как в Apple Maps, Shortcuts или Apple Music) с тремя состояниями на SwiftUI.
Библиотека: https://github.com/LucasMucGH/BottomSheet
Библиотека: 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
Библиотека: 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
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
Исходники: 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
Библиотека: https://github.com/quanshousio/ToastUI
Fast Shopping - простой список покупок. Не содержит рекламы, нет голосового ввода, нет курсов валют или бюджетирования. Простое приложение для работы.
Исходники: https://github.com/Albert221/FastShopping
Исходники: https://github.com/Albert221/FastShopping