Каким объектно-ориентированным подходом можно заменить классы, обладающие поведением, но не имеющие состояния (хэлперы, 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.
Нужно прочесть Effective Java, но некогда? Ловите краткий конспект с основными идеями из книги.
https://medium.com/rocknnull/effective-java-for-android-cheatsheet-bf4e3433889a#.rx183o5s8
#java #patterns
https://medium.com/rocknnull/effective-java-for-android-cheatsheet-bf4e3433889a#.rx183o5s8
#java #patterns
Medium
Effective Java for Android (cheatsheet).
Effective Java is considered by many, one of the most important books for writing Java code that is maintainable in the long run and…
Набор лайфхаков по оптимизации потребления памяти в Android приложении.
https://medium.com/google-developers/developing-for-android-ii-bb9a51f8c8b9#.e4ilacimi
#memory
https://medium.com/google-developers/developing-for-android-ii-bb9a51f8c8b9#.e4ilacimi
#memory
Medium
Developing for Android II The Rules: Memory
The Rules: Memory
Пятничный лайфхак - эффект Зейгарник и его влияние на нашу мотивацию и способность усваивать новую информацию.
https://habrahabr.ru/company/everydaytools/blog/321684/
#productivity
https://habrahabr.ru/company/everydaytools/blog/321684/
#productivity
Habr
Эффект Зейгарник на практике
Эффект Зейгарник может помочь повысить вашу работоспособность. Сначала я объясню, в чем заключается идея, а затем дам практический совет, как можно применить ее в обучении. Что такое Эффект Зейгарник?...
Я немного опоздал с новостью, но все же - вышел Kotlin 1.1 RC.
https://blog.jetbrains.com/kotlin/2017/02/kotlin-1-1-release-candidate-is-here/
#kotlin #news
https://blog.jetbrains.com/kotlin/2017/02/kotlin-1-1-release-candidate-is-here/
#kotlin #news
Kotlin Blog
Kotlin 1.1 Release Candidate is Here
As of today, Kotlin 1.1 has finally reached the release candidate stage. This means that most of our development work is done, we’re happy with the results, and we’ll soon publish them …
Про избавление от god-object'ов, в частности от Context.
https://www.philosophicalhacker.com/post/towards-godless-android-development-how-and-why-i-kill-god-objects/
#refactoring #patterns
https://www.philosophicalhacker.com/post/towards-godless-android-development-how-and-why-i-kill-god-objects/
#refactoring #patterns
Разбор способов работы с coroutines, появившимися в Kotlin 1.1. Выглядит шикарно.
https://medium.com/@macastiblancot/android-coroutines-getting-rid-of-runonuithread-and-callbacks-cleaner-thread-handling-and-more-234c0a9bd8eb#.lv89tx176
#kotlin #concurrency
https://medium.com/@macastiblancot/android-coroutines-getting-rid-of-runonuithread-and-callbacks-cleaner-thread-handling-and-more-234c0a9bd8eb#.lv89tx176
#kotlin #concurrency
Medium
Android Coroutines with Kotlin: getting rid of runOnUiThread and Callbacks; cleaner thread handling; and more
With the release of Kotlin 1.1.0, I decided to give a try to Kotlin’s Coroutines on Android. I had some ideas about what I wanted to build…
Про новый функционал Direct Boot, позволяющий запускать приложение даже посе перезагрузки телефона на залоченном экране.
https://android.jlelse.eu/directboot-in-details-a63e23bf4943#.q9papjpur
#sdk
https://android.jlelse.eu/directboot-in-details-a63e23bf4943#.q9papjpur
#sdk
AndroidPub
DirectBoot in details
Android 7.0 (Nougat) brought plenty of new features to both average users and developers. Alongside features like Multi-window view…
Введение в функциональное программирование для Android-разработчиков. Обещают целую серию, в которой рассмотрят практические кейсы, когда этот подход применим к прикладным задачам.
https://medium.com/@anupcowkur/functional-programming-for-android-developers-part-1-a58d40d6e742#.yecl4ptxb
#functional
https://medium.com/@anupcowkur/functional-programming-for-android-developers-part-1-a58d40d6e742#.yecl4ptxb
#functional
Medium
Functional Programming for Android developers — Part 1
Lately, I’ve been spending a lot of time learning Elixir — An awesome functional programming language that is friendly to beginners.
Автоматизация генерации versionName и versionCode с использованием разных возможностей git.
https://blog.uncommon.is/using-git-to-generate-versionname-and-versioncode-for-android-apps-aaa9fc2c96af#.256wrjhy1
#git #automatization
https://blog.uncommon.is/using-git-to-generate-versionname-and-versioncode-for-android-apps-aaa9fc2c96af#.256wrjhy1
#git #automatization
uncommon
Using git to generate versionName and versionCode for Android apps
Combine the master branch, feature branches and git describe till you have a smooth mixture. Serve hot.
Про то, как в Twitch проводят A/B тесты Android приложений.
https://habrahabr.ru/post/322452/
#testing #playstore
https://habrahabr.ru/post/322452/
#testing #playstore
habrahabr.ru
Как в Twitch проводят A/B тестирование
Эксперименты — одна из центральных функций научного подразделения сайта потокового видео Twitch. Мы работаем в тесном контакте с менеджерами по продукции,...
Так, а я тут наконец-то запустил чат для обсуждения публикуемых статей, холиваров и всего такого. Вступаем, вбрасываем темы для обсуждений и критикуем статьи.
https://t.me/droidgt
https://t.me/droidgt
Зарелизился retrofit 2.2.0 с поддержкой RxJava 2 и другими плюшками.
https://github.com/square/retrofit/blob/master/CHANGELOG.md#version-220-2017-02-21
#libraries
https://github.com/square/retrofit/blob/master/CHANGELOG.md#version-220-2017-02-21
#libraries
GitHub
retrofit/CHANGELOG.md at trunk · square/retrofit
A type-safe HTTP client for Android and the JVM. Contribute to square/retrofit development by creating an account on GitHub.