Магия размерностей и магия Котлина. Часть вторая: Продвинутые возможности KotUniL
Это вторая статья из серии статей про магии размерностий и Котлина на примере библиотеки KotUniL.
В первой статье мы рассмотрели, как с помощью этой библиотеки не разбивать космические аппараты :-).
В этой статье мы рассмотрим менее очевидные, но не менее интересные фичи библиотеки.
Читать статью
Это вторая статья из серии статей про магии размерностий и Котлина на примере библиотеки KotUniL.
В первой статье мы рассмотрели, как с помощью этой библиотеки не разбивать космические аппараты :-).
В этой статье мы рассмотрим менее очевидные, но не менее интересные фичи библиотеки.
Читать статью
Зачем нужен тип Nothing, какие выражения имеют такой тип?
Если возвращаемый тип Nothing - значит return из данного метода выкинет нас полностью из приложения, либо там бесконечный цикл. Выражения ошибок(error) часто имеют такой тип. Компилируется такая функция в воид-функцию, возвращающая throw
Если возвращаемый тип Nothing - значит return из данного метода выкинет нас полностью из приложения, либо там бесконечный цикл. Выражения ошибок(error) часто имеют такой тип. Компилируется такая функция в воид-функцию, возвращающая throw
Это третья, заключительная статья серии, посвящённой библиотеке по манипулировали физическими величинами системы СИ, а также другими величинами, в Котлин. В ней мы рассмотрим, как фундаментальные математические структуры, которые природа “заложила” в систему СИ, предопределяют дизайн библиотеки и как возможности и ограничения Котлина были использованы при разработке библиотеки KotUniL.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Магия размерностей и магия Котлина. Часть третья: Смешение магий
Это третья, заключительная статья серии, посвящённой библиотеке KotUniL языка Котлин для работы с физическими и иными величинами. В ней мы рассмотрим, как фундаментальные математические структуры, которые природа “заложила” в систему СИ, предопределили дизайн…
В чем разница между val и var в Kotlin?
Anonymous Quiz
77%
Переменные, объявленные с помощью val, являются final, а переменные var – нет.
5%
Переменные, объявленные с помощью val, имеют доступ только к const членам.
7%
Переменные, объявленные с помощью var, являются final, а переменные val – нет.
10%
var ограничен видимостью ближайшего функционального блока, а у val видимость заканчивается на ({ }).
Когда компилятор использует примитивные типы? В каких случаях происходит автобоксинг?
Компилятор по максимуму пытается использовать примитивы, где это возможно. однако если мы указываем null-type(:?) в любом случае будет ссылочный тип
Компилятор по максимуму пытается использовать примитивы, где это возможно. однако если мы указываем null-type(:?) в любом случае будет ссылочный тип
Хитрости и приемы эффективного программирования на Kotlin
Kotlin — современный статически типизированный язык программирования. А еще он выразительный и лаконичный: функционал Kotlin позволяет сократить код и сделать его удобным для человеческого восприятия. Посмотрим, как это происходит: перепишем код по-котлиновски.
Читать статью
Kotlin — современный статически типизированный язык программирования. А еще он выразительный и лаконичный: функционал Kotlin позволяет сократить код и сделать его удобным для человеческого восприятия. Посмотрим, как это происходит: перепишем код по-котлиновски.
Читать статью
Telegraph
Хитрости и приемы эффективного программирования на Kotlin
Kotlin — современный статически типизированный язык программирования. А еще он выразительный и лаконичный: функционал Kotlin позволяет сократить код и сделать его удобным для человеческого восприятия. Посмотрим, как это происходит: перепишем код по-котлиновски.…
Что такое корутины (coroutines)?
Anonymous Quiz
17%
Функции, которые принимают другие функции в качестве аргументов или возвращают их.
72%
Штуки, обеспечивающие асинхронный код без блокировки потока.
6%
Термин Kotlin, используемый в методах класса.
5%
Автоматически сгенерированные методы hashCode() и equals() в data classes.
Зачем вообще нужны Sequences?
Для оптимизации производительности в работе с большими коллекциями(от 1000). Фишка в том, что значения в таких коллекциях создаются только по мере необходимости, не инициализируя их заранее.
Из за этого нет доступа к содержимому по индексу, а также не контролируется размер.
Для оптимизации производительности в работе с большими коллекциями(от 1000). Фишка в том, что значения в таких коллекциях создаются только по мере необходимости, не инициализируя их заранее.
Из за этого нет доступа к содержимому по индексу, а также не контролируется размер.
Моя любимая функция Kotlin
За последние несколько лет я видел много дискуссий о функциях Kotlin. Среди обсуждаемых тем обнуляемость всегда в первых рядах. Мне она нравится, но это определенно не моя любимая функция.
Больше всего в Kotlin мне нравятся некоторые мелкие особенности, благодаря которым язык становится очень элегантным. Например, смарт-кастинг (контракты), приостановка, функции приемника/расширения и делегирование.
Но на данный момент моей любимой особенностью является сочетание функций inline и suspend.
Читать статью
За последние несколько лет я видел много дискуссий о функциях Kotlin. Среди обсуждаемых тем обнуляемость всегда в первых рядах. Мне она нравится, но это определенно не моя любимая функция.
Больше всего в Kotlin мне нравятся некоторые мелкие особенности, благодаря которым язык становится очень элегантным. Например, смарт-кастинг (контракты), приостановка, функции приемника/расширения и делегирование.
Но на данный момент моей любимой особенностью является сочетание функций inline и suspend.
Читать статью
Telegraph
Моя любимая функция Kotlin
За последние несколько лет я видел много дискуссий о функциях Kotlin. Среди обсуждаемых тем обнуляемость всегда в первых рядах. Мне она нравится, но это определенно не моя любимая функция. Больше всего в Kotlin мне нравятся некоторые мелкие особенности, благодаря…
Что выведет этот код?
Anonymous Quiz
18%
Ничего, т. к. вылетит исключение NullPointerException
19%
Не скомпилируется
58%
false
4%
True
Что такое функциональный тип, какие у него ограничения?
Функциональный тип-сохранение лямбды в локальной переменной
(Int,Int) -> Int -вот пример
Под капотом функциональные типы объявляются как обычные интерфейсы FunctionN с единственным методом invoke(), где содержится тело лямбды.
Функциональный тип-сохранение лямбды в локальной переменной
(Int,Int) -> Int -вот пример
Под капотом функциональные типы объявляются как обычные интерфейсы FunctionN с единственным методом invoke(), где содержится тело лямбды.
Как внедрить KMM в существующие проекты и не пожалеть: теория, наш опыт и гайд
Новые технологии упрощают работу. Но если уже есть проект, на создание которого потрачено большое количество времени и денег, морально тяжело что-то менять. А мы рискнули, набили шишек, но теперь знаем, как внедрить новую технологию без проблем. В этой статье наш опыт — от провала до любви к Kotlin Multiplatform Mobile — и гайд, как перейти на нее легко и быстро.
Читать статью
Новые технологии упрощают работу. Но если уже есть проект, на создание которого потрачено большое количество времени и денег, морально тяжело что-то менять. А мы рискнули, набили шишек, но теперь знаем, как внедрить новую технологию без проблем. В этой статье наш опыт — от провала до любви к Kotlin Multiplatform Mobile — и гайд, как перейти на нее легко и быстро.
Читать статью
Telegraph
Как внедрить KMM в существующие проекты и не пожалеть: теория, наш опыт и гайд
Новые технологии упрощают работу. Но если уже есть проект, на создание которого потрачено большое количество времени и денег, морально тяжело что-то менять. А мы рискнули, набили шишек, но теперь знаем, как внедрить новую технологию без проблем. В этой статье…
Что выведет следующий код?
Anonymous Quiz
46%
[1, 2, 3, 4]
3%
[5, 6, 7]
32%
Он не компилируется, так как List не имеет метода add
18%
Он не компилируется, из-за listOf
Как работают SAM-conversions?
SAM - Single Abstract Method. или функциональный интерфейс.
очень удобное использование лямбды вместо анонимных классов(все реализуется под капотом, упрощенный синтаксис) В лямбде реализуется единственный метод интерфейса.
SAM - Single Abstract Method. или функциональный интерфейс.
очень удобное использование лямбды вместо анонимных классов(все реализуется под капотом, упрощенный синтаксис) В лямбде реализуется единственный метод интерфейса.
Создаем простую игру с Jetpack Compose для часов на Google WearOS
Библиотека Jetpack Compose значительно изменила подход к разработке нативных приложений и позволила декларативно описывать в коде интерфейсы, которые зависят от состояния и автоматически отслеживают его изменение. Но долгое время ее применимость ограничивалась платформой Android для телефонов и планшетов, а затем (благодаря разработкам JetBrains) стало возможным использовать реактивный стиль разработки для создания десктопных и веб-приложений. Но все еще нельзя было создавать приложения для умных часов, работающих над вариантом платформы Android - WearOS. В июле 2022 года команда разработки Android предложила первую стабильную версию Compose for WearOS, а в начале декабря вышло обновление библиотеки версии 1.1 с новыми возможностями по настройке пользовательского интерфейса и дополнительными компонентами. В этой статье мы сделаем несложную игру для WearOS с использованием Compose.
Читать статью
Библиотека Jetpack Compose значительно изменила подход к разработке нативных приложений и позволила декларативно описывать в коде интерфейсы, которые зависят от состояния и автоматически отслеживают его изменение. Но долгое время ее применимость ограничивалась платформой Android для телефонов и планшетов, а затем (благодаря разработкам JetBrains) стало возможным использовать реактивный стиль разработки для создания десктопных и веб-приложений. Но все еще нельзя было создавать приложения для умных часов, работающих над вариантом платформы Android - WearOS. В июле 2022 года команда разработки Android предложила первую стабильную версию Compose for WearOS, а в начале декабря вышло обновление библиотеки версии 1.1 с новыми возможностями по настройке пользовательского интерфейса и дополнительными компонентами. В этой статье мы сделаем несложную игру для WearOS с использованием Compose.
Читать статью
Telegraph
Создаем простую игру с Jetpack Compose для часов на Google WearOS
Библиотека Jetpack Compose значительно изменила подход к разработке нативных приложений и позволила декларативно описывать в коде интерфейсы, которые зависят от состояния и автоматически отслеживают его изменение. Но долгое время ее применимость ограничивалась…
Что такое функции высшего порядка (higher-order functions), лямбда-выражения (lambda-expressions), анонимные функции (anonymous functions), указатели на методы (method references, bound callable references)?
Функции высшего порядка - это функции, которые принимают функцию в качестве аргумента и/или возвращает функцию в качестве результата
Лямбда выражения - не объявленная функция, которая немедленно используется в качестве выражения
Анонимные функции - альтернативный синтаксис лямбда выражения с иными правилами для выражения return(можно использовать для создания блока кода с несколькими точками выхода )
Указатели на методы - упрощенный синтаксис создания значения функции, вызывающего ровно один метод или обращающегося к свойству.
{p:Person --> p.age} ==Person::age
Функции высшего порядка - это функции, которые принимают функцию в качестве аргумента и/или возвращает функцию в качестве результата
Лямбда выражения - не объявленная функция, которая немедленно используется в качестве выражения
Анонимные функции - альтернативный синтаксис лямбда выражения с иными правилами для выражения return(можно использовать для создания блока кода с несколькими точками выхода )
Указатели на методы - упрощенный синтаксис создания значения функции, вызывающего ровно один метод или обращающегося к свойству.
{p:Person --> p.age} ==Person::age
Kotlin – это главный язык мобильной разработки под Android в наше время. Еще в 2019 году компания Google объявила его предпочтительным для Mobile App девелопмента и заявила, что они сами его регулярно используют для своих приложений.
Однако Котлин может также успешно применяться и для написания полного цикла веб-приложений – а это пользовательская сторона (FrontEnd), с которой напрямую взаимодействует юзер, и серверная сторона (BackEnd), где скрывается вся закулисная логика.
На вебинаре вы узнаете о языке Kotlin, как он интегрирован в экосистему Java, автор покажет его преимущества. Узнаете, почему за ним будущее и как на нем можно написать Full Stack приложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Kotlin – язык Full Stack разработчика
Kotlin – это главный язык мобильной разработки под Android в наше время. Еще в 2019 году компания Google объявила его предпочтительным для Mobile App девелопмента и заявила, что они сами его регулярно используют для своих приложений.
Однако Котлин может…
Однако Котлин может…
Всем привет, меня зовут Илья, я андроид инженер. Почти три года назад, мы начали свой проект в сфере финтех. Срок запуска MVP был оптимистичным. За неделю до наступления дедлайна наша команда осознала, что срок запуска переносить никто не собирается, а одна фича вряд ли будет закончена вовремя. Рисковать не хотелось и было решено - прикрыть эту часть заглушкой. Блокируя часть нерабочей функциональности, мы питали надежды, что скоуп MVP будет закрыт. По-этому, выключить нерабочий код хотели так, чтобы по щелчку кнопки CI/Web экран стал доступен для пользователя.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Готовим FeatureToggle для Android
Всем привет, меня зовут Илья, я андроид инженер. Почти три года назад, мы начали свой проект в сфере финтех. Срок запуска MVP был оптимистичным. За неделю до наступления дедлайна наша команда осознала, что срок запуска переносить никто не собирается, а одна…