ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

По-явански

По-явански

前往频道在 Telegram

Пишу про Java-технологии, Kotlin и Android-разработку. Редко но метко. Кодревью: http://javanese.online/%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80_%D0%BA%D0%BE%D0%B4%D0%B0/ Поболтать IRL: @coffeeCodeEverywhere Автор: @Harmonizr Менеджер по рекламе: /dev/null

显示更多
827
订阅者
无数据24 小时
-17 天
+530 天
帖子存档
Друзья, привет! Android Academy SPb запускает онлайн-курс Android Advanced. И наша первая тема — Views & Graphics! Меня зовут Михаил Горюнов @Harmonizr, я Android-разработчик-фрилансер. И 22 октября я подробно расскажу, как в Android работают View. На примерах покажу, как писать свои и вьюхи и ViewGroup, Drawable и ItemDecoration. Также поговорим про работу Canvas, Paint и Shaders. Лекция будет полезна как начинающим, так и опытным разработчикам. Не пропустите! 😉 Регистрация

Готовлю доклад про графику для продвинутого курса Android Academy.
Готовлю доклад про графику для продвинутого курса Android Academy.

Вы когда-нибудь разрабатывали Telegram-ботов?
Anonymous voting

Менеджер зависимостей для Android Меня вдохновляет Graviton Browser — браузер JVM-приложений. В качестве адреса ему можно передать groupid:artifactId — гравитон скачает последнюю версию вместе со всем деревом зависимостей и запустит Main Class. Подобное можно провернуть для андродиа, но немного в другой форме: — на телефон устанавливается приложение-менеджер. Графического интерфейса у него нет; — берётся любое приложение, из него выпиливаются библиотеки, вместо них нужно взять одну маленькую — коннектор к менеджеру зависимостей; — в метадату манифеста вписываются зависимости, чтобы менеджер пакетов их увидел; — на старте приложение связывается с менеджером пакетов и получает от него необходимые dex'ы. Это решает сразу несколько проблем: — раздутый размер APK. Все библиотеки теперь находятся снаружи, популярные библиотеки не дублируются в каждом приложении; — фиксы библиотек можно доставлять без пересборки и перезаливки (как, впрочем, и баги); — менеджер пакетов учитывает версию Android и может подхватывать нужные пакеты в зависимости от этого. Например, брать Гришкин liteX для SDK21+ или, наоборот, подключать бэкпорт CompletableFuture, Streams, java.time, если платформа старая. Есть, конечно, и минусы: — не все соблюдают semVer, можно по неосторожности доставить ломающие изменения; — правила Маркета не позволяют подгружать код не из Маркета; — возможны просадки времени старта. Есть вам нравится эта #идея и вы решите поучаствовать в реализации, стучите в личку — помогу чем смогу.

ReadWriteLock простыми словами ReadWriteLock — как кастрюля: * можно варить только один суп в один момент времени; * нельзя подъедать суп, пока он варится (ой!); * когда суп готов, его можно есть несколькими ложками.

Дайте два! void bulk(Iterable<? extends T> ts) void bulk(Stream<? extends T> ts) Так как StreamEx реализует и Stream, и Iterable, для выражения bulk(streamEx) javac не сможет выбрать нужную перегрузку: оба варианта одинаково хороши. Какое решение вы бы выбрали?

Сегодня вышел ProGuard 7, с чем и поздравляю разработчиков десктопных приложений. Кстати, проект наконец-то перебрался в гитхаб.

Многие знают jlink — инструмент, который собирает уменьшенную JVM, чтобы её удобно было поставлять пользователям (актуально для десктопных приложений). Но jlink нормально работает только с модульными проектами, а на jigsaw все забили. Оказывается, есть аналогичная штука для немодульных проектов.

Итератор стоит между элементами. next() перепрыгивает через элемент и возвращает его:
| 0 1 2
.next() => 0
0 | 1 2
.next() => 1
0 1 | 2
.previous() => 1 (sic!)
0 | 1 2

ResultSet и Cursor стоят на строках и переходят с одной строки на другую:
[] 0 1 2
.next() или first()
[0] 1 2
.next()
0 [1] 2
.previous()
[0] 1 2

«“Велосипед” — это просто вредная риторическая уловка, чтобы оправдать свою лень или самоутвердиться в споре» Часто встречаю пару заблуждений, которые в утрированной и доведённой до абсурда формулировке звучат так: • нельзя использовать малоизвестные инструменты. У библиотеки должны быть десятки тысяч звёзд на гитхабе и выделенная какой-нибудь корпорацией команда для поддержки; • нельзя делать свои инструменты, когда в мире уже есть хоть что-нибудь отдалённо похожее. Статья @fillpackart развеивает эти заблуждения.

В продолжение темы парсинга джейсонов, затронутой в последнем кодревью.

Ревью библиотеки FitBitAuth для Android. Будет полезно всем, кто начинает писать библиотеки.

Полная версия моего доклада про антипаттерны. Таймкод для тех, кто видел предыдущие версии, есть в описании.

Трудно поверить, но это задача с платных курсов.
Трудно поверить, но это задача с платных курсов.

Итак, что же это было. Понять можно, если посмотреть на строчку "&#34;&amp;&#39;&lt;&gt;": это код для замены «опасных» для XML символов на соответствующие сущности (entities).

Кстати, о компактном размещении данных в памяти. Есть идеи, что делает этот чудесный код, который я нарочно скомпилировал и д
Кстати, о компактном размещении данных в памяти. Есть идеи, что делает этот чудесный код, который я нарочно скомпилировал и декомпилировал?