Многие современные языки поддерживают работу с корутинами на уровне языка. Java в данный момент не поддерживает корутины, но есть надежды что в будущем все может измениться.
Читать полностью »
Рубрика «kotlin» - 19
Использование нативных корутин в Java
2019-11-04 в 8:01, admin, рубрики: c++, C++20, coroutines, java, kotlinПриложение на ТСД и связь с 1С: Предприятие 8.3 через HTTP-Сервис. Часть 4 (OnKeyUp. Сканер ШК с эмуляцией клавиатуры)
2019-10-30 в 16:10, admin, рубрики: api, kotlin, onKeyUp, Разработка под android, Сканер ШК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С: Предприятие 8.3 через HTTP-Сервис
2019-10-28 в 15:58, admin, рубрики: 1c, android, api, kotlin, retrofit, Разработка под android- Для кого
- Выбор способа обмена. Описание API.
- Реализация API на стороне 1С.
- Android. Cтруктура приложения.
- BroadcastReceiver. Получаем данные ШК на примере АТОЛ Smart.Lite.
- Реализуем обмен и хранение данных. Используем Retrofit 2, Room, Coroutines.
- Пользовательский интерфейс. LiveData, PagedList.
Дайджест интересных материалов для мобильного разработчика #319 (21— 27 октября)
2019-10-27 в 11:43, admin, рубрики: App Store, apple, docker, flutter, kotlin, react native, realitykit, swift, ux дизайн, Блог компании Цифровые Экосистемы, Интернет вещей, интерфейсы, искусственный интеллект, маркетинг мобильных приложений, разработка мобильных приложений, Разработка под android, разработка под iOSВ этом выпуске нашего дайджеста тестирование, профилирование, работа с подписками, стереотипы разработчиков, дизайн и UX, проектирование, права на разработки, библиотеки и книги! Подключайтесь!
Реализация Kotlin Flow на C#
2019-10-26 в 20:32, admin, рубрики: .net, async/await, C#, flow, kotlin, Reactive Streams, rx, Программирование
Всем привет!
Последние годы я занимаюсь разработкой под Андроид на Котлине. Не так давно, за неимением RxJava на Kotlin multiplatform, мы начали использовать корутины и flow – холодные стримы для Котлина из коробки. До Андроида я много лет провёл с C#, и там свои корутины есть уже очень давно, только их там так называть не принято. Но вот про аналог flow на async/await я не слышал. Основной инструмент для реактивного программирования – Rx.Net (собственно, здесь rx и родился). Вот я и решил поностальгировать и попробовать напилить велосипед.
Далее подразумевается, что читатель имеет представление о штуках, про которые говорилось в предыдущем абзаце. Для нетерпеливых — сразу ссылка на репозиторий:
https://github.com/ILAgent/flowsharp
Дисклеймер: данный код не претендует на использование в продакшене. Это — концепт, не более того. Что-то может работать не совсем так, как задумывалось.
Дайджест интересных материалов для мобильного разработчика #318 (14— 20 октября)
2019-10-20 в 13:26, admin, рубрики: App Store, apple, flutter, Google, Google Play, kotlin, swift, ux дизайн, VR, Блог компании Цифровые Экосистемы, Интернет вещей, интерфейсы, маркетинг мобильных приложений, разработка мобильных приложений, Разработка под android, разработка под iOSМы возвращаемся из отпуска с новым дайджестом в котором есть длинная история путеводителя, закрытие Daydream, самые красивые приложения Material Design Awards 2019, темные темы и рост продуктов, рынок приложений в 3 квартале и многоликий Retention.
Telegraff: Kotlin DSL для Telegram
2019-10-20 в 12:43, admin, рубрики: api, java, kotlin, kotlin dsl, open source, telegraff, telegram
На Хабре тысячи статей про то, как сделать Телеграм бота под разные языки программирования и платформы. Тема далеко не новая.
Но Telegraff – лучший фреймворк для реализации Телеграм ботов и я это под катом докажу.
«Для сообщества критически важно установить стандарты»: Марсин Москала о Kotlin
2019-10-18 в 9:47, admin, рубрики: Effective Kotlin, java, kotlin, Marcin Moskala, mobius, Разработка под android
Пару лет назад было много блог-постов «смотрите, какой интересный язык Kotlin», где объяснялись основы. В 2019-м разжёвывать азы уже не требуется, зато теперь появляется публикация совсем другого формата. Марсин Москала, который уже не первый год учит людей этому языку, сейчас выпускает книгу «Effective Kotlin» — то есть уже не просто «как писать на Kotlin», а «как писать на Kotlin наилучшим образом».
А скоро Марсин приедет к нам на Mobius с докладом. Поэтому мы поспрашивали его и про новую книгу, и про доклад, и про обучение людей Kotlin, и о происходящем в индустрии вокруг этого языка. И про то, чем различаются слова «effective» и «efficient».
Читать полностью »
Обработка ошибок в Kotlin-Java: как правильно это делать?
2019-10-17 в 8:27, admin, рубрики: error handling, java, kotlin, Блог компании FunCorp, идеальный код, програмирование, Программирование
Обработка ошибок в любой разработке играет важнейшую роль. В программе может пойти не так практически всё: пользователь введёт некорректные данные, или они могут прийти такими по http, или мы ошиблись при написании сериализации/десериализации и в процессе обработки программа падает с ошибкой. Да может банально закончится место на диске.
¯_(ツ)_/¯, нет единого способа, и в каждой конкретной ситуации придётся подбирать наиболее подходящий вариант, но есть рекомендации, как это делать лучше.
Розеттский код: измеряем длину кода в огромном количестве языков программирования, изучаем близость языков между собой
2019-10-15 в 12:07, admin, рубрики: autohotkey, C, c++, clojure, common lisp, D, Factor, Go, haskell, J, java, javascript, Julia, kotlin, Lua, mathematica, perl, perl 6, Phix, PicoLisp, python, Racket, REXX, ring, ruby, scala, Sidef, tcl, wolfram language, wolfram mathematica, Алгоритмы, Блог компании Wolfram Research, Занимательные задачки, изучение языков, Программирование, языки программирования
Скачать файл с кодом и данные можно в оригинале поста в моем блоге
Существует очень интересный проект — «Розеттский Код». Их цель — «представить решение одинаковых задач на максимально возможном числе различных языков программирования для того, чтобы продемонстрировать их общие места и различия и помочь человеку обладающему знаниями по решению проблемы одним методом узнать другой».
Этот ресурс предоставляет уникальную возможность сравнить коды программ на разных языках, этим мы и займемся в этой статье. Она является полной переработкой и доработкой статьи Джона Маклуна "Code Length Measured in 14 Languages".
Читать полностью »


