Android Broadcast: cоветы по уведомлениям в Android
В выпуске:
• 2:26 В чем сила уведомлений
• 4:22 Эволюция уведомлений
• 7:23 Проблемы Android SDK
• 10:28 Ошибки разработчиков
• 13:48 Что нет так с NotificationCompat
• 17:31 Библиотека Android Notification DSL
• 21:31 Firebase Cloud Messaging
• 24:02 Заключение
https://apptractor.ru/info/media/android-broadcast-covety-po-uvedomlenijam-v-android.html
В выпуске:
• 2:26 В чем сила уведомлений
• 4:22 Эволюция уведомлений
• 7:23 Проблемы Android SDK
• 10:28 Ошибки разработчиков
• 13:48 Что нет так с NotificationCompat
• 17:31 Библиотека Android Notification DSL
• 21:31 Firebase Cloud Messaging
• 24:02 Заключение
https://apptractor.ru/info/media/android-broadcast-covety-po-uvedomlenijam-v-android.html
Если у вас в приложении больше одного языка, то наверняка вы знаете, в какое месиво со временем превращаются файлы локализации. LocalizerLint - утилита командной строки (встраивается в сборку), которая проверяет локализационные файлы в проекте Xcode на дубли или неиспользованные строки.
Исходники: https://github.com/xlsmearlx/LocalizableLint
Исходники: https://github.com/xlsmearlx/LocalizableLint
Pokedex-AR - небольшое демонстрационное приложение, показывающее основы AR, современный технический стек приложений для Android и архитектура MVVM. Этот проект ориентирован на ARCore и SceneForm, на получение данных из сети и интеграции сохраненных данных из базы с помощью шаблона репозитория.
Исходники: https://github.com/skydoves/Pokedex-AR
Исходники: https://github.com/skydoves/Pokedex-AR
Документация для разработчиков всегда была слабым местом Apple. Однако в последнее время, кажется, компания все больше внимания и усилий вкладывает в это направление - документация постепенно улучшается, а сейчас даже появились нормальные уроки по основам SwiftUI.
“Разработка приложений с SwiftUI” - 8 уроков об использовании SwiftUI в реальных задачах и приложениях. Ориентировочное время прохождения всех кодлабов от Apple 4 часа. Темы - создание View, навигация, передача данных, управление состоянием, хранение данных, рисование и т.п.
Официальный сайт: https://developer.apple.com/tutorials/app-dev-training
“Разработка приложений с SwiftUI” - 8 уроков об использовании SwiftUI в реальных задачах и приложениях. Ориентировочное время прохождения всех кодлабов от Apple 4 часа. Темы - создание View, навигация, передача данных, управление состоянием, хранение данных, рисование и т.п.
Официальный сайт: https://developer.apple.com/tutorials/app-dev-training
Onboardingflow - библиотека, которая позволяет вам выделять и описывать любой видимый элемент пользовательского интерфейса для пользователей, проводя своеобразный онбординг. Автор пишет, что пока библиотека находится в стадии разработки, но ее уже можно использовать.
Исходники: https://github.com/MrIceman/onboardingflow
Исходники: https://github.com/MrIceman/onboardingflow
This media is not supported in your browser
VIEW IN TELEGRAM
Motion - это движок анимации для пользовательских интерфейсов, управляемых жестами. Предназначен для анимаций и взаимодействий на iOS, macOS и tvOS, он работает на SIMD и полностью написан на Swift. Motion позволяет легко создавать физически смоделированные, прерываемые анимации (например, пружины, угасания и т.д.), которые работают рука об руку с распознаванием жестов, что делать возможным наиболее плавные и восхитительные взаимодействия.
Библиотека: https://github.com/b3ll/Motion
Библиотека: https://github.com/b3ll/Motion
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), .titleColor(.black), .imageColor(.systemBlue)])
.ok("Camera", [.image(.SFSymbol("bolt.fill", size: 20)), .alignment(.left), .titleColor(.black), .imageColor(.systemBlue)])
.ok("Document", [.image(.SFSymbol("doc.text.fill", size: 20)), .alignment(.left), .titleColor(.black), .imageColor(.systemBlue)])
.ok("Location", [.image(.SFSymbol("location.fill", size: 20)), .alignment(.left), .titleColor(.black), .imageColor(.systemBlue)])
.ok("Contact", [.image(.SFSymbol("person.fill", size: 22)), .alignment(.left), .titleColor(.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