Платформа из красного кирпича: как настроить окружение в Kotlin Multiplatform Mobile
Первое, в чём может возникнуть затруднение у Android разработчика при переходе на ККМ - это быстрая настройка окружения. Официальный сайт Kotlin не пестрит подробными инструкциями, и можно потратить несколько часов в поисках нужной информации. В данной статье мы пройдёмся по этапам настройки проекта.
Читать статью
Первое, в чём может возникнуть затруднение у Android разработчика при переходе на ККМ - это быстрая настройка окружения. Официальный сайт Kotlin не пестрит подробными инструкциями, и можно потратить несколько часов в поисках нужной информации. В данной статье мы пройдёмся по этапам настройки проекта.
Читать статью
Telegraph
Платформа из красного кирпича: как настроить окружение в Kotlin Multiplatform Mobile
Всем привет! Меня зовут Амет Хырхара, я Android разработчик в компании Joy Dev. Первое, в чём может возникнуть затруднение у Android разработчика при переходе на КММ - это быстрая настройка окружения. Официальный сайт Kotlin не пестрит подробными инструкциями…
Можно ли сделать extension к интерфейсу? Тайпалиасу? Функциональному типу?
Интерфейс - да
Псевдонимы типов - да
функциональный тип - нет(там есть Литералы функций с объектом-приёмником)
companion/object - да
Интерфейс - да
Псевдонимы типов - да
функциональный тип - нет(там есть Литералы функций с объектом-приёмником)
companion/object - да
Темой этого ролика является принципы SOLID ну и так как автор Android разработчик, то все 5 принципов SOLID он будет показывать на основе простого Android приложения и использовать язык программирования Kotlin.
Please open Telegram to view this post
VIEW IN TELEGRAM
Чистый код: как писать код, который легко читать
Для начала мы обсудим, зачем вам вообще может понадобиться писать более читаемый, а не краткий код. Затем мы рассмотрим стратегии, как это делать в случае:
• Именования переменных, классов и функций
• Вспомогательных функций
• Комментариев к коду
• Перечислений/словарей/запечатанных классов и так далее
• Упорядочивания и именования пакетов
➡️ Читать статью
Для начала мы обсудим, зачем вам вообще может понадобиться писать более читаемый, а не краткий код. Затем мы рассмотрим стратегии, как это делать в случае:
• Именования переменных, классов и функций
• Вспомогательных функций
• Комментариев к коду
• Перечислений/словарей/запечатанных классов и так далее
• Упорядочивания и именования пакетов
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Чистый код: как писать код, который легко читать
Для начала мы обсудим, зачем вам вообще может понадобиться писать более читаемый, а не краткий код. Затем мы рассмотрим стратегии, как это делать в случае: Именования переменных, классов и функций Вспомогательных функций Комментариев к коду Перечислений/…
Может ли функция быть одновременно member и extension? Как её использовать?
Да, может.
Если в классе есть и функция-член, и функция-расширение с тем же возвращаемым типом, таким же именем и применяется с такими же аргументами, то функция-член имеет более высокий приоритет.
Как использовать? Перегружать методы и не ломать потом голову.
Да, может.
Если в классе есть и функция-член, и функция-расширение с тем же возвращаемым типом, таким же именем и применяется с такими же аргументами, то функция-член имеет более высокий приоритет.
Как использовать? Перегружать методы и не ломать потом голову.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Kotlin VS Java | Плюсы и минусы языков | Почему разработчики переходят на Kotlin?
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Спасибо за просмотр! Увидимся в следующем видео!
Буду рад лайкам и комментариям!
Если тебе нравится мой контент, то поддержи меня на бусти - https://boosty.to/bebr0
По любым вопросам, а также…
Спасибо за просмотр! Увидимся в следующем видео!
Буду рад лайкам и комментариям!
Если тебе нравится мой контент, то поддержи меня на бусти - https://boosty.to/bebr0
По любым вопросам, а также…
Здравствуй, дорогой читатель. Каждый Android-разработчик сталкивался (или столкнётся во время своей профессиональной карьеры) с задачей, в которой необходимо хранить большое количество изменяемых данных. В данной статье будет разобрана библиотека от Google - Room.
В статье будет рассказано об основных компонентах библиотеки и будет разобран базовый, не очень сложный пример.
Статья предназначена для новичков, не знакомых с данной библиотекой, но, желательно, имеющих базовые знаниях о SQLite, Kotlin Coroutines, Kotlin Flow, MVVM.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Библиотека «Room» для начинающего Android-разработчика
Здравствуй, дорогой читатель. Каждый Android-разработчик сталкивался (или столкнётся во время своей профессиональной карьеры) с задачей, в которой необходимо хранить большое количество изменяемых данных. В данной статье будет разобрана библиотека от Google…
MutableList vs List
List представляет последовательный список элементов. List представляет неизменяемую (immutable) коллекцию, которая в основном только обеспечивает получение элементов по позиции. Изменяемые списки представлены интерфейсом MutableList. Он расширяет интерфейс List и позволяют добавлять и удалять элементы.
List представляет последовательный список элементов. List представляет неизменяемую (immutable) коллекцию, которая в основном только обеспечивает получение элементов по позиции. Изменяемые списки представлены интерфейсом MutableList. Он расширяет интерфейс List и позволяют добавлять и удалять элементы.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Kotlin: это что и зачем нужен
Что такое Kotlin? Зачем нужен Kotlin? Где используют этот язык программирования. Чем он отличается от языка Java. Стоит ли переходить с Java на Kotlin. Зарплаты котлин-программистов по уровню квалификации.
▶️Программируем с нуля — https://clck.ru/WMhMY…
▶️Программируем с нуля — https://clck.ru/WMhMY…
Упрощаем создание FragmentFactory при помощи dsl котлина
Фрагменты в андроид разработке стали привычным способом написания ui и со временем, для удобства разработки, появилось много нового функционала. Один из таких примеров - использование своей реализации FragmentFactory. Об этом я и хотел бы поговорить.
Читать статью
Фрагменты в андроид разработке стали привычным способом написания ui и со временем, для удобства разработки, появилось много нового функционала. Один из таких примеров - использование своей реализации FragmentFactory. Об этом я и хотел бы поговорить.
Читать статью
Telegraph
Упрощаем создание FragmentFactory при помощи dsl котлина
Фрагменты в андроид разработке стали привычным способом написания ui и со временем, для удобства разработки, появилось много нового функционала. Один из таких примеров - использование своей реализации FragmentFactory. Об этом я и хотел бы поговорить. Для…
Что означает null в Kotlin?
Anonymous Quiz
6%
Строковое представление числа ноль
68%
Переменная не имеет значения
9%
Функция не возвращает ничего
17%
В Kotlin null не используется
В чем разница между конструктором и инициализатором в Kotlin?
Конструктор - это специальный метод, вызываемый при создании объекта. Инициализатор - это специальный метод, который вы можете использовать для инициализации объекта перед его первым использованием. Как конструкторы, так и инициализаторы обычно объявляются с ключевым словом unit .
Конструктор - это специальный метод, вызываемый при создании объекта. Инициализатор - это специальный метод, который вы можете использовать для инициализации объекта перед его первым использованием. Как конструкторы, так и инициализаторы обычно объявляются с ключевым словом unit .
Как адаптировать Android-приложение под Huawei
Всем привет! Меня зовут Миша Вассер, я Head of Android в AGIMA. Мы занимаемся разработкой Digital-продуктов для больших и маленьких компаний, в том числе пилим мобильные приложения.
Не так давно — по сравнению со всей историей Android — Huawei выкатил собственную операционную систему и сказал: «Ребята, вот вам новая система, кайфуйте». Многие отнеслись к новой ОС скептически. Остальным пришлось адаптировать под нее свои Android-приложения.
Мы оказались во второй группе. К нам время от времени обращаются с просьбой помочь с адаптацией под Huawei. И мы неплохо в этом вопросе прокачались. Поэтому сейчас расскажу, что надо сделать, чтобы стало хорошо. А покажу всё это на примере крупного ретейлера, с которым мы работаем.
Читать статью
Всем привет! Меня зовут Миша Вассер, я Head of Android в AGIMA. Мы занимаемся разработкой Digital-продуктов для больших и маленьких компаний, в том числе пилим мобильные приложения.
Не так давно — по сравнению со всей историей Android — Huawei выкатил собственную операционную систему и сказал: «Ребята, вот вам новая система, кайфуйте». Многие отнеслись к новой ОС скептически. Остальным пришлось адаптировать под нее свои Android-приложения.
Мы оказались во второй группе. К нам время от времени обращаются с просьбой помочь с адаптацией под Huawei. И мы неплохо в этом вопросе прокачались. Поэтому сейчас расскажу, что надо сделать, чтобы стало хорошо. А покажу всё это на примере крупного ретейлера, с которым мы работаем.
Читать статью
Telegraph
Как адаптировать Android-приложение под Huawei
Всем привет! Меня зовут Миша Вассер, я Head of Android в AGIMA. Мы занимаемся разработкой Digital-продуктов для больших и маленьких компаний, в том числе пилим мобильные приложения. Не так давно — по сравнению со всей историей Android — Huawei выкатил собственную…
В чем разница между лямбда-выражением и анонимной функцией?
Лямбда-выражение - это функция, которая может быть передана в качестве аргумента другой функции. Анонимная функция - это функция, которая не имеет имени и не может быть передана в качестве аргумента другой функции. Таким образом, они на самом деле противоположны.
Лямбда-выражение - это функция, которая может быть передана в качестве аргумента другой функции. Анонимная функция - это функция, которая не имеет имени и не может быть передана в качестве аргумента другой функции. Таким образом, они на самом деле противоположны.
Kotlin-сервер без JVM — реальность?
Не секрет, что Kotlin может использоваться для создания всех компонентов FullStack-приложения - от мобильных приложения для Android/iOS и веб-сайтов на Kotlin JS до бэкэнда (например, с использованием Ktor, http4k и micronaut). Но все же многих останавливает от использования Kotlin для создания API тот факт, что код запускается в хоть и оптимизированной, но все же Java виртуальной машине. Есть ли решение у этой проблемы? Да, и в этой статье мы обсудим способы компиляции приложения на Kotlin для создания API в нативный код и подводные камни, которые нас ожидают на этом пути.
Читать статью
Не секрет, что Kotlin может использоваться для создания всех компонентов FullStack-приложения - от мобильных приложения для Android/iOS и веб-сайтов на Kotlin JS до бэкэнда (например, с использованием Ktor, http4k и micronaut). Но все же многих останавливает от использования Kotlin для создания API тот факт, что код запускается в хоть и оптимизированной, но все же Java виртуальной машине. Есть ли решение у этой проблемы? Да, и в этой статье мы обсудим способы компиляции приложения на Kotlin для создания API в нативный код и подводные камни, которые нас ожидают на этом пути.
Читать статью
Telegraph
Kotlin-сервер без JVM — реальность?
Не секрет, что Kotlin может использоваться для создания всех компонентов FullStack-приложения - от мобильных приложения для Android/iOS и веб-сайтов на Kotlin JS до бэкэнда (например, с использованием Ktor, http4k и micronaut). Но все же многих останавливает…
Что нельзя делать с абстрактным классом?
Anonymous Quiz
79%
Создать экземпляр
10%
Наследоваться от этого класса
7%
Нельзя переопределить его методы
4%
Нельзя создать больше одного потомка
В чем разница между значением val и константой?
val - это переменная, доступная только для чтения, но не константа: ее можно инициализировать значением переменной (поэтому ее значение не обязательно знать во время компиляции), и если оно объявлено внутри конструкции, которая вызывается повторно (например, функции), оно может принимать различное значение при каждом вызове. Кроме того, он может ссылаться на объект, который является изменяемым. Если у нас есть значение, которое действительно является постоянным (и представляет собой строку или примитивный тип, который известен во время компиляции), мы можем объявить его как фактическую константу. Однако мы можем сделать это только внутри объявления объекта или на верхнем уровне файла.
val - это переменная, доступная только для чтения, но не константа: ее можно инициализировать значением переменной (поэтому ее значение не обязательно знать во время компиляции), и если оно объявлено внутри конструкции, которая вызывается повторно (например, функции), оно может принимать различное значение при каждом вызове. Кроме того, он может ссылаться на объект, который является изменяемым. Если у нас есть значение, которое действительно является постоянным (и представляет собой строку или примитивный тип, который известен во время компиляции), мы можем объявить его как фактическую константу. Однако мы можем сделать это только внутри объявления объекта или на верхнем уровне файла.
val a = 1 //Переменная, доступная только для чтения
const val b = 2 //Константа
Самодостаточный системный подход с применением мультиплатформенного Kotlin
Готов ли мультиплатформенный Kotlin для создания полностековых (веб-)сервисов? Как такая разработка воспринимается с точки зрения тех, кто уже имеет опыт работы с Kotlin? Поделюсь моим опытом по созданию веб-UI для JVM-микросервиса при помощи Kotlin Multiplatform.
Читать статью
Готов ли мультиплатформенный Kotlin для создания полностековых (веб-)сервисов? Как такая разработка воспринимается с точки зрения тех, кто уже имеет опыт работы с Kotlin? Поделюсь моим опытом по созданию веб-UI для JVM-микросервиса при помощи Kotlin Multiplatform.
Читать статью
Teletype
Самодостаточный системный подход с применением мультиплатформенного Kotlin
Готов ли мультиплатформенный Kotlin для создания полностековых (веб-)сервисов? Как такая разработка воспринимается с точки зрения тех...
Выберите неверное утверждение об анонимных функциях:
Anonymous Quiz
15%
Имеют собственное расширенное поведение
20%
Могут принимать и возвращать параметры
49%
Имеют собственное имя
16%
Нет правильного варианта
Каким образом вычисляется базовый тип для результата арифметической операции?
Приоритет следующий: Byte < Short < Int < Long < Float < Double. Т.е. если у одного операнда тип Int, у другого Long, переменной с результатом присвоится тип Long.
Приоритет следующий: Byte < Short < Int < Long < Float < Double. Т.е. если у одного операнда тип Int, у другого Long, переменной с результатом присвоится тип Long.
KMongo и неструктурированные данные
Несмотря на то, что MongoDB начало движение в сторону строгости реляционной модели, она по прежнему остается документной БД и предполагает возможность сохранения документов произвольной структуры. И при использовании MongoDB в языках с динамической типизацией (JavaScript, Python) сохранение или генерация объектов не вызывает сложностей, поскольку заранее не требуется определить структуру извлекаемого или сохраняемого объекта. Но как действовать в случае использования драйверов для MongoDB для языков со строгой типизацией?
В этой статье мы разберем приемы для работы с неструктурированными данными, которые позволят сохранить преимущества использования сериализации с механизмами рефлексии для извлечения произвольных документов.
Читать статью
Несмотря на то, что MongoDB начало движение в сторону строгости реляционной модели, она по прежнему остается документной БД и предполагает возможность сохранения документов произвольной структуры. И при использовании MongoDB в языках с динамической типизацией (JavaScript, Python) сохранение или генерация объектов не вызывает сложностей, поскольку заранее не требуется определить структуру извлекаемого или сохраняемого объекта. Но как действовать в случае использования драйверов для MongoDB для языков со строгой типизацией?
В этой статье мы разберем приемы для работы с неструктурированными данными, которые позволят сохранить преимущества использования сериализации с механизмами рефлексии для извлечения произвольных документов.
Читать статью
Teletype
KMongo и неструктурированные данные
Несмотря на то, что MongoDB начало движение в сторону строгости реляционной модели (добавление опциональной схемы данных, join‑запросов...