Каким объектно-ориентированным подходом можно заменить классы, обладающие поведением, но не имеющие состояния (хэлперы, utils, называйте их как хотите).
http://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes.html
#oop #patterns
"Производительность - это не математика. Производительность - это восприятие". Докладчик хоть и рассказывает о фронтенде, большая часть идей легко применима и к мобильной разработке. Отличное видео для утреннего просмотра по дороге на работу: https://www.youtube.com/watch?v=egiLQun-FxI
#ui #perfomance
Почему бы не начать понедельник с нескольких упражнений в RxJava? Качаем репозиторий, выполняем задачи, прогоняем тесты, радуемся.
sergii/practical-challenges-for-rxjava-learners-1821c454de9#.pinxru85h" rel="nofollow">https://medium.com/@sergii/practical-challenges-for-rxjava-learners-1821c454de9#.pinxru85h
#rxjava #learning
Вышла книга Kotlin in Action, авторами которой являются двое из разработчиков языка. Три главы доступны бесплатно, так что смело начинайте с них.
https://www.manning.com/books/kotlin-in-action
#kotlin
Очередная порция слез про фрагменты с кучей доводов, почему с ними не стоит работать, и рядом предложений по их выпиливанию.
https://medium.com/square-corner-blog/advocating-against-android-fragments-81fd0b462c97#.vffi1daxy
#ui #architecture
Продолжаем утреннюю тему. Максимально подробный гайд по настройке и работе с Gradle-файлами. Разбираются все блоки конфига и сам синтаксис скрипта.
wasyl/understanding-android-gradle-build-files-e4b45b73cc4c#.cmwqs3od7" rel="nofollow">https://medium.com/@wasyl/understanding-android-gradle-build-files-e4b45b73cc4c#.cmwqs3od7
#gradle
Транскрипт доклада с одного из Kotlin Night про паттерн "робот" - абстракцию над выполнением конкретных действий на отображаемом экране. Помогает отвязаться от деталей представления и писать автотесты, которые не будут ломаться при каждом изменении лэйаута. И на закуску - немного Kotlin'а и его языковых фич
https://realm.io/news/kau-jake-wharton-testing-robots/
#testing #ui #kotlin
Классный cheat sheet, с которым стоит консультироваться каждый день. Включает в себя принципы проектирования (SOLID, DRY, KISS), советы по кодстайлу, оптимизации производительности и безопасности. К каждому из пунктов приводятся практические примеры из Android разработки.
http://orhanobut.github.io/effective-android/
#solid #codestyle #perfomance
Продолжим тему кодстайла. Теперь подошла очередь юнит-тестов. В серии статей освящены вопросы наименования тестов, их внутренней структуры, нейминга переменных и прочие связанные вещи. Тема действительно важная, хоть многие и обходят ее вниманием.
https://android.jlelse.eu/clean-tests-part-1-naming-cce94edf0522#.ifwttawau
#codestyle #testing
Господа, появились видео MBLTdev 2016. Мой персональный фаворит, как вы можете догадаться, Сергей Крапивенский и его выступление про SOLID. Доклад с примерами из iOS, но это несущественно - все, им сказанное, применимо и в Android разработке.
http://mbltdev.ru/ru/video
#conferences #solid
И напоследок сегодня - детальный перечень изменений в API Kotlin 1.1, добавляется много приятного сахара.
https://blog.jetbrains.com/kotlin/2017/01/kotlin-1-1-whats-coming-in-the-standard-library/
#kotlin
Довольно холиварная тема - стоит ли использовать TDD при написании UI слоя в приложении? Автор считает, что да, хотя я бы еще сильно поспорил.
http://www.donnfelker.com/tdd-your-ui-layer/
#tdd #testing #ui
В Play Store в бой выпустили первые Instant Apps. Потестить можно на BuzzFeed и Periscope. Доступ к полному SDK обещают в течение пары месяцев.
https://android-developers.googleblog.com/2017/01/android-instant-apps-starts-initial.html
#playstore #news
Обзор языковых фич Kotlin, на которые так или иначе повлияла книга Effective Java. Как подсказывают в комментах, ребята из JetBrains действительно постоянно ссылаются на эту книгу как на источник вдохновения.
lukleDev/how-effective-java-may-have-influenced-the-design-of-kotlin-part-1-45fd64c2f974#.nbldksq93" rel="nofollow">https://medium.com/@lukleDev/how-effective-java-may-have-influenced-the-design-of-kotlin-part-1-45fd64c2f974#.nbldksq93
#kotlin #languages
Одно из решений постоянного вопроса - кто должен хранить стейт текущего экрана, чтобы при повороте можно было безболезненно продолжить работу. Автор предлагает пересоздавать презентер на лету, и использовать синглтоны-хранилища для промежуточного хранения данных и состояний сетевых запросов.
theMikhail/presenters-are-not-for-persisting-f537a2cc7962#.82et794mc" rel="nofollow">https://medium.com/@theMikhail/presenters-are-not-for-persisting-f537a2cc7962#.82et794mc
#architecture #networking
Про группировку единичных уведомлений. Там не все так просто, как может показаться на первый взгляд.
http://blog.danlew.net/2017/02/07/correctly-handling-bundled-android-notifications/
#ui #push
Третья часть русскоязычного цикла про использование Dagger 2. В программе ленивая инициализация, асинхронная работа, замеры производительности и малоизвестные ништяки библиотеки.
https://habrahabr.ru/post/320676/
#di #libraries
А вот и вторая часть статьи "Как Effective Java повлияла на Kotlin" подоспела. В этот раз - про final by default, exception'ы и проверки на null.
lukleDev/how-effective-java-may-have-influenced-the-design-of-kotlin-part-2-89844d62ddf3#.hwbnxrni7" rel="nofollow">https://medium.com/@lukleDev/how-effective-java-may-have-influenced-the-design-of-kotlin-part-2-89844d62ddf3#.hwbnxrni7
#java #kotlin
Как в Java реализовать Value Object'ы (спойлер: многословно), и про две библиотеки, которые с этим могут помочь: AutoValue и Lombok.
richardleggett/value-objects-in-java-with-autovalue-and-lombok-7e48b8903865#.nock79b4u" rel="nofollow">https://medium.com/@richardleggett/value-objects-in-java-with-autovalue-and-lombok-7e48b8903865#.nock79b4u
#java #patterns
Дмитрий Костырев рассказал про необходимость тестирования кода приложений, непосредственно связанного с системными фреймворками, о том, какие проблемы при этом возникают, и как их можно преодолеть с использованием Robolectric.
https://habrahabr.ru/company/e-Legion/blog/320898/
#testing #libraries
Бесплатная раздача плюс-минус вводного курса по Gradle от O'Reilly. По структуре выглядит неплохо.
http://www2.gradleware.com/l/68052/2015-01-13/6dm
#gradle
Про чейнджлог Kotlin 1.1 я уже писал. В дополнение к официальной информации держите более подробный анализ всех изменений и нововведений.
https://blog.elpassion.com/what-comes-in-kotlin-1-1-for-android-developers-831d559f780f#.mlc4xo89q
#kotlin
Ускоряем более чем в два раза сборку проекта при помощи Gradle.
kevalpatel2106/how-to-decrease-your-gradle-build-time-by-65-310b572b0c43#.7r62qzado" rel="nofollow">https://medium.com/@kevalpatel2106/how-to-decrease-your-gradle-build-time-by-65-310b572b0c43#.7r62qzado
#gradle
Почему венгерская нотация - зло, и, несмотря на код Android и примеры от Google, ее не стоит использовать.
http://jakewharton.com/just-say-no-to-hungarian-notation/
#codestyle
Представьте, что ваш проект заморожен, а нового - нет. Ну или хотя бы, что новые фичи временно не добавляются, и вы сидите без дела. В статье приводится несколько способов занять себя - тривиально, но как источник вдохновения пойдет.
josiassena/android-developer-bored-at-work-efa0530415c4#.arul1dygr" rel="nofollow">https://medium.com/@josiassena/android-developer-bored-at-work-efa0530415c4#.arul1dygr
#career
Про Looper, Handler и HandlerThread - объекты, на которых построена вся логика по работе с многопоточностью в Android. Не всегда RxJava под рукой и нужно уметь работать с тем, что предоставляет нам система.
https://blog.mindorks.com/android-core-looper-handler-and-handlerthread-bd54d69fe91a#.mg2bduv2d
#concurrency #java
Набор полезных вбросов по тому, как измерить и при необходимости урезать размер обновлений для ваших приложений.
https://medium.com/google-developers/tracking-app-update-sizes-1a1f57634f7b#.ed7ju27cn
#playstore #appsize
Очень клевая статья про то, как разбиение приложения на модули и их итоговое количество влияет на скорость компиляции проекта. Подкреплено экспериментами над достаточно большой кодовой базой.
nikita.kozlov/how-modularisation-affects-build-time-of-an-android-application-43a984ce9968#.dwubj2kgm" rel="nofollow">https://medium.com/@nikita.kozlov/how-modularisation-affects-build-time-of-an-android-application-43a984ce9968#.dwubj2kgm
#architecture
Отличная статья про отношение между принципами проектирования YAGNI и SOLID от Сергея Теплякова.
http://sergeyteplyakov.blogspot.ru/2016/08/yagni.html
#architecture #solid