Android разработка – Telegram
Android разработка
5.21K subscribers
442 photos
25 videos
1 file
547 links
все о Android разработке

@itchannels_telegram - 🔥 лучшие it каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - ml 📚

@pythonlbooks -📚books
Download Telegram
💻 Золотой век Kotlin, и какое будущее его ждёт

«В компании Infobip с 2017 года и до сегодняшнего дня идет золотой век Kotlin. Будет ли он продолжаться, зависит исключительно от JetBrains и их способности внедрять инновации в Kotlin»

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

Разбираются достоинства и недостатки Kotlin:
Плюсы Kotlin
— Интероперабельность с Java
— Корутины
— Структура данных и сопоставление шаблонов
— Работа с Null
— Другие особенности

Минусы Kotlin
— Интероперабельность с Java
— Экосистема Kotlin
— Рабочая сила
— Отсутствие прогресса

📎 Статья

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2👎2🔥1
💻 Библиотека Scout — быстрый и безопасный DI на Kotlin

Scout — это библиотека, появившаяся как результат большого количества проб и ошибок. Пет-проекты с кастомными DI-контейнерами. Изучение каждого нового DI-фреймворка, который появлялся в комьюнити.
Держите полезную статью о том, как Scout создавалась и какие проблемы может решать.

Вот ещё некоторые факты из статьи:
*️⃣Библиотека Scout использует рефлексию для доступа к содержимому графа и предоставляет защищенные методы для обращения к нему.

*️⃣Валидация графа становится сложной из-за отказа от аннотаций, но может быть проверена в unit-тестах.

*️⃣Библиотека предлагает удобный и настраиваемый валидатор графа зависимостей.

📎 Читать подробнее

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1🔥1
💻 Отличная статья-презентация о работе с шаблонизаторами Kotlin

В статье рассматривается использование шаблонизатора Pebble для формирования HTML-документов и его особенности, включая поддержку фильтров, тегов и наследования шаблонов.

Описаны условные конструкции, проверки и наследование шаблонов в рамках использования шаблонизатора Pebble.

Обсуждаются принципы работы с шаблонами и передача списков данных в шаблоны.

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

Кроме этого обсуждается вопрос null-безопасности в Kotlin и удобные средства для обработки этой ситуации.

📎 Онлайн-презентация

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥21
💻 О .not() и ! в Kotlin

Мы довольно часто используем оператор .not(), поскольку это более читабельно, чем !.

Но есть одна вещь, которую оператор .not() не может сделать — поглядите:
myEvents?.forEach { myEvent -> 
if (!myEvent.events.isNullOrEmpty()) {
myEvent.events.find { it.type == eventType }
}

if (myEvent.events.isNullOrEmpty().not()) {
myEvent.events.find { it.type == eventType }
}
}

Как-то так

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
💻 Отличная шпаргалка по функциям в Kotlin

Держите отличную презентацию по функциям в Kotlin, которая поможет повторить самое важное
Затрагиваются такие темы:
— функция main, точка входа
— компактные функции
— лямбды и функции высшего порядка
— список фильтров
— нетерпеливые и ленивые фильтры

Описано подробно и понятно, рекомендую
📎 Сайт со слайдами

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61🔥1
💻 Создаем первое приложение с Jetpack Compose на Kotlin

Держите годное видео о том, как с помощью фреймворка Jetpack Compose создать проект в Android Studio.

📎 Кликабельный план ролика
📎 Само видео

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥21
📱 Zxing QR сканер (Jetpack compose) | Android Studio & Kotlin

Годный контент!
В этом видео описывается создание простого приложения — сканера QR-кодов на Jetpack Compose и Android Studio при помощи библиотеки ZXing.
Параллельно добавляется Room + Hilt для записи отсканированных кодов в БД.

📎 Кликабельный план видео
📎 YouTube

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍61
💻 Немного о конструкции when в Kotlin

Конструкция when проверяет значение некоторого объекта и в зависимости от его значения выполняет тот или иной код. Конструкция when аналогична конструкции switch в других языках. Формальное определение:
when(объект){
значение1 -> действия1
значение2 -> действия2
...
значениеN -> действияN
}


Если значение объекта равно одному из значений в блоке кода when, то выполняются соответствующие действия, которые идут после оператора -> после соответствующего значения:
fun main() {
val isEnabled = true
when(isEnabled){
false -> println("isEnabled off")
true -> println("isEnabled on")
}
}

Здесь в качестве объекта в конструкцию when передается переменная isEnabled. Далее ее значение по порядку сравнивается со значениями в false и true. В данном случае переменная isEnabled равна true, поэтому будет выполняться код:
println("isEnabled on")



Выражение else

В примере выше isEnabled имела только 2 возможных варианта: true и false. Однако чаще бывают случаи, когда значения в блоке when не покрывают все возможные значения объекта. Дополнительное выражение else позволяет задать действия, которые выполняются, если объект не соответствует ни одному из значений:
val a = 30
when(a){
10 -> println("a = 10")
20 -> println("a = 20")
else -> println("неопределенное значение")
}

То есть в данном случае если переменная a равна 30, поэтому она не соответствует ни одному из значений в блоке when. И соответственно будут выполняться инструкции из выражения else.

Если надо, чтобы при совпадении значений выполнялось несколько инструкций, то для каждого значения можно определить блок кода:
var a = 10
when(a){
10 -> {
println("a = 10")
a *= 2
}
20 -> {
println("a = 20")
a *= 5
}
else -> { println("неопределенное значение")}
}
println(a)


📎 Читать подробнее

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61🔥1
📱 Интересная статья о написании профайлера для анализа Android-приложения с помощью Kotlin

Некоторые мысли из статьи, и о чём вообще в ней речь:

Аудит приложения важен для выявления неявных деградаций в производительности.

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

Существующие инструменты Android Profile, Battery Historian и Systrace имеют свои минусы.

В частности, Android Profiler имеет наглядные графики и обширный функционал, но у него отсутствует гибкость в сборке метрик.

Systrace позволяет собирать и инспектировать время работы частей кода по всем процессам на девайсе.

Battery Historian нужен для получения дополнительной информации по работе приложения, такой как процент потребления батарейки и условия, влияющие на потребление.

В статье представлены коды для фиксации значений потребления CPU, памяти, сети и потребления батареи.

Кастомное решение имеет ряд преимуществ по отношению к Android Profiler, включая отсутствие крашей, замедлений приложения и гибкость в сборе метрик.

📎 Статья

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1
Mobox — полезная утилита для запуска windows x86 приложений на Android.

Проект работает через Termux, используя Box64 и Wine. Имеет простой и быстрый процесс установки.

@android_its
👍83🥰1
💻 Запуск Kotlin кода без IDE

▶️Итак, вопрос: как скомпилировать простенький код написанный на Kotlin без IDE?


▶️Вот пошаговая инструкция:

1. Загрузить компилятор. Найти последнюю версию можно здесь.

2. Распаковать компилятор в отдельную папку, добавить bin директорию в переменную окружения PATH. Об этом можно почитать тут. Bin содержит скрипты, необходимые для сборки и запуска кода на Windows, OS X и Linux.
Другой вариант установки компилятора: для OS X, Linux, Cygwin, FreeBSD или Solaris (возможно, и другие UNIX-системы), то можно использовать SDKMAN https://sdkman.io/.
Запускаем в терминале:
$ curl -s https://get.sdkman.io | bash

Затем следуем инструкциям. Потом потребуется открыть новое окно терминала и установить Kotlin с помощью команды:
$ sdk install kotlin


▶️Теперь кратко о создании и запуске простого приложения.

1. Создаем файл - `hello.kt` со следующим кодом:
fun main(args: Array<String>) {
println("Hello, World!")
}


2. Компилируем, используя командную строку:
$ kotlinc hello.kt -include-runtime -d hello.jar

Подробнее о флагах компиляции можно почитать в мане:
$ kotlinc -help


3. Запускаем приложение:
$ java -jar hello.jar


📎Более подробно о других вариантах установки компилятора, компиляции библиотек, запуске Kotlin-скриптов и прочем в доках

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥1
💻 Конструкторы-самозванцы в Kotlin

Держите полезную статью о том, как можно нестандартно использовать функции верхнего уровня в Kotlin. О чём пойдёт речь в статье?

В Kotlin возможны конструкции, которые могут выглядеть как вызовы конструкторов, но не являются таковыми

Функции верхнего уровня в Kotlin разрешены и не ограничены регистром именования

Использование оператора Companion.invoke() может быть полезно для контроля создания объектов в статическом контексте

Оператор receiver(Context) Companion.invoke() позволяет делегировать создание объектов в локальном контексте

📎 Статья

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍32