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
В пятницу не могу не поделиться красотой - трассировка лучей (ray tracing) на С++ в ASCII.
Видео: https://youtu.be/QkETiyYWh2o
Исходники: https://github.com/DinoZ1729/Ray
У этого же автора есть не менее красивое видео - симуляция столкновения галактик: https://www.youtube.com/watch?v=x62gOfZ9hCw
Видео: https://youtu.be/QkETiyYWh2o
Исходники: https://github.com/DinoZ1729/Ray
У этого же автора есть не менее красивое видео - симуляция столкновения галактик: https://www.youtube.com/watch?v=x62gOfZ9hCw
Bouncy - отскок для RecyclerView и NestedScrollView ̶(̶к̶а̶к̶ ̶в̶ ̶б̶о̶г̶о̶м̶е̶р̶з̶к̶о̶м̶ ̶i̶O̶S̶)̶, плюс drag&drop и свайпы.
Библиотека: https://github.com/Valkriaine/bouncy
Библиотека: https://github.com/Valkriaine/bouncy
Wyler - легковесная библиотека, написанная на Swift, которая организует процесс записи происходящего на экране на iOS. Можно записывать видео своего приложения и сохранять их в библиотеку.
Исходники: https://github.com/toupper/Wyler
Исходники: https://github.com/toupper/Wyler
This media is not supported in your browser
VIEW IN TELEGRAM
GaugeProgressView - индикатор прогресса в виде спидометра. Меняется практически все - цвета, толщина, начальное и конечное положение, шрифты и т.п.
Исходники: https://github.com/edgar-zigis/GaugeProgressView
Исходники: https://github.com/edgar-zigis/GaugeProgressView
Поиск ошибок в небезопасном и уязвимом приложении для Android
DIVA (Damn Insecure Vulnerable App, Чертовски Небезопасное Уязвимое Приложение) - это уязвимое приложение, предназначенное для ознакомления с самыми распространенными уязвимостями, которые можно найти в приложениях для Android. Эта статья проведет вас через обнаружение некоторых из этих уязвимостей - небезопасный вход, прописывание ключей безопасности в коде, небезопасное хранение данных, проблемы с проверкой введенных данных, с разграничением доступа.
Платформа: Android
Medium: 👏 130
DIVA (Damn Insecure Vulnerable App, Чертовски Небезопасное Уязвимое Приложение) - это уязвимое приложение, предназначенное для ознакомления с самыми распространенными уязвимостями, которые можно найти в приложениях для Android. Эта статья проведет вас через обнаружение некоторых из этих уязвимостей - небезопасный вход, прописывание ключей безопасности в коде, небезопасное хранение данных, проблемы с проверкой введенных данных, с разграничением доступа.
Платформа: Android
Medium: 👏 130
Как создать коллекцию карт в стиле Revolut
Эта статья призвана помочь вам понять, как кастомизировать UICollectionView, создав подкласс UICollectionViewFlowLayout.
Вы займетесь отступами, межстрочными интервалами и протоколами UIScrollView, чтобы добиться эффекта выскакивания для каждой ячейки при прокрутке пользователем. А также добавите анимацию масштабирования, когда пользователь проводит по ним, чтобы придать им ощущение упругости.
Платформа: iOS
Medium: 👏 68
Эта статья призвана помочь вам понять, как кастомизировать UICollectionView, создав подкласс UICollectionViewFlowLayout.
Вы займетесь отступами, межстрочными интервалами и протоколами UIScrollView, чтобы добиться эффекта выскакивания для каждой ячейки при прокрутке пользователем. А также добавите анимацию масштабирования, когда пользователь проводит по ним, чтобы придать им ощущение упругости.
Платформа: iOS
Medium: 👏 68
Medium
How to Create a Revolut-Esque Cards Collection View on iOS
Learn to make scroll-and-snap collection view cells and scale them on scroll