Почти каждый растущий проект рано или поздно начинает смотреть в сторону многомодульной архитектуры. Разработчики не хотят ждать пока пересобирается полностью весь проект, когда была изменена только одна фича. Многомодульность помогает изолировать фичи приложения друг от друга, тем самым сокращая время сборки. Но такое изолирование накладывает некоторые ограничения на область видимости компонентов. Когда мы используем навигацию из Jetpack в проекте с одним модулем, граф навигации доступен из любого пакета приложения, мы всегда можем явно указать какой action NavController должен выполнить, а также есть доступ к глобальному хосту, если в проекте есть вложенные фрагменты. Но когда модулей становится много, то возникают вопросы: где строить граф навигации, как получать к нему доступ и как не запутаться в зависимостях модулей. Обо всем этом поговорим под катом.
Рубрика «kotlin» - 14
Архитектура EBA aka реактивность на всю катушку
2019-11-06 в 9:48, admin, рубрики: android, architecture, EBA, kotlin, tinkoff, Блог компании Tinkoff.ru, разработка мобильных приложений, Разработка под androidЯ пришел в Tinkoff пару лет назад, на новый проект Клиенты и проекты, который тогда только запускался.
Сейчас уже не помню своих ощущений от новой тогда для меня архитектуры. Но точно помню: было непривычно, что Rx используется еще где-то, за пределами обычных походов в сеть и в базу. Сейчас, когда эта архитектура уже прошла некоторый эволюционный путь развития, хочется наконец рассказать о том, что было и к чему пришло.
По моему мнению, все популярные ныне архитектуры — MVP, MVVM и даже MVI — уже давно на арене и не всегда заслуженно. Разве у них нет недостатков? Я вижу их немало. Мы у себя решили, что хватит это терпеть, и (пере)изобрели новую, максимально асинхронную архитектуру.
Использование нативных корутин в Java
2019-11-04 в 8:01, admin, рубрики: c++, C++20, coroutines, java, kotlinМногие современные языки поддерживают работу с корутинами на уровне языка. Java в данный момент не поддерживает корутины, но есть надежды что в будущем все может измениться.
Читать полностью »
Приложение на ТСД и связь с 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».
Читать полностью »