Pull to refresh
2
Karma
0
Rating
  • Followers
  • Following 1
  • Posts
  • Comments

Как устроен вывод Generic-типов в Java

Райффайзенбанк corporate blog Programming *Java *ООP *Systems engineering

Добрый день! Меня зовут Владислав Верминский, я отвечаю за развитие профессии JVM-разработчика в Райффайзенбанке. В этой статье я расскажу про неоднозначность вывода типов в Java. На первый взгляд с ним всё очевидно, но когда сталкиваешься со странным поведением, возникают вопросы — начинает казаться, что какие-то части кода работают неправильно. Однако, после анализа становится понятно, что всё очень непросто, но при этом всё работает по своей спецификации.

Читать далее
Total votes 25: ↑24 and ↓1 +23
Views 7.6K
Comments 17

Грабли, спрятанные в Kotlin

Maxilect corporate blog High performance *Programming *Java *Kotlin *

Kotlin создавался, чтобы избежать некоторых проблем Java. Но как и в любом языке, есть в нем свои особенности. Разрабатывая собственный проект, мы наткнулись на несколько таких моментов. Часть стреляет вам в колено на продакшене, только если вы ими злоупотребляете. Другая отражается на производительности высоконагруженных систем. Все эти моменты сложно заметить, поскольку их не подсвечивают специально плагины для IDE, да и в целом на первый взгляд код похож на валидный.

В этой статье мы поговорим о том, на что нужно обратить внимание.

Читать далее
Total votes 22: ↑19 and ↓3 +16
Views 7.9K
Comments 4

Flutter: как мы выбирали навигацию для мобильного приложения?

Россельхозбанк corporate blog Programming *Development of mobile applications *Dart *Flutter *

Flutter вышел в стабильной версии в 2018 году. Все это время он активно развивался: появилась поддержка Null safety, расширились возможности по темизации и локализации приложений, добавилось огромное количество новых виджетов. Одно из таких нововведений — Navigator 2.0, выпущенный Flutter осенью 2020 года. Это гибкий инструмент для решения непростой задачи навигации в мобильных приложениях. Разработчики начали применять Navigator 2.0, но столкнулись с трудностями и проблемами, о которых говорили команде Flutter в официальном репозитории, предлагая упростить использование инструмента. Самым подробным материалом по новому подходу является статья в блоге Flutter, но и ее мало для того, чтобы начать работать с Navigator 2.0 в продакшен-приложениях.

Хочу знать больше
Total votes 15: ↑14 and ↓1 +13
Views 5.9K
Comments 15

Функции области видимости (Scope Function) в Kotlin

Java *Kotlin *

Сразу оговорюсь, что статья объясняет базовые понятия, и если вы уже программируете на Kotlin, то, скорее всего, вы уже все знаете. Большая часть того, что приведено в статье, освещено в официальной документации, поэтому статью можно рассматривать как дополнительный материал к ней.

В статье показано как реализованы функции области видимости, даны примеры и рекомендации по их использованию

Читать далее
Total votes 8: ↑6 and ↓2 +4
Views 3.5K
Comments 4

Нижняя панель навигации Flutter с вложенной маршрутизацией (автомаршрутизация)

OTUS corporate blog Programming *Flutter *
Translation

Маршрутизация во Flutter это обширная тема, поскольку она может быть выполнена множеством различных способов. Логичная и простая в навигации настройка маршрутизации однозначно приведет к улучшению пользовательского опыта. Это также сделает код намного более удобным для разработчиков. 

Читать далее
Total votes 5: ↑5 and ↓0 +5
Views 3.2K
Comments 0

Сравниваем Java и Kotlin

OTUS corporate blog Programming *Java *Kotlin *
Translation

Предлагаю начать с общих черт.

• Статическая типизация

• Бесплатны и с открытым кодом

• Код преобразуется в байт-код

• Интероперабельность

• Объектно-ориентированные языки программирования

Читать далее
Total votes 17: ↑3 and ↓14 -11
Views 8.8K
Comments 15

Идеальная светодиодная лампа за 21 рубль

LampTest corporate blog Gadgets
Удивительно осознавать, что достаточно сложное электронное устройство, которым является светодиодная лампочка, может стоить 21 рубль.

Ещё сложнее поверить, что эта лампочка безукоризненна по всем параметрам.

Читать дальше →
Total votes 227: ↑225 and ↓2 +223
Views 68K
Comments 199

Сервис отложенных запросов для Retrofit на Android

Development for Android *Kotlin *

Как Вы обрабатываете отсутствие доступа в интернет в своем приложении? Показываете сообщение "Нет интернета, попробуйте позже"? Допустим случай, когда мы хотим гарантировать выполнение сетевого запроса пользователя, а не заставлять его искать интернет и снова повторять не удавшиеся запросы. Давайте создадим такую ситуацию и научимся ее обрабатывать. Реализованный пример, как обычно можно скачать по ссылке на GitHub в конце статьи!

Читать далее
Total votes 1: ↑1 and ↓0 +1
Views 2.5K
Comments 2

Jetpack Compose — как легко построить UI на Android

FUNCORP corporate blog Development of mobile applications *Interfaces *Development for Android *Kotlin *

В июле этого года вместе с Android Studio Arctic Fox вышла одна из долгожданных библиотек — Jetpack Compose. Она позволяет создавать пользовательский интерфейс в декларативном стиле и обещает быть революцией в построении UI.

Разбираемся, так ли это на самом деле, какие у библиотеки преимущества и недостатки. Подробности — в статье.

Читать далее
Total votes 51: ↑46 and ↓5 +41
Views 10K
Comments 15

Запросы в PostgreSQL: 5. Вложенный цикл

Postgres Professional corporate blog PostgreSQL *SQL *

Я уже рассказал об этапах выполнения запросов и о статистике, и о двух основных видах доступа к данным: о последовательном сканировании и об индексном сканировании.

Настал черед способов соединения. В этой статье я кратко напомню, какие бывают логические типы соединений, и расскажу о первом из трех физических способов соединения — о вложенном цикле. Заодно посмотрим и на новую для 14-й версии мемоизацию строк.

Читать далее
Total votes 14: ↑14 and ↓0 +14
Views 5.5K
Comments 0

Android RecyclerView с использованием котлиновских sealed классов

OTUS corporate blog Programming *Development for Android *
Translation

RecyclerView — это один из самых лучших инструментов для отображения больших списков на Android. Как разработчики, вы, скорее всего понимаете о чем я говорю. У нас есть много дополнительных фич, таких как шаблоны вью холдеров, сложная анимация, Diff-Utils колбек для повышения производительности и т. д. Такие приложения, как WhatsApp и Gmail, используют RecyclerView для отображения бесконечного количества сообщений.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Views 2.9K
Comments 1

Kotlin Native. Работаем с новой моделью памяти

Development for iOS *Development of mobile applications *Development for Android *Kotlin *
Tutorial

Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. Продолжаем рассматривать способы многопоточный работы в Kotlin Native. В предыдущих статьях мы уже рассмотрели существующие способы работы с многопоточностью с корутинами и без, и что делать с имеющимися болями. Теперь поговорим о новой модели управления памятью, которая появилась совсем недавно.

31 августа компания JetBrains представили превью новой модели управления памятью в Kotlin Native. Основной упор команда разработчиков сделала на безопасность шаринга между потоками, устранение утечек памяти и освобождение нас от использования специальных аннотаций. Также доработка коснулась Coroutines, и теперь можно без опаски переключаться между контекстами корутин без заморозки. Обновления подхватили и Ktor:  

Итак, что же нового появится в версии Kotlin 1.6.0-M1-139: 
1. Заявлено, что мы можем убрать все freeze() блоки (в том числе и во всех фоновых Worker), и переключаться между контекстами и потоками без каких-либо проблем. 

2.Использование AtomicReference или FreezableAtomicReference не приводит к утечкам памяти.

3.При работе с глобальными константами не нужно теперь использовать SharedImmutable.

4.При работе с Worker.execute producer больше не требует возвращать изолированный подграф объектов. 

Однако есть и нюансы:

Читать далее
Total votes 10: ↑10 and ↓0 +10
Views 5.1K
Comments 0

Запросы в PostgreSQL: 4. Индексное сканирование

Postgres Professional corporate blog PostgreSQL *SQL *

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

Прежде чем погружаться в детали индексного доступа, надо было бы рассказать про интерфейс индексных методов. Но я это уже делал в статье про индексы, и, хотя та серия несколько устарела, повторяться не буду. Если слова «класс операторов» и «свойства методов доступа» не находят отклика в душе, статью лучше перечитать.

Читать далее
Total votes 23: ↑23 and ↓0 +23
Views 5.9K
Comments 9

Загружаемые изображения для Jetpack Compose с использованием Glide, Coil и Fresco

OTUS corporate blog Programming *Development for Android *
Translation

Новый современный набор инструментов пользовательского интерфейса Jetpack Compose был анонсирован компанией Google более года назад, и, наконец, в июле была выпущена стабильная версия 1.0. Также многие компании, такие как Twitter, lyft, Square, уже адаптировали Jetpack Compose на своих производственных уровнях, потому что он очень интуитивный, мощный и упрощает всю структуру пользовательского интерфейса, если правильно его использовать. Эта новая парадигма структуры пользовательского интерфейса поменяет в дальнейшем очень многое, также нам придется приложить еще немало усилий для миграции предыдущих вещей, связанных с пользовательским интерфейсом, таких как загрузка изображений из Url. 

Читать далее
Total votes 3: ↑3 and ↓0 +3
Views 1.3K
Comments 0

Android, жизненый цикл Jetpack компонентов

Development of mobile applications *Development for Android *Mobile applications testing *
Translation

Руководство по работе с жизненным циклом Android компонентов, рассмотрим базовые понятия, что такое LifecycleObserver, события и состояния жизненного цикла, кастомные LifecycleOwner.

Перевод статьи Lifecycle-Aware Components Using Android Jetpack.

Читать далее
Rating 0
Views 2.3K
Comments 0

Kotlin Native. Работаем с потоками с корутинами и без. Ч1

Development for iOS *Development of mobile applications *Development for Android *Kotlin *
Tutorial

Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. Совсем недавно компания JetBrains выпустила preview новой модели управления памятью. Это отличный повод сделать подробный ее разбор на практике, а также сравнить с моделью, используемой в KMM в текущих версиях. Но для начала неплохо было бы поговорить о тех возможностях работы в Kotlin Native, которые мы на практике не используем.

Если вы уже знакомы с тем, как работать с корутинами в Kotlin/Native и/или читали предыдущие статьи 1 и 2 автора, то пролистайте немного вниз. Материал может немного повторяться.

Когда мы работаем с Kotlin и Kotlin Multiplatform, то самым и простым удобным способом для настройки работы с многопоточностью в приложении являются Kotlin Coroutines. Наша задача сводится к настройке скоупов CoroutineScope для запуска корутин и suspend функций в основном потоке и фоновом. Т.к. в разных платформенных версиях языка Kotlin этот механизм реализуется по-разному, то необходимо кастомизировать получение контекста корутин с помощью expect/actual:

Читать далее
Total votes 7: ↑6 and ↓1 +5
Views 3.1K
Comments 0

Kotlin Native. Работаем с потоками с корутинами и без. Ч2

Development for iOS *Development of mobile applications *Development for Android *Kotlin *
Tutorial

Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. Продолжаем рассматривать способы многопоточный работы в Kotlin Native.

В предыдущей части мы посмотрели некоторые нюансы работы с корутинами, как работать с Worker и AtomicReference.

Еще одним возможным API для работы с многопоточностью является DetachedObjectGraph.

Читать далее
Total votes 8: ↑7 and ↓1 +6
Views 2.4K
Comments 0

Об одной любопытной возможности IPFS

Decentralized networks Semantics *Research and forecasts in IT Distributed systems *The future is here

В предыдущей заметкe нами была рассмотрена возможность идентификации сущностей (предметов) посредством устойчивых (immutable) понятий и CID. Выглядит это, вроде бы, не плохо, однако пока не совсем ясно, как сие можно использовать.

Читать далее
Total votes 9: ↑9 and ↓0 +9
Views 3.3K
Comments 1

Information

Rating
Does not participate
Registered
Activity