Data providers (or services) are used very often in mobile apps. In this article we will see how it's possible to combine data providers to create complex data receiving rules, but keeping flexibility. It's desired to have a solution which allows to easy update and rules for providing data and be changes-welcomed.


DataProvider is a simple protocol to demonstrate the idea. Type of items is chosen as String just for simplicity, but it can be updated with any other actual data type. Of course, we might use generic types, but let focus on the main idea for now.


There are many articles and videos explaining why code review is so important for software developers and teams, but let's see what can we get from code review process from management perspective. We are not going to describe rules and processes of code review, but let's focus on non-obvious goals and obstacles.


Make high-quality product

This is the most obvious thing why many teams doing code review.

Rise and develop engineering culture

When code review process is introduced and accepted in the team, codebase starts to follow set of rules which are chosen by the team — people who do this review. This is an organic process, because…

I will describe set of simple rules how to organise your functions and how to improve quality of your code and code review. Please keep reading!

Code should be consistent

Approach for grouping code into functions should be consistent, code style and naming should be identical across all the code. If this rule is not followed, then something is wrong with the code.

Functions should meet naming recommendations

Name of function should reflect what does the function do, with what arguments and, if possible which result does it return. More about naming you may read here.

Functions should perform one action

This is an interpretation or single responsibility principle. The function should perform only…

Many of developers make code review of their peers and colleagues and everybody knows that naming is one of the most important aspects of high quality code.
Let's talk about naming: why it's so important, which names are good and which principles should we follow to create great code.

Why naming is so important

Good names of classes, variables and functions are important because they reflect idea, purpose and reason of their creation. If the code contains elements with unclear names, it has a "code smell" and this is an indicator of overall poor code quality. …

In this story you will know how to make simple cool icon for your app without waiting for designer. If you are an experienced designer, you may skip this article, but if you are developer — read on!

Many developers know that creating even simple app icon is annoying task and they tried to find any kind of workaround. During my experiments with icons and screenshots I have learned to create stylish app icon in less than an hour. And I am gonna share this with you. Our goal is create simple icon quite fast and easy. …

In his great and very useful article @girishrawat mentioned importance of having attractive icon and screenshot for getting higher download rates for the app. I decided to check these hypotheses on practice and I am going to share my results with you.

I have quite simple app in appStore — interactive credit calculator. The app was produced and released quite fast and was not updated for last 4–5 months. So, it was ideal app for testing. Initially screenshots and icon were created very fast with low designing skills.


Initial fast-created icon


Part 2

In part 1 I was describing why I decided to new learn foreign and how important it was

About process and learning strategies

In this part I am going to describe learning strategy which I used for 3 years.

During first year I was quite passive thinking of do I really need to learn Danish. Looking back, I can surely say that it was just a waist of time, I needed to start learning quite intensively since I decided to do it. As I understood this, my progress became much faster. During second year I leaned necessary language…

Part 1

This story is not a compilation of articles, books, motivation trainings or learning foreign languages methodologies. This is a description of my own personal practical experience. Of course, if you are interest in all those topics you may easily find all needed information. I tried to write this article in the form of terms first for reading easiness and to put a stress on main points.


In 2015 I joined outsource IT company as mobile developer. The company had 3 offices those time: Saint-Petersburg Russia, Aarhus Denmark and headquarters and main office in Copenhagen Denmark. I joined…

Anton Sleptsov

iOS developer, TeamLead. Love engineering, guitars, martial arts and learning

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store