Tuesday, 22 November 2022



Immediately after the announcement of SwiftUI and new versions of operating systems, I wanted to feel them. I installed a beta for myself … and killed the clock – it turned into a brick. To get them working again, I also had to upgrade the phone to a raw, buggy iOS beta.

In general, I liked the approach with SwiftUI much more than the one we are working with now – Auto Layout. SwiftUI is simple and clear, you write code and immediately see what you get. In fact, this is similar to the web: you write code, and everything immediately appears in the browser, it does not require any long compilation and constant assembly of the application.

What is the result?

I don’t regret going down this path. If you want to repeat my experience, evaluate your skills and the capabilities of your company. Colleagues at Apiqa went along with me, but it’s not a guarantee that you will have the same, so before you start such a transition, discuss it with management.

It is important to devote enough time to mobile development and apply new knowledge in a combat environment – creating one simple application will not give a complete picture, valuable experience comes only when there is a task that cannot be backed down.

If you are not at all familiar with programming, keep in mind that the entry bar is lower on the web, there are many more educational resources available . iOS is more difficult to learn and in terms of writing code – here you need to think like a programmer, have enough basic knowledge.

Any person who has set himself such a task can become a web or Android developer – you just need to look for information, study it, and gain experience. But to devote yourself to iOS, at least you have to get a Mac.

internship in iOS and Android development

Selection and the program as a whole

Everything was the same as in previous times: a survey at the first stage and a technical test at the second. In total, we received more than two hundred applications, according to the selection results, we formed iOS and Android groups of 7 people each. True, two more participants joined iOS – we hired one of them as a developer on the condition that he pass our internship

Internships at Redmadrobot are for advanced developers of the pre-middle and middle levels, so the experience of commercial development for your platform was a mandatory requirement. It was important for us to teach not “from the beginning”, but to take on those who are already working with might and main “in the field”, but at the same time are ready to spend 20-30 hours a week on their development. Some burned out, but in the end, in every course there were guys who did everything, and quite diligently.”

The internship lasted seven weeks, classes, as usual, were led by Redmadrobot employees. At the lectures, they gave an overview of the theory, and at the seminars they talked about cases from practice and their implementation. This time, among the lecturers were graduates of our previous internships who joined the team. They did not talk about simple and basic things, but concentrated on what cannot be found on the Internet and in our own experience. And, of course, the emphasis was on independent work – reading, research, homework.

What’s new


Major changes have been made to the Android program. The technology stack in Android changes on average once every 1-2 years, we are constantly exploring fresh modern approaches and gradually integrating them into production. During the internship, we gave what is now relevant in the industry, but not on the principle of “taking the most fashionable”, but only what we have tested and working.

Firstly, the entire internship was done entirely in a new language – Kotlin instead of Java. We started working with it about a year ago, and now development is carried out only on Kotlin. Secondly, we at the company changed the architectural approach in Android – we switched to a clean architecture – it became more complex, but gave us the desired degree of flexibility. Therefore, this time the lecture on architecture for the Android thread was separate.

imageAlexander Blinov (@Xanderblinov), lead Android developer at Redmadrobot

“Clean architecture gives high flexibility and efficiency in dealing with requests from the customer. For example, if in the middle of the project the client realizes that he needs to add caching, we can easily do this. For an average development team, the architecture is reduced to three layers: View, Presenter and the model in which the business logic is located: working with the network and database. We have five layers. We have separated the entire business logic of the application model into three layers. A layer of business logic, a layer of repositories (data source management) and a layer that supplies data to us (network, databases, phone sensors). Now this approach has begun to be practiced in the industry, and this is the peak of technology.”

Many trainee guys almost immediately, as soon as we got to the Kotlin block, began to write on it – they were impatient and interested. But often when developers start migrating from Java to Kotlin, they are essentially writing Java in Kotlin syntax. To write in the “correct” Kotlin, you need to rebuild a little, this is a more functional language, and some things are written differently there. In one of the classes, we sorted out the typical mistakes and features of Kotlin and immediately began to write in an adult way.