Как дела, Корбинд! Выпуск 1.7.0 🎉. Это был долгий путь.

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

Сегодня я отвечу на вопрос, что изменилось в Corbind с момента первого релиза, что нового в последнем релизе 1.7.0 🎉 и какие планы на будущее. Но обо всем по порядку.



Оглавление

Что нового?
Что нового в версии 1.7.0?
Некоторые ваши вопросы
Заключение

Что нового?

В проекте появилось несколько новых модулей и событий:

Модуль деятельности (corbind-деятельность):

  • OnBackPressedDispatcher.backPresses, вызываемый при срабатывании OnBackPressedDispatcher.onBackPressed.

Фрагментный модуль (corbind-фрагмент):

  • FragmentManager.resultEvents, вызывается, когда какие-либо результаты, установленные setFragmentResult, используют один и тот же requestKey.

Модуль жизненного цикла (corbind-lifecycle):

  • Lifecycle.events, вызывается при изменении любого события жизненного цикла.

Навигационный модуль (corbind-navigation):

  • NavController.destinationChanges и NavController.destinationChangeEvents, вызываемые при изменении назначения NavController или его аргументов.

Модуль ViewPager2 (corbind-viewpager2):

Поддержка ViewPager2 была естественным выбором. Набор событий очень похож на ViewPager, но основан на другом обратном вызове:

  • ViewPager2.pageScrollEvents, вызываемый при прокрутке текущей страницы либо как часть программно инициированной плавной прокрутки, либо как пользовательская сенсорная прокрутка.
  • ViewPager2.pageScrollStateChanges, вызывается при изменении состояния прокрутки.
  • ViewPager2.pageSelections, вызывается при выборе новой страницы.

Старые модули также дополнены новыми событиями:

Корбинд (corbind):

  • Context.receivesBroadcast, вызываемый с любым широковещательным намерением, соответствующим фильтру.
  • CalendarView.dateChangeEvents, вызывается при изменении выбранного дня.
  • TimePicker.timeChangeEvents, вызывается при корректировке времени.

Материал (corbind-материал):

  • MaterialDatePicker.dismisses, вызывается всякий раз, когда средство выбора даты закрывается, независимо от того, как оно закрывается.
  • MaterialTimePicker.positiveClicks, вызывается, когда пользователь подтверждает правильный выбор времени.
  • NavigationBarView.itemReselections, вызывается при повторном выборе текущего выбранного элемента навигации.
  • Slider.valueChanges, называемое значением ползунка, изменяется.
  • ChipGroup.checkedChanges, вызывается при смене проверенных чипов.

И это лишь малая часть событий, которые были добавлены в проект. Для удобства в README каждого модуля есть таблица со списком событий.

Что нового в версии 1.7.0?

В Материале 1.8.0 стали доступны новые компоненты, для которых Corbind уже добавил события.

"Панель поиска". Обеспечивает реализацию плавающего поля поиска:

  • SearchBar.navigationClicks, вызываемый всякий раз, когда пользователь нажимает кнопку навигации в начале панели поиска.

Вид поиска. Обеспечивает реализацию полноэкранного поиска:

  • SearchView.transitionStateChanges и SearchView.transitionStateChangeEvents, вызываемые при изменении состояния перехода данного SearchView.

Боковой лист. Поверхности, содержащие дополнительный контент, привязанный к боковой части экрана:

  • SideSheetBehavior.sideSheetSlides, вызывается при перетаскивании бокового листа.
  • SideSheetBehavior.sideSheetStateChanges, вызывается при изменении состояния бокового листа.

Также меня попросили добавить пропущенное ранее событие для HideBottomViewOnScrollBehavior:

  • HideBottomViewOnScrollBehavior.bottomViewScrollStateChanges, вызывается, когда вид снизу меняет состояние прокрутки.

Некоторые из ваших вопросов

Актёр и Канал ещё нужны в проекте?

Я так думаю, и тому есть несколько причин:

  1. Ухаживать за ними не сложно 😁.
  2. Это по-прежнему хорошие инструменты, и они отлично работали даже до выпуска Flow.
  3. Несколько команд из Китая и Европы попросили меня оставить Актера и Канал, так как они их активно используют.

Этого достаточно, чтобы я продолжал их поддерживать.

Будет ли дорожная карта?

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

Какие есть способы поддержать проект?

Просто используйте проект 😁.

Что дальше?

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

Заключение

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

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

Я благодарен всем, кто помогает развивать проект, указывает на возможности и ошибки.

Ну, на сегодня все. Пишите хороший код и получайте удовольствие! Пока!