Повысьте свою производительность с помощью замечательных расширений Kotlin

Спасибо, что показали свою любовь к функциям расширения Kotlin в первой части. Я хотел бы поделиться дополнительными расширениями, которые помогут вам улучшить свой опыт программирования с Android и Kotlin. Если вы еще не читали ее, то можете ознакомиться с ней по ссылке ниже.



Предпосылка

Должен иметь базовые знания синтаксиса kotlin и android

Начать работу с новой главой…

Значение из EditText

Через свойство text EditText вы можете быстро получить текст из EditText. Но это Editable. Таким образом, мы должны преобразовывать его в строку каждый раз, чтобы получить точное значение из EditText. Но вот в чем загвоздка: вы можете легко получить значение из EditText, используя свойство расширения, указанное ниже.

Использование

val name = etName.value

Начать деятельность

Начать действие — это распространенный способ перехода к другому действию. Сначала вы должны решить цель целевой деятельности. Однако, используя эту функцию расширения, вы можете исключить часть создания намерения.

Вы также можете настроить намерение передавать некоторые данные и другие вещи. Он также может убить текущую активность вызова, если хотите. Посмотрите на примеры ниже.

Использование

startActivity(MainActivity::class.java) // Without Intent modification
startActivity(MainActivity::class.java) {
    // You can access the intent object in this block
    putExtra("key", "value")
}

Проверить сеть

В настоящее время все наши приложения имеют подключение к Интернету в соответствии с нашими требованиями, функциями и функциональностью. Таким образом, вам, возможно, придется проверить, доступно ли подключение к Интернету или нет.

Таким образом, эта функция расширения полезна для проверки интернет-соединения в активности и фрагменте. Его легко использовать в операторе if и других местах внутри области видимости.

Использование

if (isNetworkAvailable()) {
    // Called when network is available
} else {
    // Called when network not available
}

Проверить разрешение

Чтобы выполнить наши варианты использования, иногда вам может потребоваться играть с любым разрешением. Таким образом, нам, возможно, придется проверить, предоставлено ли разрешение для нашего приложения. Поэтому приведенная ниже функция расширения полезна для определения того, было ли предоставлено разрешение.

Использование

if (isPermissionGranted(Manifest.permission.ACCESS_FINE_LOCATION)) {
    // Block runs if permission is granted
} else {
    // Ask for permission
}

Удалить пробелы

Иногда у нас могут быть нереалистичные текстовые данные из Rest API или другого источника данных. Итак, если у вас есть более одного пробела и вы хотите его удалить, мы можем использовать removeDuplicateWhitespaces() или, если вы хотите полностью удалить его, вы можете использовать функции removeAllWhitespaces()extension.

Использование

"Hello,     world!!!".removeAllWhitespaces() // Output: Hello,world!!!
"Hello,     world!!!".removeDuplicateWhitespaces() // Output: Hello, world!!!

toEditable()

Редактируемый — это интерфейс для текста, содержимое и разметка которого могут быть изменены. Если вы хотите преобразовать строку в редактируемую, вам придется иметь дело с редактируемым экземпляром фабрики.

Теперь, используя приведенную ниже функцию, вы можете легко удалить шаблонный код. Вы можете использовать toEditable() в любой строковой функции. И вы можете использовать его для назначения текста в поле EditText.

Использование

etName.text = "First name".toEditable()

Размер экрана

Работа с размером экрана устройства может потребоваться, если вы имеете дело с макетом динамического представления, основанным на некотором состоянии или данных. Следовательно, это свойство расширения будет использоваться для этого. Это даст высоту и ширину устройства. Вы можете использовать его в области действия или использовать объекты контекста в других местах.

Использование

val size = screenSize
val deviceHeight = size.height
val deviceWidth = size.width

Менеджеры системных служб

Эти свойства используются для прямого доступа к системному менеджеру без создания его объекта. Вы можете использовать его непосредственно в действии, а для фрагмента вы должны использовать контекст. Обратите внимание, что перечисленные ниже свойства не являются всеми из них. Но если нужно больше, можно добавить больше.

Использование

val manager = downloadManager // In Activity
val manager = requireContext().downloadManager// In Fragment

Скопировать в буфер обмена

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

Использование

"This is clipboard".copyToClipboard(context)

Логические выражения

Boolean, это насущная потребность каждого программиста. Вы должны работать с логическими значениями каждый божий день в своей жизни программиста. В kotlin вам, возможно, придется иметь дело с нулевым значением и логическим значением вместе, в этом случае вы можете использовать эти расширения. Здесь мы также использовали концепцию контракта для достижения умного приведения.

Использование

lateinit var any: Boolean? // Assume that, this property is already assigned
if (any.isTrue()) {
    // Run when any is true only
}
if (any.isFalse()) {
    // Run when any is false only
}
val any1: Boolean = any.orTrue // If any is null then any1 = true otherwise any1 = any
val any2: Boolean = any.orFalse // If any is null then any1 = false otherwise any1 = any

Заключение

В этом сообщении блога мы рассмотрели функции расширения Kotlin для разработчиков Android. Эти расширения могут упростить общие задачи, такие как работа со строками, обработка дат и времени, управление сетями и многое другое. Они могут сэкономить время и усилия, уменьшить количество ошибок и повысить общее качество вашего кода.

Спасибо, что нашли время, чтобы прочитать его. 👏 За эту статью можно поставить аплодисменты до 50 хлопков.

Вы можете связаться со мной 😊 в Twitter, LinkedIn или GitHub.

Я что-то забыл? 🤔 Пожалуйста, прокомментируйте ниже.