Как стать автором
Обновить
34.97

Kotlin *

Статически типизированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Измеряя sequences

Уровень сложности Сложный
Время на прочтение 38 мин
Количество просмотров 5.1K

Измерение sequences в сравнении с обычными коллекциями. Смотрим под капот и разбираемся, как работают sequences и за счет чего мы получаем выигрыш в производительности.

Много кода и теории...

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 12

Философия Compose

Время на прочтение 10 мин
Количество просмотров 4.2K

Всем привет! Недавно я начала изучать Jetpack Compose. Всё, что я изучаю по иностранным гайдам, я обычно перевожу, чтобы при повторном прочтении, мозг снова не тратил время на перевод. Мне кажется, этот фреймворк становится всё более популярен, поэтому хочу поделиться своим переводом Thinking in Compose с другими начинающими :)

Jetpack Compose — это современный декларативный UI Toolkit для Android, упрощающий написание и поддержку UI (пользовательского интерфейса) вашего приложения, и в этом гайде рассказывается за счёт чего это достигается.

Читать далее
Рейтинг 0
Комментарии 5

Определение произвольной точки на полигоне. Jetpack Compose. Canvas. Algorithm

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 1.7K

Каждый день мы работаем над улучшением наших проектов. Будь то инициатива заказчика, продукт корпорации либо Ваш собственный. Изучая отзывы пользователей своего проекта, я столкнулся с запросом ускорить действия пользователя на одном из ключевых экранов. Это можно делать разными способами - разбиение экрана на несколько, улучшение UI… Но рано или поздно придется прорабатывать UX.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 3

Что мобильным разработчикам расскажут на Mobius 2023 Autumn: от Compose и SwiftUI до компьютерного зрения

Время на прочтение 19 мин
Количество просмотров 1.4K

Близится очередная конференция Mobius, и пришло время представить Хабру её программу.

Суть прежняя: тут есть доклады и по iOS-разработке, и по Android, и по кроссплатформенным технологиям вроде Flutter. И про свежие тренды (вплоть до шлема Apple Vision Pro), и про более фундаментальные вопросы вроде архитектурных.

А что конкретно будет? Собрали под катом описания всех докладов, разделив их на тематические блоки.

Программа Mobius 2023 Autumn
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 0

Истории

Как я осваивал Jetpack Compose

Время на прочтение 9 мин
Количество просмотров 4.3K

Привет, я Михаил Селезнев, андроид-разработчик в компании 1221Systems. Поделюсь своими впечатлениями о Compose — будет интересно коллегам, которые думают о переходе на него. Расскажу, в чем были сложности и что помогло мне быстрее разобраться.

Пару слов о моем бэкграунде: я в профессии больше четырех лет, в 1221Systems пришел полтора года назад на проект по разработке большого приложения для заказа продуктов ритейлинговой сети. Проработал около года, в марте этого года перешел на другой проект — приложение для сотрудников компании.

Само приложение написано на достаточно современном стеке: MVI, Koin, Coroutines + Flow, Jetpack Compose. При этом навигация реализована на фрагментах. В onCreateView возвращаем ComposeView, где в setContent прокидываем composable функцию.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 10

Ликбез по корутинам Kotlin

Время на прочтение 19 мин
Количество просмотров 13K

Корутины — это паттерн проектирования, предназначенный для написания асинхронных программ, способных выполнять нескольких задач одновременно.

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

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

В этой статье мы с вами разберемся, как использовать корутины в Kotlin.

Читать далее
Всего голосов 13: ↑11 и ↓2 +9
Комментарии 1

Как сделать приложение для мобильного стриминга на Android с помощью опенсорс-инструментов и EdgeStreaming

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 2.5K

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

В прошлый раз я рассказывал, как сделать приложение для показа VOD. А сегодня поделюсь, как с помощью опенсорс-инструментов сделать полноценный сервис для онлайн-стриминга на Android и интегрировать его с EdgeStreaming.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 2

Как сделать свой сервер мобильному разработчику, если он никогда такого не делал?

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 8.1K

У меня ушел один месяц на создание своего сервера. Две недели ушло на понимание функционала и сборку прототипа. Одну неделю я писал Ktor-сервер на Kotlin и визуал в приложении на Flutter. И еще одну неделю тестировал. И я хочу, чтобы вы сэкономили две недели, когда решите создать ваш бэкэнд.

Читать далее
Всего голосов 13: ↑10 и ↓3 +7
Комментарии 3

Как я пытался писать красивый код

Время на прочтение 9 мин
Количество просмотров 17K

Недавно прошёл конкурс красоты кода от Сбера. Участие по направлению Android в этом конкурсе было интересным опытом, которым я поделюсь в статье.

Кроме моего решения вы найдёте: решение chatGPT, решение моего друга, решение победителя в номинации «Изящный код» и его комментарий о конкурсе.

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 45

Android Ktorfit+Compose

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 2.2K

Используется Ktorfit для получения данных из сети. Room для кэширования результатов запроса. Compose для отображение данных

Без использования Room, проект уровня тестового задания на Мидла-Синьера, рассчитанного на 20 часов. На Синьера могут попросить реализовать логин или biometric authentication как бонус

Данные для списка берутся из https://api.spacexdata.com/v4/launches. Размер примерно 450kb

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Комментарии 11

Миграция конфигурации сборки с Groovy на Kotlin

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 4.4K

DSL (Domain-Specific Language) — это язык программирования, который спроектирован и оптимизирован для решения задач в конкретной области или для определенного класса задач. DSL build.gradle предоставляет разработчикам удобный способ определения настроек проекта и управления ими, используя специфический синтаксис, который Gradle понимает и обрабатывает. Этот DSL позволяет создавать мощные и гибкие сценарии сборки, которые могут быть легко настраиваемы для разных проектов и задач.

С Android Studio Giraffe Kotlin DSL становится новым стандартом для Gradle-скриптов в разработке Android. Когда вы создаете новые проекты, используя встроенные шаблоны IDE, вам будут предоставлены файлы Kotlin DSL вместо файлов Gradle на основе Groovy.

Это предстоящее изменение обеспечило возможность  переноса конфигураций Gradle на основе Groovy DSL на Kotlin DSL. Перевод файлов Gradle с Groovy на Kotlin DSL может значительно улучшить рабочий процесс разработки для Android. Особенно, если вы уже знакомы с Kotlin. Такой переход на единый знакомый язык не только повышает вашу производительность, но и устраняет необходимость переключаться между двумя языками для выполнения задач разработки и настройки. Надежность и интуитивность Kotlin DSL дает уверенность в создании пользовательских задач Gradle без необходимости прибегать к зачастую нечеткому синтаксису Groovy.

Статья задумана, как руководство, которое поможет вам на этапе перехода на Kotlin DSL. Материал написан с акцентом на проекты Android, но обсуждаемые моменты могут быть применимы и к другим проектам на основе Gradle, таким как приложение Spring Boot.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 2

Библиотека Scout — быстрый и безопасный DI на Kotlin

Уровень сложности Простой
Время на прочтение 23 мин
Количество просмотров 7.9K

Привет! Меня зовут Александр Миронычев. Я занимаюсь инфраструктурой приложения Яндекс Маркет под Android. Около двух лет назад при работе над модульностью у меня появилось желание написать собственную библиотеку для внедрения зависимостей, которая позволила бы ускорить сборку приложения и упростить процесс модуляризации. Так появился Scout. Сегодня его код мы выложили в открытый доступ.

Эта статья — рассказ о том, как пройти путь от безумной идеи до конкурентоспособного опенсорс-фреймворка. Статья будет полезна тем, кто ищет замену DI-фреймворку в своем проекте, а также тем, кто мечтает написать свою библиотеку, но никак не может начать.

Читать далее
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 13

NoArchitecture Kotlin Compose

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 1.8K

Статья про основные моменты использования Compose в Android разработке на примере простого приложения. Три таба в одном Activity. Обращение в сеть, парсинг Json. Немного анимации. Приложение сделано на коленке за пару дней. Скорее как вопрос к сообществу

TODO: Добавить Clean Architecture

Не кидайтесь тапками, лучше пишите советы как ускорить загрузку списка на холодную и как запустить xcode-kotlin plugin в Xcode

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 4

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн

Эффективная и идиоматическая обработка ошибок в Kotlin

Уровень сложности Средний
Время на прочтение 26 мин
Количество просмотров 4K

Во многих программах написанных на Kotlin, в том числе и доступных на GitHub, а также в некоторых статьях, особенно на Medium, я снова и снова вижу, что авторы обрабатывают ошибки, с моей точки зрения, неэффективно и неидиоматически. При этом результат работы программ может быть правильный. Неэффективность и «неидеоматичность» проявляется в этих случаях в том, что авторы либо используют дополнительные классы, либо городят ненужные костыли, либо делают код более сложным для чтения, понимания и поддержки, чем нужно. 

Не претендуя на истину в последней инстанции, я попытаюсь в этой статье описать систематический подход к оптимальной и идиоматической обработке ошибок в Kotlin.  

Эта публикация должна быть интересна в первую очередь новичкам в Kotlin. Но я надеюсь, она будет небезинтересна и профессионалам. 

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 1

Реализуем современный UI на Jetpack Compose

Время на прочтение 7 мин
Количество просмотров 6.7K

Всем привет, на связи Никита Пятаков, Android-разработчик в МТС Диджитал. В этой статье я расскажу вам о том, как в приложении Мой МТС была проведена работа над UI новой карточки услуги. Рассказ мой будет последовательным – сначала про саму задачку, потом про решение, которое разбито на подпункты.

Читать далее
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 18

Protobuf или Reflection в JNI

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 9.8K

Вы когда нибудь задумывались, на сколько grpc быстрый. Да в сети, ему равных нет. Если вы гоняете маленькие сообщения, которые надо быстро доставить, то лучше grpc попросту не найти ( найти, но по мнению автору protobuf остается движком сериализации, поддерживающим большее кол-во языков ). Но насколько он хорош? Сможет ли он к примеру сравнится просто с нативными вызовами?

Попробуем сравнить это, но так как в обычной жизни нам это может не пригодится, то добавим еще одно условие - сравниваем как лучший способ взаимодействия с jni библиотекой.

Читать далее
Всего голосов 12: ↑8 и ↓4 +4
Комментарии 14

Есть ли смысл начинать писать мобильное приложение не на Kotlin Multiplatform и Compose Multiplatform?

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 9.9K

Всем привет! Меня зовут Борис Вербицкий, и я представитель того редкого типа iOS разработчиков, которые тепло относятся к Kotlin Multiplatform Project и рады появлению Compose Multiplatform. Здесь я решил поделиться своим опытом использования этих технологий, а также кое-какими размышлениями вокруг процессов с такой разработкой. Цель этой статьи - это поднять обсуждение предложенного мной подхода, послушать все за и против в комментариях.

Приятного чтения!

Читать далее
Всего голосов 13: ↑9 и ↓4 +5
Комментарии 25

Создаем нативное Kotlin приложение на Spring Boot Native, Gradle и GraalVM без докера под MacOS и Windows

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 4.3K

В этой статье я хочу рассказать о практическом опыте нативной компиляции production приложения, написанного на Kotlin со Spring Boot, Gradle с использованием GraalVM . Начну сразу с минусов и плюсов самой возможности нативной компиляции и где она может быть полезна, и дальше перейду уже непосредственно к процессу сборки под MacOS и Windows.

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

Read more →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 12

Пишем plugin для IDEA, используя External System API, на примере простой build системы

Уровень сложности Средний
Время на прочтение 20 мин
Количество просмотров 1K

Привет, ранее я написал статью о своем плагине и том, как переосмыслил подход к получению проектной модели Maven. И обещал более подробно рассказать о технических деталях реализации плагина и точках расширения IDEA, которые использовал.

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

Всем этим условиям удовлетворяют популярные билд-системы: Gradle, Maven, Sbt и не только, например Docker-compose. IDEA плагины для них построены на External System API. Поэтому для написания своего плагина, я также использовал данное API и хочу рассказать о нем более подробно.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 4

Всё, что вы хотели знать о Java, но не доходили руки спросить: что будет на Joker 2023

Время на прочтение 18 мин
Количество просмотров 3.3K

Как ускорить запуск JVM? Каково переходить с SQL на Cassandra? Что нас ждёт в Java 21? Как профилируют в Alibaba? Какие части Java были сделаны в России? И как в названия докладов на Java-конференции прокралось не только слово «Kotlin», но и «Python» с «PHP»?

На все эти и многие другие вопросы ответит Joker 2023. До конференции остался месяц, её программа готова — представляем её Хабру.

Программа Joker 2023
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 0

Вклад авторов