понедельник, 24 марта 2014 г.

Вторая встреча Kiev Android Dev Club

Как ни старался, но все равно опоздал на полчасика (Циклум в зачарованном месте расположен) и беспардонно ворвался на первый доклад посвящённый флейворам в градле. Доклад делал Алексей Пономарев. Речь шла о вариантах сборки в Gradle и о том как они могут облегчить жизнь. Даже мой скромный опыт показывает, что облегчить жизнь они могут значительно. Вообще Градл начинает править баллом, хотя и Ант ещё в ходу (и пока гугловцы не прикрутят его к Eclipse так и будет, имхо).
Презентация лежит вот тут.



Второй доклад был грандиозным. Как по содержанию, так и по продолжительности :) Делал его Ярослав Герятович (заранее прошу прощения если неправильно фамилию написал. Это касается всех фамилий, да).

Краткая выжимка такая: в Андроид есть проблема с вызовом фоновых асинхронных потоков. Можно вызывать просто Thread, но это неудобно и медленно с любой точки зрения. Ещё есть асинктаски. Ярослав говорит, что они уродские-по-дизайну, мне же кажется что проблему они решают только в редких частных случаях. И случаи эти это не загрузка данных ;) Наконец есть лоадеры, но их никто не любит потому что они требуют кучу шаблонного кода, изначально были бажные и недокументированные. Хотя, как показывает опыт, при написании некоторых удобных базовых оберток для них они более чем юзабельны. Как выход из сложившейся ситуации предлагается RxJava, которая приносит нам функциональный подход еще и в reactive оболочке. Но функциональный подход в Java использовать неудобно в силу отсутствия замыканий - получается оооочень много анонимных классов, которые занимают по 3 строки каждый (эт если повезет). Выходов несколько: использовать другие языки, которые так же используют JVM (для Android разработки это так себе решение), использовать Java 8. Только вот беда - Java 8 с андроидом не дружит. Но есть, оказывается, человеки, которых не устраивает такое положение дел и они написали штуку, которая реализует поддержку лямбд на Java 7. Класс! Называется это Retrolambda, встраивается в Gradle и работает как самый настоящий magic. Крутая штука, однозначно.

Этот доклад вдохновил меня вечерком попробовать заюзать это в текущем проекте. Результат следующий: Android с Retrolambda дружит, а вот Robolectric нет. Хотя, я не до конца разобрался что его не устраивает. Есть догадка, что Java 8, а вовсе не лямбды.
Доклад замечательный, вдохновляет на знакомство с миром реактивного программирования.


Презентация лежит тут, но можно прямо здесь пролистать.

Потом была пицца, любезно предоставленная Ciklum'ом. Вкусная пицца, спасибо. Только в следующий раз (если вдруг аукцион невиданной щедрости повторится в том же формате) нужно будет коробочки с пиццей раздерибанить по всей площади зала, а то прямо визуализация bottleneck получается.

Заключительный доклад был о том, что анимации это не так страшно, как может показаться на первый взгляд. Делал его Кирилл Микос. Действительно очень занимательно и познавательно, но слишком быстро. Или может он просто был последним и у меня внимание распылилось... Выжимку тут написать не получится, поскольку презентация была об одной конкретной красивой анимации. Пересказать это поможет только код и видео этой самой анимации. Вообще, судя по ответам (ага, спалился Кирилл)) на вопросы, докладчик много чего интересного знает о графике в Android - надеюсь он еще поделится с нами кусочком своих знаний. Презентацию, к сожалению, нигде выложенной не нашел. Как только замечу ее где-то - добавлю сюда (еще и код расшарить обещались, кстати).

Вообще прошло все замечательно, дружно и увлекательно. Спасибо всем причастным! Особенно докладчикам и главному вдохновителю и организатору Боре Працюку (да, с меня доклад, я помню ;)

ЗЫ немного фоточек с мероприятия лежит в гугл+ ивенте (хотя событие было приватным, потому видно будет не всем)
https://plus.google.com/u/0/events/gallery/ccg6fo9et05h9ihenoanieodufo?sort=4

Комментариев нет: