# Vladimir Jovanović

Vladimir's personal website

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Firebase Predictions: User Segmentation and Monetization Strategies

DevFeed: [Firebase Predictions: User Segmentation and Monetization Strategies](<https://devfeed.tech/articles/firebase-predictions-39023.md>)

Original publisher: [Read original article](<https://vladimirj.dev/firebase-predictions/>)

Author: Vladimir Jovanović

Published: 2020-05-22T09:44:00Z

Content type: tutorial

Language: en

Sources: [Vladimir Jovanović](<https://devfeed.tech/sources/vladimir-jovanovic.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [Users](<https://devfeed.tech/topics/users.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firebase-predictions](<https://devfeed.tech/tags/firebase-predictions.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [programming](<https://devfeed.tech/tags/programming.md>), [push-notifications](<https://devfeed.tech/tags/push-notifications.md>), [remote-config](<https://devfeed.tech/tags/remote-config.md>)

### AI overview

This introduction explains how Firebase Predictions applies machine learning to Firebase Analytics data to segment users by their likelihood of taking specific actions within the next 7 days. It presents retention and monetization strategies using Remote Config, ads, push notifications, and in-app messages.

### Source excerpt

Firebase provides a wide variety of tools, something for every developer and something for every problem. But did you know that it has a tool that enables you to see into the future?!

## Mark intentionally empty methods with comments

DevFeed: [Mark intentionally empty methods with comments](<https://devfeed.tech/articles/intentionally-left-empty-39026.md>)

Original publisher: [Read original article](<https://vladimirj.dev/intentionally-left-empty/>)

Author: Vladimir Jovanović

Published: 2019-03-20T09:44:00Z

Content type: opinion

Language: en

Sources: [Vladimir Jovanović](<https://devfeed.tech/sources/vladimir-jovanovic.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

The article argues that empty method implementations can be mistaken for errors. It recommends adding comments to clearly indicate when a method is intentionally empty or unfinished.

### Source excerpt

Doing copy/paste of the sample data from one project to another is not an option.

## Sharing Android sample data between projects with Gradle

DevFeed: [Sharing Android sample data between projects with Gradle](<https://devfeed.tech/articles/tools-title-remotesampledata-39029.md>)

Original publisher: [Read original article](<https://vladimirj.dev/remote-sample-data/>)

Author: Vladimir Jovanović

Published: 2018-03-10T09:44:00Z

Content type: tutorial

Language: en

Sources: [Vladimir Jovanović](<https://devfeed.tech/sources/vladimir-jovanovic.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Script](<https://devfeed.tech/topics/script.md>), [layout](<https://devfeed.tech/topics/layout.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [android-layout](<https://devfeed.tech/tags/android-layout.md>), [code](<https://devfeed.tech/tags/code.md>), [design](<https://devfeed.tech/tags/design.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [layout](<https://devfeed.tech/tags/layout.md>)

### AI overview

This tutorial explains how to share custom Android sample data across projects by hosting the files and using Gradle scripts to download them into a project folder.

### Source excerpt

Doing copy/paste of the sample data from one project to another is not an option.

## Improving Android Layout Previews with Sample Resources and Preview Attributes

DevFeed: [Improving Android Layout Previews with Sample Resources and Preview Attributes](<https://devfeed.tech/articles/tools-title-layoutpreview-39027.md>)

Original publisher: [Read original article](<https://vladimirj.dev/layout-preview/>)

Author: Vladimir Jovanović

Published: 2018-02-18T09:44:00Z

Content type: tutorial

Language: en

Sources: [Vladimir Jovanović](<https://devfeed.tech/sources/vladimir-jovanovic.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [layout](<https://devfeed.tech/topics/layout.md>), [ui](<https://devfeed.tech/topics/ui.md>), [XML](<https://devfeed.tech/topics/xml.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [android-layout](<https://devfeed.tech/tags/android-layout.md>), [coding](<https://devfeed.tech/tags/coding.md>), [design](<https://devfeed.tech/tags/design.md>), [layout](<https://devfeed.tech/tags/layout.md>), [ui](<https://devfeed.tech/tags/ui.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This tutorial explains how Android developers can improve XML layout previews using sample resources and preview attributes. It covers showing representative text and images, previewing repeated items, configuring horizontal orientation, and displaying menu items without adding runtime view state.

### Source excerpt

As every Android developer, I also started building my layouts by hard-coding values into them. Later on, I have realised that I should...

## How to Make an Open-Source Project Useful to Developers

DevFeed: [How to Make an Open-Source Project Useful to Developers](<https://devfeed.tech/articles/giving-your-code-to-the-community-39024.md>)

Original publisher: [Read original article](<https://vladimirj.dev/giving-your-code-to-the-community/>)

Author: Vladimir Jovanović

Published: 2017-11-11T09:44:00Z

Content type: opinion

Language: en

Sources: [Vladimir Jovanović](<https://devfeed.tech/sources/vladimir-jovanovic.md>)

Topics: [Open Source](<https://devfeed.tech/topics/open-source.md>), [Code](<https://devfeed.tech/topics/code.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Repositories](<https://devfeed.tech/topics/repositories.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [github](<https://devfeed.tech/tags/github.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [product](<https://devfeed.tech/tags/product.md>), [programming](<https://devfeed.tech/tags/programming.md>), [repositories](<https://devfeed.tech/tags/repositories.md>), [software-development](<https://devfeed.tech/tags/software-development.md>)

### AI overview

This opinion article argues that publishing code openly is not enough to attract users or contributors. Open-source projects should provide clear value, use readable and maintainable code, present polished documentation and packaging, promote the project, and improve it continuously.

### Source excerpt

About two years ago, I started putting pieces of code on my GitHub page. And soon I have noticed that nobody was looking at it. My profile was dead.

## Learning Prolog: A Beginner's Introduction to Logic and Relational Programming

DevFeed: [Learning Prolog: A Beginner's Introduction to Logic and Relational Programming](<https://devfeed.tech/articles/probably-the-language-of-god-39028.md>)

Original publisher: [Read original article](<https://vladimirj.dev/probably-the-language-of-god/>)

Author: Vladimir Jovanović

Published: 2017-10-24T09:44:00Z

Content type: tutorial

Language: en

Sources: [Vladimir Jovanović](<https://devfeed.tech/sources/vladimir-jovanovic.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Development](<https://devfeed.tech/topics/development.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [computer-science](<https://devfeed.tech/tags/computer-science.md>), [language](<https://devfeed.tech/tags/language.md>), [math](<https://devfeed.tech/tags/math.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [prolog](<https://devfeed.tech/tags/prolog.md>), [software-development](<https://devfeed.tech/tags/software-development.md>)

### AI overview

A developer revisits Prolog after encountering it at university, explaining its facts, rules, relations, queries, and use in calculating factorial. The article concludes that Prolog is a niche but worthwhile way to explore a different approach to software development.

### Source excerpt

During my university days, while I was studying Mathematics and CS, software development was refreshment of applied science in a sea of theoretical math. But then at my 4th semester I got the Prolog.

## Why Descriptive Variable Names Improve Code Readability

DevFeed: [Why Descriptive Variable Names Improve Code Readability](<https://devfeed.tech/articles/variable-looked-at-me-and-said-say-my-name-39030.md>)

Original publisher: [Read original article](<https://vladimirj.dev/say-my-name/>)

Author: Vladimir Jovanović

Published: 2017-10-17T09:44:00Z

Content type: tutorial

Language: en

Sources: [Vladimir Jovanović](<https://devfeed.tech/sources/vladimir-jovanovic.md>)

Topics: [Variable](<https://devfeed.tech/topics/variable.md>), [Code](<https://devfeed.tech/topics/code.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Computer science](<https://devfeed.tech/topics/computer-science.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [computer-science](<https://devfeed.tech/tags/computer-science.md>), [developer](<https://devfeed.tech/tags/developer.md>), [programming](<https://devfeed.tech/tags/programming.md>), [understand](<https://devfeed.tech/tags/understand.md>), [variable](<https://devfeed.tech/tags/variable.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

This article explains why descriptive variable names make code easier for humans to read and maintain. It contrasts short, cryptic names with clearer names and notes that naming requires judgment rather than automatically improving code.

### Source excerpt

While you are writing your code, the most important thing to have in mind is that you are writing your code first and foremost for humans to understand, and secondly for a machine to interpret.

## Handling configuration changes using static references

DevFeed: [Handling configuration changes using static references](<https://devfeed.tech/articles/handling-configuration-changes-using-static-references-39025.md>)

Original publisher: [Read original article](<https://vladimirj.dev/handling-configuration-changes/>)

Author: Vladimir Jovanović

Published: 2017-10-09T10:44:00Z

Content type: tutorial

Language: en

Sources: [Vladimir Jovanović](<https://devfeed.tech/sources/vladimir-jovanovic.md>)

Topics: [configuration](<https://devfeed.tech/topics/configuration.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [Android](<https://devfeed.tech/topics/android.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [application](<https://devfeed.tech/tags/application.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [crash](<https://devfeed.tech/tags/crash.md>), [leakcanary](<https://devfeed.tech/tags/leakcanary.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [os](<https://devfeed.tech/tags/os.md>), [rotation](<https://devfeed.tech/tags/rotation.md>)

### AI overview

This Android article explains why using static references to preserve data across Activity configuration changes is unsafe. Such references can prevent the operating system from reclaiming memory, eventually causing the application to be killed and crash.

### Source excerpt

What if you hold a static reference to the data in my Activity to preserve them on screen rotation? Why is that bad?

## Why Short Methods Improve Code Readability and Testability

DevFeed: [Why Short Methods Improve Code Readability and Testability](<https://devfeed.tech/articles/short-methods-ftw-39031.md>)

Original publisher: [Read original article](<https://vladimirj.dev/short-methods-ftw/>)

Author: Vladimir Jovanović

Published: 2017-10-02T22:44:00Z

Content type: opinion

Language: en

Sources: [Vladimir Jovanović](<https://devfeed.tech/sources/vladimir-jovanovic.md>)

Topics: [functions](<https://devfeed.tech/topics/functions.md>), [Code](<https://devfeed.tech/topics/code.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [context](<https://devfeed.tech/topics/context.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [context](<https://devfeed.tech/tags/context.md>), [design-patterns](<https://devfeed.tech/tags/design-patterns.md>), [functions](<https://devfeed.tech/tags/functions.md>), [programming](<https://devfeed.tech/tags/programming.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [software-architecture](<https://devfeed.tech/tags/software-architecture.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

The author argues that methods should generally be short--often around 10 lines, with 25 lines as an upper limit--because they are easier to read, understand, test, and maintain. The article also explains how developers' implicit context can make long methods seem clearer to their authors than to future maintainers.

### Source excerpt

My boss came to me and said: "Every method that you write should be less than 25 lines long" and I laughed, I laughed hard, right in his face. I was such a plonker!