Pull to refresh

Будущее внедрения зависимостей в Android

Reading time9 min
Views6.8K

Предлагаю вашему вниманию перевод оригинальной статьи от Jamie Sanson
image


Создание Activity до Android 9 Pie


Внедрение зависимостей (DI) — это общая модель, по ряду причин используемая во всех формах разработки. Благодаря проекту Dagger, он взят в качестве шаблона, используемого в разработке для Android. Недавние изменения в Android 9 Pie привели к тому, что теперь у нас есть больше возможностей, когда речь идет о DI, особенно с новым классом AppComponentFactory.




DI очень важно, когда речь заходит о современной разработке Android. Это позволяет сократить общее количество кода при получении ссылок на сервисы, используемые между классами, и в целом хорошо разделяет приложение на компоненты. В этой статье мы сосредоточимся на Dagger 2, самой распространенной библиотеке DI, используемой в разработке Android. Предполагается, что вы уже обладаете базовыми знаниями о том, как это работает, но не обязательно понимать все тонкости. Стоит отметить, что эта статья — нечто вроде авантюры. Это интересно и всё, но на момент её написания Android 9 Pie даже не появлялся на панели версий платформы, поэтому, вероятно, данная тема не будет иметь отношения к повседневной разработке в течение как минимум нескольких лет.

Внедрить зависимость
Total votes 8: ↑7 and ↓1+6
Comments0

Создание собственного Android-диктофона с помощью Kotlin

Reading time7 min
Views8.7K

Создание собственного Android-диктофона с помощью Kotlin


Мультимедийный фреймворк Android поддерживает запись и воспроизведение аудио. В этой статье я покажу, как разработать простое приложение для звукозаписи, которое будет записывать аудио и сохранять его в локальном хранилище Android-устройства с помощью MediaRecorder из Android SDK.


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

Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments6

Android-приложение с фактами о Чаке Норрисе на Kotlin

Reading time6 min
Views9.9K

Android-приложение с фактами о Чаке Норрисе на Kotlin


Факты о Чаке Норрисе — это интернет-феномен с шутливыми «фактами» о мастере боевых искусств и актёре Чаке Норрисе. «Факты» — это шутки о выносливости Норриса, его мужественности и статусе альфа-самца.


В этом уроке мы создадим собственное Android-приложение с фактами о Чаке Норрисе с помощью Kotlin. В качестве IDE мы будем использовать Android Studio. На этом примере вы сможете узнать, как выполнять запросы к сети на Kotlin и как использовать библиотеку OkHttp 3.

Читать дальше →
Total votes 13: ↑7 and ↓6+1
Comments6

Соревнование по программированию Kotlin Heroes

Reading time2 min
Views5.1K
JetBrains начала сотрудничество с Codeforces в продвижении языка Kotlin среди любителей спортивного программирования. Codeforces предоставляет Kotlin-разработчикам платформу, на которой можно посостязаться в алгоритмическом программировании и отточить свое мастерство. Вместе с Codeforces мы запускаем серию соревнований под названием Kotlin Heroes.

image
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments2

Анонс: зачем программистам психотерапия и как устроен алгоритм подбора идеального терапевта

Reading time2 min
Views4.4K


СЕГОДНЯ, 14 октября, в 20:00 в наших соцсетях выступит главный евангелист mental health в нашей IT-тусовке — создатель языка Kotlin и основатель стартапа Alter Андрей Бреслав.



Учитывая, какой большой отклик мы получили от Хабра во время нашего последнего разговора о ментальном здоровье, мы решили раскрыть тему с практической стороны. Андрей расскажет о том, зачем программистам нужна психотерапия, как найти своего терапевта и как создавался сервис.

Кроме того, он ответит на ваши вопросы: вы можете задать любой вопрос о ментальном здоровье, психотерапии и работе в IT-командах анонимно через эту форму или нажав на кнопку.


Total votes 30: ↑24 and ↓6+18
Comments2

Зачем программистам психотерапия и как устроен алгоритм подбора идеального терапевта

Reading time19 min
Views11K
Четырнадцатого октября прошёл прямой эфир с главным евангелистом mental health в нашей IT-тусовке — создатель языка Kotlin и основатель стартапа Alter Андреем Бреславом.
Делимся с вами расшифровкой и записью интервью

Total votes 35: ↑31 and ↓4+27
Comments13

«Почему Kotlin хуже, чем Java?»

Reading time6 min
Views75K

Такой провокационный вопрос задал реддитор nenemen в сабреддите Java:

«Я думаю о том, чтобы свой следующий проект сделать на Kotlin + Spring Boot, но мощь всенародной любви к Kotlin и одновременно ненависти к Java заставляют всё это походить на какой-то культ. Поэтому хотел бы услышать аргументы «против».

Мы в FunCorp в своё время сделали именно такой выбор в пользу Kotlin. И сегодня соотношение Java/Kotlin у нас составляет примерно 20 на 80, продолжая уменьшаться при каждом удобном случае. Поэтому ответы на этот вопрос меня заинтересовали, и я стал листать секцию комментариев. Там наткнулся на реплику реддитора rzwitserloot, которая мне показалась настолько взвешенной, многосторонней и рациональной, что я захотел поделиться ей с нашей командой, а заодно и читателями Хабра.

Далее перевод его аргументов.

Читать далее
Total votes 157: ↑143 and ↓14+129
Comments681

Торжественное переоткрытие Store: загрузка данных в Android с помощью корутин

Reading time13 min
Views4.7K

Предлагаю вашему вниманию перевод оригинальной статьи от Mike Nakhimovich


Давным-давно я работал в «Нью-Йорк Таймс» и создал библиотеку под названием Store, которая была «библиотекой Java для легкой, реактивной загрузки данных». Мы создали Store, используя RxJava и шаблоны, взятые из реализации Guava’s Cache. Сегодняшние пользователи приложений ожидают, что обновления данных будут происходить в UI без необходимости делать такие вещи, как pull-to-refresh, чтобы обновить данные или переходить между экранами туда-сюда. Реактивный фронтенд заставил меня задуматься о том, как мы можем иметь декларативные хранилища данных с простыми API, которые абстрагируют сложные функции, такие как многозадачный троттлинг и дисковое кэширование, которые необходимы в современных мобильных приложениях. За три года работы у Store 45 контрибьютеров и более 3500 звёзд на GitHub. Отныне я рад объявить, что Dropbox возьмет на себя активное развитие Store и выпустит его полностью на Kotlin с поддержкой Coroutines и Flow. И теперь Store 4 — это возможность воспользоваться тем, что мы узнали, переосмысливая API и текущие потребности экосистемы Android.




Загрузить данные
Total votes 3: ↑3 and ↓0+3
Comments4

Сделать статический анализ умным — полдела, потом его надо делать глупым

Reading time6 min
Views7.5K

Одна из проблем статического анализа в том, что его легко сделать умнее, чем надо. В результате он начинает выдавать предупреждения в таком коде, который человеку кажется нормальным. И так и хочется сказать анализатору «Отстань, зануда! Сильно умный что ли?»


Я в очередной раз почувствовал вкус всего этого, когда работал над поиском константных выражений для Kotlin. Ранее такой анализ был для Java, но для Kotlin он впервые появится только в следующей версии IntelliJ IDEA 2021.3. Инспекция базируется на анализе потока данных и находит в коде выражения, которые всегда равны одному и тому же. Изначально такая инспекция на Java сообщала только о логических выражениях, которые всегда равны true или false. Потом мы осторожно расширили её, и она стала сообщать ещё и о выражениях, которые всегда равны null или 0. Было решено проделать тот же путь для Kotlin.

Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments34

Использование Jetpack Compose в продакшне: первые впечатления

Reading time7 min
Views8.6K
Мы в МТС Банке давно ждали релиза Jetpack Compose, чтобы использовать его в продакшне. В прошлом месяце такая возможность наконец появилась — мы решили обновить дизайн одного из экранов нашего приложения «МТС Банк для бизнеса» для Android.



В статье я хотел бы поделиться нашим опытом внедрения Jetpack Compose, мыслями о его преимуществах, а также привести несколько лучших практик, которые помогут вам в его освоении. Надеюсь, эта статья будет полезна тем, кто хочет попробовать Jetpack Compose в своем проекте.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments10

Функциональный Kotlin. Часть 2. Каррированные функции и где они обитают

Reading time2 min
Views7K

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

Читать далее
Total votes 11: ↑8 and ↓3+5
Comments3

Удаленный доступ к IP камерам. Часть 2. Мобильное приложение

Reading time18 min
Views20K


В предыдущей статье я рассказывал о простом сервере для работы с камерами видеонаблюдения, но для оперативного просмотра RTSP потоков использовал мобильное приложение VLC, которое меня не вполне устраивало по нескольким причинам. Под катом вы найдете описание и листинги простого мобильного приложения под андроид, написанного специально для охранных камер. Исходники приложения можно взять на github. Для тех, кто не хочет собирать apk самостоятельно, вот ссылка на готовые файлы.

Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments14

Вопросы и ответы для собеседования по Kotlin. Часть 1

Level of difficultyMedium
Reading time14 min
Views64K
Читать далее
Total votes 2: ↑2 and ↓0+2
Comments10

Вопросы и ответы для собеседования по Kotlin. Часть 2

Level of difficultyMedium
Reading time17 min
Views30K
Читать далее
Total votes 5: ↑4 and ↓1+3
Comments6

Вопросы и ответы для собеседования по Kotlin. Часть 3

Level of difficultyMedium
Reading time21 min
Views27K
Читать далее
Total votes 7: ↑7 and ↓0+7
Comments3

Вопросы и ответы для собеседования по Kotlin. Часть 4

Level of difficultyMedium
Reading time18 min
Views28K
Читать далее
Total votes 7: ↑6 and ↓1+5
Comments4

Руководство по фоновой работе в Android. Часть 5: Корутины в Котлине

Reading time4 min
Views14K

Остров Котлин

Предыдущие тексты этой серии: про AsyncTask, про Loaders, про Executors и EventBus, про RxJava.

Итак, этот час настал. Это статья, ради которой была написана вся серия: объяснение, как новый подход работает «под капотом». Если вы пока не знаете и того, как им пользоваться, вот для начала полезные ссылки:


А освоившись с корутинами, вы можете задаться вопросом, что позволило Kotlin предоставить эту возможность и как она работает. Прошу заметить, что здесь речь пойдёт только о стадии компиляции: про исполнение можно написать отдельную статью.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments5

Распознавание объектов и человеческих эмоций с использованием Firebase ML Kit

Reading time4 min
Views6.9K

Распознавание объектов и человеческих эмоций с использованием Firebase ML Kit


Если вы следили за Google I/O (или хотя бы посмотрели Keynotes), то вы, возможно, заметили анонс нового продукта в составе платформы Firebase под названием ML Kit.


ML Kit предоставляет API, при помощи которого вы сможете добавлять в приложения (как Android, так и iOS) мощные функции машинного обучения независимо от того, являетесь ли вы опытным разработчиком машинного обучения или всего лишь новичком в этой сфере.

Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments0

Мои любимые примеры функционального программирования в языке Kotlin

Reading time5 min
Views29K

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


Мои любимые примеры функционального программирования в языке Kotlin

Читать дальше →
Total votes 36: ↑25 and ↓11+14
Comments17
1