This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Kotlin с нуля
Урок 0: Ставим среду разработки и запускаем проект
Урок 1: Что такое переменные и их типы, val и var
Урок 2: Арифметические операции, остаток от деления
Урок 3: Интерполяция (шаблонные строки). Конкатенация
Урок 4: Операторы сравнения (отношения), логические операторы
Урок 5: Условные операторы if else when. Операции ветвления
Урок 6: Циклы while, do-while. Обратный отсчет с Thread.sleep()
Урок 7: Цикл for, диапазоны (интервалы). break, continue, return
Урок 8: Массивы. Типы, размер, индекс массива. Перебор через for
Урок 9: Коллекции: списки (List). Функции для работы с коллекциями
Урок 10: Функции (методы), тип возвращаемого значения, return
Урок 11: ООП. Классы и свойства. Создание объектов (экземпляров класса).
Урок 12: Конструкторы (primary, secondary). Блоки инициализации init.
Урок 13: Null Safety – операторы ?. !!, NullPointerException (NPE)
Урок 14: ООП. Наследование. open class. Переопределение (override)
Урок 15: Интерфейсы, абстрактные классы. Имплементация.
Урок 16: ООП. Инкапсуляция. Модификаторы доступа
Урок 17: Сеттеры и Геттеры, field, как их кастомизировать
Урок 18: ООП. Полиморфизм, 3 типа (Ad hoc, Subtyping, Parametric)
Урок 19: ENUM (классы перечислений), TODO() и тип Nothing
Урок 20: Лямбда-функции (лямбды), анонимные функции
Урок 21: Extensions (функции-расширения, экстеншены)
Урок 22: Data class (дата классы) copy, toString, equals, hashCode
Теория разработки программ. Создание телеграм бота // Практика KotlinSprint
Все видео доступны на youtube
✍️ @kotlin_lib
Урок 0: Ставим среду разработки и запускаем проект
Урок 1: Что такое переменные и их типы, val и var
Урок 2: Арифметические операции, остаток от деления
Урок 3: Интерполяция (шаблонные строки). Конкатенация
Урок 4: Операторы сравнения (отношения), логические операторы
Урок 5: Условные операторы if else when. Операции ветвления
Урок 6: Циклы while, do-while. Обратный отсчет с Thread.sleep()
Урок 7: Цикл for, диапазоны (интервалы). break, continue, return
Урок 8: Массивы. Типы, размер, индекс массива. Перебор через for
Урок 9: Коллекции: списки (List). Функции для работы с коллекциями
Урок 10: Функции (методы), тип возвращаемого значения, return
Урок 11: ООП. Классы и свойства. Создание объектов (экземпляров класса).
Урок 12: Конструкторы (primary, secondary). Блоки инициализации init.
Урок 13: Null Safety – операторы ?. !!, NullPointerException (NPE)
Урок 14: ООП. Наследование. open class. Переопределение (override)
Урок 15: Интерфейсы, абстрактные классы. Имплементация.
Урок 16: ООП. Инкапсуляция. Модификаторы доступа
Урок 17: Сеттеры и Геттеры, field, как их кастомизировать
Урок 18: ООП. Полиморфизм, 3 типа (Ad hoc, Subtyping, Parametric)
Урок 19: ENUM (классы перечислений), TODO() и тип Nothing
Урок 20: Лямбда-функции (лямбды), анонимные функции
Урок 21: Extensions (функции-расширения, экстеншены)
Урок 22: Data class (дата классы) copy, toString, equals, hashCode
Теория разработки программ. Создание телеграм бота // Практика KotlinSprint
Все видео доступны на youtube
✍️ @kotlin_lib
👍7
Как реализовать биометрическую аутентификацию в Android с помощью Kotlin
Биометрическая аутентификация позволяет пользователям получать доступ к своим приложениям, используя свои уникальные характеристики, такие как отпечатки пальцев, лица или радужная оболочка глаза. Библиотека Biometric предоставляет единый API для сильной и слабой биометрии. Для этого мы будем использовать API BiometricPrompt.
В документации по Android описаны три различных типа аутентификации для биометрической аутентификации.
Простыми словами, эти типы аутентификации следующие:
Сильная: этот тип аутентификации требует от пользователя предоставления сильной биометрии, например отпечатка пальца или сканирования радужной оболочки глаза, которую сложнее подделать или обойти. Он обеспечивает высокий уровень безопасности и подходит для приложений, работающих с конфиденциальными данными или транзакциями.
Слабая: Слабая биометрическая аутентификация включает в себя менее надежные методы, например распознавание лица, которые легче обойти или обмануть по сравнению с сильными методами аутентификации. Этот тип аутентификации подходит для приложений с более низкими требованиями к безопасности.
Учетные данные устройства: Этот тип аутентификации не использует биометрические данные, а полагается на защиту устройства, например PIN-код, пароль или шаблон. Он может использоваться в качестве запасного варианта, когда биометрическая аутентификация недоступна или не подходит для пользователя или устройства.
https://johncodeos.com/how-to-implement-biometric-authentication-in-android-using-kotlin/
✍️ @kotlin_lib
Биометрическая аутентификация позволяет пользователям получать доступ к своим приложениям, используя свои уникальные характеристики, такие как отпечатки пальцев, лица или радужная оболочка глаза. Библиотека Biometric предоставляет единый API для сильной и слабой биометрии. Для этого мы будем использовать API BiometricPrompt.
В документации по Android описаны три различных типа аутентификации для биометрической аутентификации.
Простыми словами, эти типы аутентификации следующие:
Сильная: этот тип аутентификации требует от пользователя предоставления сильной биометрии, например отпечатка пальца или сканирования радужной оболочки глаза, которую сложнее подделать или обойти. Он обеспечивает высокий уровень безопасности и подходит для приложений, работающих с конфиденциальными данными или транзакциями.
Слабая: Слабая биометрическая аутентификация включает в себя менее надежные методы, например распознавание лица, которые легче обойти или обмануть по сравнению с сильными методами аутентификации. Этот тип аутентификации подходит для приложений с более низкими требованиями к безопасности.
Учетные данные устройства: Этот тип аутентификации не использует биометрические данные, а полагается на защиту устройства, например PIN-код, пароль или шаблон. Он может использоваться в качестве запасного варианта, когда биометрическая аутентификация недоступна или не подходит для пользователя или устройства.
https://johncodeos.com/how-to-implement-biometric-authentication-in-android-using-kotlin/
✍️ @kotlin_lib
👍9👏1
SKIE - инструмент для соединения Kotlin и Swift API для Kotlin Multiplatform, был выпущен с открытым исходным кодом. Это критически важный инструмент для любого разработчика или команды, вызывающей Kotlin-код из Swift.
https://touchlab.co/skie-is-open-source
Installation https://skie.touchlab.co/Installation
✍️ @kotlin_lib
https://touchlab.co/skie-is-open-source
Installation https://skie.touchlab.co/Installation
✍️ @kotlin_lib
Using Kover for Effective Code Coverage in Kotlin Projects
https://orashar.medium.com/using-kover-for-effective-code-coverage-in-kotlin-projects-67d92de93099
✍️ @kotlin_lib
https://orashar.medium.com/using-kover-for-effective-code-coverage-in-kotlin-projects-67d92de93099
✍️ @kotlin_lib
👍2
Kotlin Sealed Interfaces: A Deep Dive into a Powerful New Feature
https://blog.devgenius.io/kotlin-sealed-interfaces-a-deep-dive-into-a-powerful-new-feature-98dfe69077f
✍️ @kotlin_lib
https://blog.devgenius.io/kotlin-sealed-interfaces-a-deep-dive-into-a-powerful-new-feature-98dfe69077f
✍️ @kotlin_lib
Создаем нативное Kotlin приложение на Spring Boot Native, Gradle и GraalVM без докера под MacOS и Windows
В этой статье я хочу рассказать о практическом опыте нативной компиляции production приложения, написанного на Kotlin со Spring Boot, Gradle с использованием GraalVM . Начну сразу с минусов и плюсов самой возможности нативной компиляции и где она может быть полезна, и дальше перейду уже непосредственно к процессу сборки под MacOS и Windows.
В конце статьи я более подробно расскажу о проекте и почему возникла такая необходимость, учитывая довольно много ограничений и подводных камней поддержки нативной компиляции как со стороны Spring Boot, та и со стороны GraalVM.
https://habr.com/ru/articles/760074/
✍️ @kotlin_lib
В этой статье я хочу рассказать о практическом опыте нативной компиляции production приложения, написанного на Kotlin со Spring Boot, Gradle с использованием GraalVM . Начну сразу с минусов и плюсов самой возможности нативной компиляции и где она может быть полезна, и дальше перейду уже непосредственно к процессу сборки под MacOS и Windows.
В конце статьи я более подробно расскажу о проекте и почему возникла такая необходимость, учитывая довольно много ограничений и подводных камней поддержки нативной компиляции как со стороны Spring Boot, та и со стороны GraalVM.
https://habr.com/ru/articles/760074/
✍️ @kotlin_lib
👍3
Media is too big
VIEW IN TELEGRAM
Как собрать iOS-фреймворк из исходных файлов на Kotlin
Вячеслав Кормушкин, RetailNext
Вячеслав рассказал, как собрать iOS-фреймворк из исходных файлов на Kotlin. Обсудил, какие типы фреймворков можно сгенерировать и чем они отличаются, а также рассмотрел, как фреймворк подключается в Xcode проект.
00:00 Вступление
01:38 Kotlin Multiplatform Mobile
02:36 Особенности KMM
04:11 Магические процессы фреймворка
10:40 Gradle
15:36 Universal Framework
17:19 XCFramework
22:22 Плагин для Android Studio
22:23 KDoctor
24:11 Заключение
источник
✍️ @kotlin_lib
Вячеслав Кормушкин, RetailNext
Вячеслав рассказал, как собрать iOS-фреймворк из исходных файлов на Kotlin. Обсудил, какие типы фреймворков можно сгенерировать и чем они отличаются, а также рассмотрел, как фреймворк подключается в Xcode проект.
00:00 Вступление
01:38 Kotlin Multiplatform Mobile
02:36 Особенности KMM
04:11 Магические процессы фреймворка
10:40 Gradle
15:36 Universal Framework
17:19 XCFramework
22:22 Плагин для Android Studio
22:23 KDoctor
24:11 Заключение
источник
✍️ @kotlin_lib
👍4
Kotlin Contracts
Одной из самых загадочных возможностей Kotlin являются контракты Kotlin Contracts. Большинство разработчиков используют их, даже не зная, как они работают и как их определить. Контракты Kotlin делают компилятор Kotlin умнее и позволяют нам делать то, что иначе было бы невозможно. Но прежде чем мы увидим их в действии, давайте начнем с определения контракта, которое можно найти в некоторых stdlib-функциях Kotlin.
https://kt.academy/article/ak-contracts
✍️ @kotlin_lib
Одной из самых загадочных возможностей Kotlin являются контракты Kotlin Contracts. Большинство разработчиков используют их, даже не зная, как они работают и как их определить. Контракты Kotlin делают компилятор Kotlin умнее и позволяют нам делать то, что иначе было бы невозможно. Но прежде чем мы увидим их в действии, давайте начнем с определения контракта, которое можно найти в некоторых stdlib-функциях Kotlin.
https://kt.academy/article/ak-contracts
✍️ @kotlin_lib
👍3
Реализуем современный UI на Jetpack Compose
Всем привет, на связи Никита Пятаков, Android-разработчик в МТС Диджитал. В этой статье я расскажу вам о том, как в приложении Мой МТС была проведена работа над UI новой карточки услуги.
Рассказ мой будет последовательным – сначала про саму задачку, потом про решение, которое разбито на подпункты.
https://habr.com/ru/companies/ru_mts/articles/761580/
✍️ @kotlin_lib
Всем привет, на связи Никита Пятаков, Android-разработчик в МТС Диджитал. В этой статье я расскажу вам о том, как в приложении Мой МТС была проведена работа над UI новой карточки услуги.
Рассказ мой будет последовательным – сначала про саму задачку, потом про решение, которое разбито на подпункты.
https://habr.com/ru/companies/ru_mts/articles/761580/
✍️ @kotlin_lib
👍5
Apress.Numerical.Methods.Using.Kotlin.pdf
42.9 MB
Numerical Methods Using Kotlin: For Data Science, Analysis, and Engineering
Haksun Li PhD (2023)
В этой книге вы реализуете численные алгоритмы на языке Kotlin с помощью NM Dev, объектно-ориентированной и высокопроизводительной библиотеки программирования для прикладной и промышленной математики. Узнайте, как Kotlin имеет множество преимуществ перед Java в скорости, а в некоторых случаях и простоте использования. В этой книге вы увидите, как он может
✍️ @kotlin_lib
Haksun Li PhD (2023)
В этой книге вы реализуете численные алгоритмы на языке Kotlin с помощью NM Dev, объектно-ориентированной и высокопроизводительной библиотеки программирования для прикладной и промышленной математики. Узнайте, как Kotlin имеет множество преимуществ перед Java в скорости, а в некоторых случаях и простоте использования. В этой книге вы увидите, как он может
✍️ @kotlin_lib
👍2
NoArchitecture Kotlin Compose
Все начинается в setContent. ComposeGenAppTheme необязательна. Surface кстати внутри себя содержит простой Box. Не привычно формировать все элементы без XML. Хотя интеграция во Fragmets как View возможна Using Compose in Views.
https://habr.com/ru/articles/763980/
✍️ @kotlin_lib
Все начинается в setContent. ComposeGenAppTheme необязательна. Surface кстати внутри себя содержит простой Box. Не привычно формировать все элементы без XML. Хотя интеграция во Fragmets как View возможна Using Compose in Views.
https://habr.com/ru/articles/763980/
✍️ @kotlin_lib
👍2👎2
От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin (Часть 1)
В этой статье мы рассмотрим, как и почему изменилась реализация примитивов синхронизации из стандартной библиотеки Java и пакета java.util.concurrent для Kotlin Coroutines и для языка Kotlin в целом. Сразу хочу предупредить: рассматриваемые в статье библиотеки и классы будут оцениваться не с точки зрения поддержки legacy-функциональности и возможности использовать их в Java, а с точки зрения эффективности и возможности использовать их в корутинах и Kotlin Multiplatform. Поэтому эта статья будет больше полезна тем, кто собирается писать новые проекты на языке Kotlin.
В рамках данной статьи будут рассмотрены:
критические секции;
атомарные переменные;
реактивные переменные;
барьерная синхронизация.
https://habr.com/ru/companies/garage8/articles/747948/
✍️ @kotlin_lib
В этой статье мы рассмотрим, как и почему изменилась реализация примитивов синхронизации из стандартной библиотеки Java и пакета java.util.concurrent для Kotlin Coroutines и для языка Kotlin в целом. Сразу хочу предупредить: рассматриваемые в статье библиотеки и классы будут оцениваться не с точки зрения поддержки legacy-функциональности и возможности использовать их в Java, а с точки зрения эффективности и возможности использовать их в корутинах и Kotlin Multiplatform. Поэтому эта статья будет больше полезна тем, кто собирается писать новые проекты на языке Kotlin.
В рамках данной статьи будут рассмотрены:
критические секции;
атомарные переменные;
реактивные переменные;
барьерная синхронизация.
https://habr.com/ru/companies/garage8/articles/747948/
✍️ @kotlin_lib
👍4
Библиотека Scout — быстрый и безопасный DI на Kotlin
Привет! Меня зовут Александр Миронычев. Я занимаюсь инфраструктурой приложения Яндекс Маркет под Android. Около двух лет назад при работе над модульностью у меня появилось желание написать собственную библиотеку для внедрения зависимостей, которая позволила бы ускорить сборку приложения и упростить процесс модуляризации. Так появился Scout. Сегодня его код мы выложили в открытый доступ.
Эта статья — рассказ о том, как пройти путь от безумной идеи до конкурентоспособного опенсорс-фреймворка. Статья будет полезна тем, кто ищет замену DI-фреймворку в своем проекте, а также тем, кто мечтает написать свою библиотеку, но никак не может начать.
https://habr.com/ru/companies/yandex/articles/764920/
✍️ @kotlin_lib
Привет! Меня зовут Александр Миронычев. Я занимаюсь инфраструктурой приложения Яндекс Маркет под Android. Около двух лет назад при работе над модульностью у меня появилось желание написать собственную библиотеку для внедрения зависимостей, которая позволила бы ускорить сборку приложения и упростить процесс модуляризации. Так появился Scout. Сегодня его код мы выложили в открытый доступ.
Эта статья — рассказ о том, как пройти путь от безумной идеи до конкурентоспособного опенсорс-фреймворка. Статья будет полезна тем, кто ищет замену DI-фреймворку в своем проекте, а также тем, кто мечтает написать свою библиотеку, но никак не может начать.
https://habr.com/ru/companies/yandex/articles/764920/
✍️ @kotlin_lib
👍6
The_Joy_of_Kotlin.pdf
3.8 MB
The Joy of Kotlin
Pierre-Yves Saumont (2019)
Kotlin - один из самых новых языков в экосистеме Java, устраняющий многие ограничения Java и гораздо более универсальный. Среди его преимуществ: полная совместимость с Java и возможность интеграции на уровне исходного кода, широкая поддержка парадигмы функционального программирования, помогающая писать надежный и безопасный код, лаконичность синтаксиса, а также, что весьма немаловажно, гарантии поддержки со стороны IT-гиганта Google. Пьер-Ив Сомон, опытный разработчик на Java, в своей книге подробно освещает нюансы программирования на Kotlin, переходя от общего описания языка к его характерным особенностям и возможностям, включая приемы функционального программирования. Издание предназначено для разработчиков, знакомых с Java и стремящихся повысить безопасность своих программ, а также упростить их написание, тестирование и сопровождение.
✍️ @kotlin_lib
Pierre-Yves Saumont (2019)
Kotlin - один из самых новых языков в экосистеме Java, устраняющий многие ограничения Java и гораздо более универсальный. Среди его преимуществ: полная совместимость с Java и возможность интеграции на уровне исходного кода, широкая поддержка парадигмы функционального программирования, помогающая писать надежный и безопасный код, лаконичность синтаксиса, а также, что весьма немаловажно, гарантии поддержки со стороны IT-гиганта Google. Пьер-Ив Сомон, опытный разработчик на Java, в своей книге подробно освещает нюансы программирования на Kotlin, переходя от общего описания языка к его характерным особенностям и возможностям, включая приемы функционального программирования. Издание предназначено для разработчиков, знакомых с Java и стремящихся повысить безопасность своих программ, а также упростить их написание, тестирование и сопровождение.
✍️ @kotlin_lib
👍7
A Glimpse at Constants in Kotlin
Когда мне нужно определить константы, избежать "магических чисел" и смоделировать данные в Kotlin и других языках, я обычно по умолчанию использую классы enum.
Мне говорили, что это хорошая практика, когда я только начинал кодить, и это казалось разумным, но всегда есть альтернативные варианты решения каждой проблемы.
Сегодня я хочу рассказать о том, какие варианты существуют в Kotlin, когда нам нужно подобное поведение в нашем коде.
https://molidevwrites.com/a-glimpse-at-constants-in-kotlin/
✍️ @kotlin_lib
Когда мне нужно определить константы, избежать "магических чисел" и смоделировать данные в Kotlin и других языках, я обычно по умолчанию использую классы enum.
Мне говорили, что это хорошая практика, когда я только начинал кодить, и это казалось разумным, но всегда есть альтернативные варианты решения каждой проблемы.
Сегодня я хочу рассказать о том, какие варианты существуют в Kotlin, когда нам нужно подобное поведение в нашем коде.
https://molidevwrites.com/a-glimpse-at-constants-in-kotlin/
✍️ @kotlin_lib
👍2
Ликбез по корутинам Kotlin
Корутины — это паттерн проектирования, предназначенный для написания асинхронных программ, способных выполнять нескольких задач одновременно.
В асинхронных программах несколько задач выполняются параллельно в отдельных потоках, не дожидаясь завершения друг-друга. Потоки — ресурс дорогостоящий, и слишком большое их количество выливается в ощутимые накладные расходы в виде высокого потребления памяти и нагрузки на процессор.
Корутины — это альтернативный способ написания асинхронных программ, но в сравнении с потоками гораздо более легковесный. Они представляют собой вычисления, которые работают поверх потоков.
Мы можем приостановить выполнение корутины, чтобы позволить другим корутинам отработать в том же потоке. В дальнейшем выполнение этой корутины может быть возобновлено в том же или даже в другом потоке.
В момент приостановки работы корутины связанные с ней вычисления останавливаются, сохраняются в памяти и удаляются из потока, позволяя ему свободно заниматься другими задачами. Таким образом, мы можем одновременно запускать множество корутин, имея в нашем распоряжении небольшой пул потоков, что позволяет в значительной степени ограничить использование системных ресурсов.
В этой статье мы с вами разберемся, как использовать корутины в Kotlin.
https://reflectoring.io/understanding-kotlin-coroutines-tutorial/
✍️ @kotlin_lib
Корутины — это паттерн проектирования, предназначенный для написания асинхронных программ, способных выполнять нескольких задач одновременно.
В асинхронных программах несколько задач выполняются параллельно в отдельных потоках, не дожидаясь завершения друг-друга. Потоки — ресурс дорогостоящий, и слишком большое их количество выливается в ощутимые накладные расходы в виде высокого потребления памяти и нагрузки на процессор.
Корутины — это альтернативный способ написания асинхронных программ, но в сравнении с потоками гораздо более легковесный. Они представляют собой вычисления, которые работают поверх потоков.
Мы можем приостановить выполнение корутины, чтобы позволить другим корутинам отработать в том же потоке. В дальнейшем выполнение этой корутины может быть возобновлено в том же или даже в другом потоке.
В момент приостановки работы корутины связанные с ней вычисления останавливаются, сохраняются в памяти и удаляются из потока, позволяя ему свободно заниматься другими задачами. Таким образом, мы можем одновременно запускать множество корутин, имея в нашем распоряжении небольшой пул потоков, что позволяет в значительной степени ограничить использование системных ресурсов.
В этой статье мы с вами разберемся, как использовать корутины в Kotlin.
https://reflectoring.io/understanding-kotlin-coroutines-tutorial/
✍️ @kotlin_lib
reflectoring.io
Understanding Kotlin Coroutines
Coroutines are a design pattern for writing asynchronous programs for running multiple tasks concurrently.
In asynchronous programs, multiple tasks execute in parallel on separate threads without waiting for the other tasks to complete.
In asynchronous programs, multiple tasks execute in parallel on separate threads without waiting for the other tasks to complete.
👍9👎1