Транскрипт доклада с одного из Kotlin Night про паттерн "робот" - абстракцию над выполнением конкретных действий на отображаемом экране. Помогает отвязаться от деталей представления и писать автотесты, которые не будут ломаться при каждом изменении лэйаута. И на закуску - немного Kotlin'а и его языковых фич
https://realm.io/news/kau-jake-wharton-testing-robots/
#testing #ui #kotlin
https://realm.io/news/kau-jake-wharton-testing-robots/
#testing #ui #kotlin
Бесплатная раздача плюс-минус вводного курса по Gradle от O'Reilly. По структуре выглядит неплохо.
http://www2.gradleware.com/l/68052/2015-01-13/6dm
#gradle
http://www2.gradleware.com/l/68052/2015-01-13/6dm
#gradle
Продолжаем утреннюю тему. Максимально подробный гайд по настройке и работе с Gradle-файлами. Разбираются все блоки конфига и сам синтаксис скрипта.
https://medium.com/@wasyl/understanding-android-gradle-build-files-e4b45b73cc4c#.cmwqs3od7
#gradle
https://medium.com/@wasyl/understanding-android-gradle-build-files-e4b45b73cc4c#.cmwqs3od7
#gradle
Medium
Understanding Android Gradle build files
What is actually going on in Gradle script files?
Дмитрий Костырев рассказал про необходимость тестирования кода приложений, непосредственно связанного с системными фреймворками, о том, какие проблемы при этом возникают, и как их можно преодолеть с использованием Robolectric.
https://habrahabr.ru/company/e-Legion/blog/320898/
#testing #libraries
https://habrahabr.ru/company/e-Legion/blog/320898/
#testing #libraries
Хабр
Погружение в Robolectric
В мире Android-разработки всё чаще используют unit-тестирование. Проверка корректности работы отдельных модулей приложения помогает выявить и устранить ошибки в...
Очередная порция слез про фрагменты с кучей доводов, почему с ними не стоит работать, и рядом предложений по их выпиливанию.
https://medium.com/square-corner-blog/advocating-against-android-fragments-81fd0b462c97#.vffi1daxy
#ui #architecture
https://medium.com/square-corner-blog/advocating-against-android-fragments-81fd0b462c97#.vffi1daxy
#ui #architecture
Medium
Advocating Against Android Fragments
Alternatives for dealing with (painful) Android fragments.
Как в Java реализовать Value Object'ы (спойлер: многословно), и про две библиотеки, которые с этим могут помочь: AutoValue и Lombok.
https://medium.com/@richardleggett/value-objects-in-java-with-autovalue-and-lombok-7e48b8903865#.nock79b4u
#java #patterns
https://medium.com/@richardleggett/value-objects-in-java-with-autovalue-and-lombok-7e48b8903865#.nock79b4u
#java #patterns
Medium
Value Objects in Java with AutoValue and Lombok
In this post I want to discuss the subject of Value Objects, their purpose and some ways of easily implementing them in Java, specifically…
Вышла книга Kotlin in Action, авторами которой являются двое из разработчиков языка. Три главы доступны бесплатно, так что смело начинайте с них.
https://www.manning.com/books/kotlin-in-action
#kotlin
https://www.manning.com/books/kotlin-in-action
#kotlin
Manning Publications
Kotlin in Action
Kotlin in Action</i> guides experienced Java developers from the language basics of Kotlin all the way through building applications to run on the JVM and Android devices.</p>
А вот и вторая часть статьи "Как Effective Java повлияла на Kotlin" подоспела. В этот раз - про final by default, exception'ы и проверки на null.
https://medium.com/@lukleDev/how-effective-java-may-have-influenced-the-design-of-kotlin-part-2-89844d62ddf3#.hwbnxrni7
#java #kotlin
https://medium.com/@lukleDev/how-effective-java-may-have-influenced-the-design-of-kotlin-part-2-89844d62ddf3#.hwbnxrni7
#java #kotlin
Medium
How “Effective Java” may have influenced the design of Kotlin — Part 2
Hello again!
Почему бы не начать понедельник с нескольких упражнений в RxJava? Качаем репозиторий, выполняем задачи, прогоняем тесты, радуемся.
https://medium.com/@sergii/practical-challenges-for-rxjava-learners-1821c454de9#.pinxru85h
#rxjava #learning
https://medium.com/@sergii/practical-challenges-for-rxjava-learners-1821c454de9#.pinxru85h
#rxjava #learning
Medium
Practical challenges for RxJava learners
RxJava is a valuable part of Java developer toolset and #1 language improvement framework for Android developers. Many of us want to learn…
Третья часть русскоязычного цикла про использование Dagger 2. В программе ленивая инициализация, асинхронная работа, замеры производительности и малоизвестные ништяки библиотеки.
https://habrahabr.ru/post/320676/
#di #libraries
https://habrahabr.ru/post/320676/
#di #libraries
Хабр
Dagger 2. Часть третья. Новые грани возможного
Всем привет! Наконец-то подоспела третья часть цикла статей о Dagger 2! Перед дальнейшим прочтением настоятельно рекомендую ознакомиться с первой и второй частям...
"Производительность - это не математика. Производительность - это восприятие". Докладчик хоть и рассказывает о фронтенде, большая часть идей легко применима и к мобильной разработке. Отличное видео для утреннего просмотра по дороге на работу: https://www.youtube.com/watch?v=egiLQun-FxI
#ui #perfomance
#ui #perfomance
YouTube
В погоне за производительностью, Денис Мишунов
Страница должна загружаться быстрее чем 1 секунда; количество серверных запросов должно быть сведено к минимуму; CSS и JS файлы должны быть сжаты и не превышать 50 килобайт…
Это лишь малая часть технических решений и рекомендаций, которыми нас снабжает индустрия…
Это лишь малая часть технических решений и рекомендаций, которыми нас снабжает индустрия…
Про группировку единичных уведомлений. Там не все так просто, как может показаться на первый взгляд.
http://blog.danlew.net/2017/02/07/correctly-handling-bundled-android-notifications/
#ui #push
http://blog.danlew.net/2017/02/07/correctly-handling-bundled-android-notifications/
#ui #push
Dan Lew Codes
Correctly handling bundled Android notifications
Bundled notifications on Android are a tricky business.
Individual, fire-and-forget notifications are simple. You create a Notification
[https://developer.android.com/reference/android/app/Notification.html], send it
to NotificationManagerCompat
[https:…
Individual, fire-and-forget notifications are simple. You create a Notification
[https://developer.android.com/reference/android/app/Notification.html], send it
to NotificationManagerCompat
[https:…
Каким объектно-ориентированным подходом можно заменить классы, обладающие поведением, но не имеющие состояния (хэлперы, utils, называйте их как хотите).
http://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes.html
#oop #patterns
http://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes.html
#oop #patterns
Yegor Bugayenko
OOP Alternative to Utility Classes
Utility classes are a very popular design pattern in Java and other object-oriented languages. However, many consider them a terrible practice to be avoided.
Про использование Kotlin для написания DSL, в частности - для объявления динамических форм с зависимостями между полями, валидацией, стилями и прочими замечательными вещами.
https://engineering.facile.it/blog/eng/kotlin-dsl/
#kotlin #dsl
https://engineering.facile.it/blog/eng/kotlin-dsl/
#kotlin #dsl
engineering.facile.it
Using Kotlin type-safe builders to create a DSL for Forms
Here at Facile.it we are constantly dealing with a lot of forms: we use them to collect various information and data needed to feed our in-house comparing algorithms. These forms could be really complex, having multiple rules and dependencies between fields…
В порядке оффтопа. JetBrains заопенсорсили утилиту для программной генерации шикарных обоев, по образцу тех, что используются на их обновленном сайте.
https://blog.jetbrains.com/team/2017/02/08/the-art-of-code-visualized/
#jetbrains
https://blog.jetbrains.com/team/2017/02/08/the-art-of-code-visualized/
#jetbrains
Фаулер набрасывает про Event Sourcing, CQRS и другие паттерны, завязанные на событийной модели. Заключение очевидное - серебрянной пули нет и все такое.
https://martinfowler.com/articles/201701-event-driven.html
#architecture
https://martinfowler.com/articles/201701-event-driven.html
#architecture
martinfowler.com
What do you mean by “Event-Driven”?
Some notes on the different patterns that may be present when people talk about event-driven architectures.
Разбор текущего статуса метапрограммирования в Kotlin.
https://medium.com/@workingkills/pushing-the-limits-of-kotlin-annotation-processing-8611027b6711#.94yngnfci
#kotlin
https://medium.com/@workingkills/pushing-the-limits-of-kotlin-annotation-processing-8611027b6711#.94yngnfci
#kotlin
Medium
Pushing the limits of Kotlin annotation processing
Is annotation processing really supported in Kotlin? ☐ Yes ☐ No ☑ It’s complicated
Взгляд на замену статическим свойствам, оставшимся в Java - companion object'ы и их влияние на потребление памяти приложением.
https://robots.thoughtbot.com/companion-objects-are-real-objects-too
#kotlin
https://robots.thoughtbot.com/companion-objects-are-real-objects-too
#kotlin
Thoughtbot
Companion Objects Are Real Objects Too
Why companion objects in Kotlin should not be used as a replacement for Java’s static constant.
Про то, чем отличаются package name и applicationId в Android-приложении.
https://blog.stylingandroid.com/package-name-vs-application-id/
#sdk
https://blog.stylingandroid.com/package-name-vs-application-id/
#sdk
Styling Android
Package Name vs. Application ID
All Android developers should understand that the Package Name that we choose for our app is very important. I'm referring to the Package Name of the application itself (which gets declared in the Man
Мне тут набросили, что хорошо было бы периодически закидывать статьи про более глобальные процессы в мире разработки. Вот, скажем, хороший анализ того, почему Atlassian купили Trello.
https://disruptnext.com/how-to-build-the-next-trello-and-sell-it-for-425-million-or-more-589045c9bd64#.j17grjqtc
#startups #business
https://disruptnext.com/how-to-build-the-next-trello-and-sell-it-for-425-million-or-more-589045c9bd64#.j17grjqtc
#startups #business
Stratout
How to build the next Trello and sell it for $425 million or more
Atlassian bought Trello for $425 million. Because Trello was on trajectory to kill Atlassian.