Рубрика «kotlin» - 21

Трансляции KotlinConf превращаются в добрую традицию. В этом году мировое сообщество пользователей Kotlin сможет увидеть конференцию в прямом эфире — все выступления, а не только объявления и новости. Приятным бонусом прямого эфира станут 12 интервью с докладчиками, которые в течение двух дней проведет ведущая популярного YouTube-канала «Android Dialogues» Хюен Туэ Дао.

Трансляция начнется выступлением руководителя команды разработки Kotlin Андрея Бреслава, затем два полных дня докладов и в конце закрывающая панель, во время которой докладчики вместе с командой разработки Kotlin ответят на вопросы сообщества. Вы также можете принять участие в обсуждении — задавайте вопросы в Твиттере с хештегом #kc19ask уже сейчас, и смотрите прямой эфир, чтобы услышать ответы.

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

image

Читать полностью »

В конце октября наши Android-разработчики Антон Потапов FlashLight13 и  Дмитрий Васильев smartdev посетили Droidcon London и сегодня делятся с уважаемыми хабравчанами своими впечатлениями.

Напомним, что лондонский Droidcon позиционируется как одна из самых больших конференций в Европе, посвящённых Android-разработке, поэтому ожидания были высокими. В этом обзоре мы отразим не только своё мнение об организации и уровне докладов, но и расскажем об их деталях и направлении индустрии в целом.

Droidcon London 2019: новые тенденции и самые интересные доклады - 1

Читать полностью »

Летаем по модулям: Навигация в многомодульном приложении с Jetpack - 1

Почти каждый растущий проект рано или поздно начинает смотреть в сторону многомодульной архитектуры. Разработчики не хотят ждать пока пересобирается полностью весь проект, когда была изменена только одна фича. Многомодульность помогает изолировать фичи приложения друг от друга, тем самым сокращая время сборки. Но такое изолирование накладывает некоторые ограничения на область видимости компонентов. Когда мы используем навигацию из Jetpack в проекте с одним модулем, граф навигации доступен из любого пакета приложения, мы всегда можем явно указать какой action NavController должен выполнить, а также есть доступ к глобальному хосту, если в проекте есть вложенные фрагменты. Но когда модулей становится много, то возникают вопросы: где строить граф навигации, как получать к нему доступ и как не запутаться в зависимостях модулей. Обо всем этом поговорим под катом.

Читать полностью »

Я пришел в Tinkoff пару лет назад, на новый проект Клиенты и проекты, который тогда только запускался.
Сейчас уже не помню своих ощущений от новой тогда для меня архитектуры. Но точно помню: было непривычно, что Rx используется еще где-то, за пределами обычных походов в сеть и в базу. Сейчас, когда эта архитектура уже прошла некоторый эволюционный путь развития, хочется наконец рассказать о том, что было и к чему пришло.

Архитектура EBA aka реактивность на всю катушку - 1

По моему мнению, все популярные ныне архитектуры — MVP, MVVM и даже MVI — уже давно на арене и не всегда заслуженно. Разве у них нет недостатков? Я вижу их немало. Мы у себя решили, что хватит это терпеть, и (пере)изобрели новую, максимально асинхронную архитектуру.

Читать полностью »

Многие современные языки поддерживают работу с корутинами на уровне языка. Java в данный момент не поддерживает корутины, но есть надежды что в будущем все может измениться.
Читать полностью »

1. Выбор способа обмена. Описание API.

2. Реализация API на стороне 1С.

3. BroadcastReceiver. Получаем данные

4. OnKeyUp. Сканер ШК с эмуляцией клавиатуры

Эта статья должна была стать самой короткой. Но дьявол в деталях. Вот несколько фактов.

Факт 1. Если у нас на форме есть несколько полей EditText, и для всех мы переопределим OnKeyListener, то onKeyUp и onKeyDown затеняются и больше не вызываются. Код.

class MainActivity : AppCompatActivity() {

    var keyListener: View.OnKeyListener = View.OnKeyListener { _, _, _ ->
        true}
        
        override fun onCreate(savedInstanceState: Bundle?) {
          val editBarcode = findViewById(R.id.editBarcode)
          editBarcode.setOnKeyListener (keyListener)

          val editQuantity: EditText = findViewById(R.id.editQuantity)
          editQuantity.setOnKeyListener(keyListener)

Из этого следует
Факт 2. onKeyUp и onKeyDown срабатывают только для тех полей, для которых не переопределен OnKeyListener. И только при нахождении в данном поле.

Факт 3. АТОЛ Lite.Droid в версии 1.1.1 не передает KeyEvent = KEYCODE_TAB если он выставлен в качестве префикса. Ни в префикс1, ни в префикс2. В суффикс я его не пробовал. Он там не нужен.

Факт 4. onKeyUp, onKeyDown, setOnKeyListener — слушают только аппаратные нажатия. Клавиатура, сканер с эмуляцией клавиатуры, и как ни странно, кнопка «назад» на экране, это тоже аппаратная кнопка («KEYCODE_BACK»). А цифровые кнопки(физические) на ТСД это — программные кнопки. Почему так, я не понял :) Ну да ладно.

Теперь немного теории.
Читать полностью »

  1. Для кого
  2. Выбор способа обмена. Описание API.
  3. Реализация API на стороне 1С.
  4. Android. Cтруктура приложения.
  5. BroadcastReceiver. Получаем данные ШК на примере АТОЛ Smart.Lite.
  6. Реализуем обмен и хранение данных. Используем Retrofit 2, Room, Coroutines.
  7. Пользовательский интерфейс. LiveData, PagedList.

Читать полностью »

В этом выпуске нашего дайджеста тестирование, профилирование, работа с подписками, стереотипы разработчиков, дизайн и UX, проектирование, права на разработки, библиотеки и книги! Подключайтесь!

Дайджест интересных материалов для мобильного разработчика #319 (21— 27 октября) - 1Читать полностью »

image

Всем привет!
Последние годы я занимаюсь разработкой под Андроид на Котлине. Не так давно, за неимением RxJava на Kotlin multiplatform, мы начали использовать корутины и flow – холодные стримы для Котлина из коробки. До Андроида я много лет провёл с C#, и там свои корутины есть уже очень давно, только их там так называть не принято. Но вот про аналог flow на async/await я не слышал. Основной инструмент для реактивного программирования – Rx.Net (собственно, здесь rx и родился). Вот я и решил поностальгировать и попробовать напилить велосипед.

Далее подразумевается, что читатель имеет представление о штуках, про которые говорилось в предыдущем абзаце. Для нетерпеливых — сразу ссылка на репозиторий:
https://github.com/ILAgent/flowsharp

Дисклеймер: данный код не претендует на использование в продакшене. Это — концепт, не более того. Что-то может работать не совсем так, как задумывалось.

Читать полностью »

Мы возвращаемся из отпуска с новым дайджестом в котором есть длинная история путеводителя, закрытие Daydream, самые красивые приложения Material Design Awards 2019, темные темы и рост продуктов, рынок приложений в 3 квартале и многоликий Retention.

Дайджест интересных материалов для мобильного разработчика #318 (14— 20 октября) - 1Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js