“The market is becoming more aggressive and hype” - Alexander Zimin on iOS development trends
To really keep abreast of the industry, it takes a lot of effort: closely monitor both the official technical announcements and the informal moods in the community.
In the case of iOS-development, these efforts are made by Alexander Zimin . On the one hand, he watched videos of WWDC 2017 sessions so actively that he recently even made a guide for them all. On the other hand, he organizes CocoaHeads meetings, speaks at various conferences, and at the upcoming Moscow Mobius he also enters into the program committee - that is, he has a lot of contact with the community and sees how it lives.
Therefore, now that the releases of iOS 11 and Swift 4 are inexorably approaching, we decided to ask Alexander about the current state of iOS development from two angles at once: “what happens to technologies” and “what happens to people”.
- An introductory question: how many applications are installed on your iPhone?
- In the region of 200. At the same time, every one and a half to two months I clean up those that I have not used during these two months. And at the same time, periodically, new ones are added to me. That is, it varies from 175 to 225.
- A post in the wake of WWDC was published recently, when more than a month has passed since the event. How relevant is this topic to the community right now - has interest faded, or vice versa, now with the advent of stable iOS 11 beta, is everyone starting to understand in practice?
- I would divide the developers into several groups. The first is generally far from WWDC, she is never interested in new items. There is nothing special to discuss here, they are not interested - well, well, they have their own interests there.
The second group is those who follow Apple's directions and support the last two operating systems. As I indicated at the end of my article, they are now watching the WWDC of the previous year. Because if with the release of iOS 11 they throw out support for iOS 9, will support iOS 10 and higher, that means they will be able to use in all its glory the innovations that were shown a year ago.
There are developers of their own applications who would like to release something new, interesting, related to augmented reality and machine learning - such have been studying WWDC materials from the very first days. Because here you either have time to release, or do not have time. And these developers (many of them I know personally) have their own projects that they have been writing for a month, and in September they want to show to the world. Mostly related to augmented reality.
Well, if we talk about companies, it is very important for them that Apple support them, add them to the main page, write about them. And one of the easiest ways to achieve this is to support Apple’s latest technology. Therefore, developers of large companies are just now starting to look at what was presented at WWDC in order to implement and receive Apple featured in August. Well, indeed, the beta has become quite stable, so now it makes sense to put them on devices.
- And how much did this WWDC impress with its announcements by the iOS community?
- He pretty much surprised many developers. Because it was believed that in the field of machine learning or augmented reality, Apple works exclusively in experimental laboratories, and even in a small amount. And if they introduce them, it will be very late. And here at Apple they took and presented many new technologies (and their definition of objects in AR without sensors is one of the most accurate on the market), in iOS 11 the emphasis is much greater than it was in iOS 10.
But, on the other hand, these technologies are now quite crude. In the case of CoreML, for example, one of the vulnerable parties was able to download your model from the device. That is, if you made some unique model of machine learning and added it to the application through this format from Apple, then anyone can get it from there. Now in the new beta, specifically the situation with CoreML is getting better, but in general early adopters are faced with difficulties.
- How much has something changed for those developers who are not going to climb into any machine learning, but are making some kind of typical application?
- iOS has its own changes for them. One of the obvious ones is that the password is filled out very quickly, and many developers with authorization in applications should support this. Under it at WWDC was a wholesession is highlighted. Or, for example, Drag and Drop - if the application supports iPad and working with data, then most likely it makes sense to try.
Another interesting innovation was Dynamic Type for third-party fonts (this is when a person chooses a font size that is convenient for him, and applications are tuned). Third-party developers ignored this functionality (although there are a lot of visually impaired people in the world), since they used third-party fonts, now the situation can change.
But if everything is clear with iOS, then this time there are a lot of innovations in Xcode. In my opinion, this is one of the biggest updates in recent years.
- And if in the case of iOS, some only in a year will look at the news of the 11th version, then is Xcode worth updating everyone right now, and anyone will feel the improvement?
- Yes. They greatly accelerated it, many things were rewritten from scratch. Now I’m just sitting in two Xcode versions at once, and, in my opinion, the new one is much faster.
Also, many developers are glad that refactoring has appeared, in Swift this was not enough. If someone wanted to rename a function or class, or solve some more complex tasks, then you had to either use third-party tools like AppCode, or do it with your hands. No one likes routine work.
And the most interesting, in my opinion, was that now you can write your own extensions on Xcode that will support additional actions with your code. And this immediately opens up scope for custom refactoring (like simplifying a large if-else into a ternary operator if there is little code). Now developers may have less reason to switch to AppCode.
- About AppCode, by the way, it is curious that now in the community with its use. It is difficult to compete with the IDE from the main vendor - how much does JetBrains manage to do this, and how exactly does it manage to attract developers?
- I myself worked with AppCode quite a bit, but I see that there is a caste of developers who use it. Usually these are advanced developers who lack some functions in Xcode: complex custom scripts, or the same refactoring, or, interestingly, pull request review is built into AppCode (using Upsource), and generally version control is good arranged, so you can directly check someone else’s branches, someone else’s PR from the IDE.
Of course, many developers do not want to switch to new tools, because Apple has already made Xcode for them, it is free, advertised everywhere, it supports beta immediately. But, in my opinion, the ideal option is when you combine two tools. This is difficult, but, for example, you use Xcode when you need to test future beta, and AppCode when you check other people's branches.
- Swift is approaching 4. What are its technical changes, it’s easy to google, but I want to ask about something else: what does the community feel about it? Is he hungry for a quick transition, or, conversely, after a painful transition to the third, now he’s "blowing into the water"?
- Well, switching to 4.0 should be painless. Swift 3.2 appears, which is almost no different from the current Swift 3.1.1, and at the same time works with Swift 4.0. That is, now the famous problem should not arise when some third-party library written in Swift, which you keep in the project, does not support the latest version, and you don’t know what to do - don’t add for the author. In my opinion, the transition to Swift 4.0 will not take more than an hour or two.
So there are no particular fears, but at the same time, the situation around the new Swift in the community is as follows: they almost never talk about it. Due to the fact that its changes are "under the hood", invisible to those who use Swift. They are related to performance, bug fixes and the like. And if the developers said about 3.0 in the key “everything will break”, then about 4.0 they just do not say anything. It turns out the situation is "either bad or nothing."
- A year ago, Apple, agitating everyone to actively use Swift, while itself almost did not use it in production. What has changed over the past year?
- A year ago, the situation was this: a calculator was written on Swift in iOS, the WWDC application, and, if I am not mistaken, one of their new frameworks - indeed, quite a few. And now, for example, the updated App Store is written on Swift - it’s clear that this is a rather gigantic thing, full of complex custom UI components, and, probably, surpassing many other Apple applications in complexity. And in Xcode there are now two systems on Swift. Firstly, a new build system designed to speed up the assembly of the project, and secondly, the source editor - this one is not written from scratch, but is ported from Swift Playgrounds for iPad. So, as you can see, Apple has taken a lot of steps towards Swift over the past year.
- To the question that the source editor is ported from the iPad. The Swift Playgrounds app feels like pampering - “give children the first dose of Swift on the tablet for free so that they can continue seriously on the Mac.” And the words that they dragged something from there to the desktop Xcode, sound as if Apple approached the iPad very seriously, putting the desktop in front of some issues. Where is the truth?
- Well, in this case, the iPad acted more like a test device on which they tested the work of the new source editor, and when it worked well enough, they could transfer it to Xcode. The same new build system is not a basic, but an additional option, you can optionally build a project with the old one. But the source editor is already run enough to be inserted with the only option.
But as I understand it, they have really ambitious plans on Swift Playgrounds for iPad, and not just “let it out and forget it.” Just a couple of months ago, they signed a contract, thanks to which now it is from the iPad to Swift that you can write for many robots and drones. I think this is a dream of many children.
- At WWDC, among other things, Apple announced how much money all iOS developers received in total, and compared to last year, the amount increased sharply. And how much does what you see in the community confirm these beautiful numbers? Does it feel like there is more money in iOS development?
- Watching what to talk about. If about personal projects - in my opinion, there really are more. My friend released a two-screen text quest. A text quest is when some text is written on the screen, the player has several options, he selects and sees the next text. This was popular in the 90s, and now, among prominent representatives of Lifeline .... The plot was written by a layman and pretty quickly. It is clear that technically such an application is written in a couple of hours. And in the end, with advertising costs of about $ 600, there was a profit of $ 10,000 per month.
This is the situation on the market. Because of this, many people think whether to go to work in a company for 200,000 rubles a month, when you can try small projects, and in six months the fifth, sixth, and seventh will be able to bring money. In this regard, there really is more money. And the new advertising formats that Facebook now provides help - messengers have now introduced, so far none of my friends have tried, but this potentially allows you to earn more.
If we are talking about companies, then, in my opinion, the demand for iOS developers is slowly starting to decline. Because the mobile device market has already slowed down, something new is becoming popular, while no one knows where the next boom will be, but investments are already going somewhere in the direction of projects with machine learning or blockchain. And in this regard, the market is becoming slightly less profitable.
- According to your feelings, in which direction is the community of iOS developers changing now - and generally in the world, and specifically in Moscow?
- A mixture of professionalism and conservatism appears. People began to think more about architecture, integrated approaches, different testing methods, and more complex interfaces. If you look at how the applications looked five years ago and how they are now, you can see the difference.
But at the same time, the market is becoming more conservative. Five years ago, he was relatively new, people came here who wanted to try themselves in something new, ready to get involved in an adventure. Now many of them have been on the market for 5-6 years and do not really accept any new products. For them, the same machine learning or augmented reality seems to be something risky and “wound up”. Although at one time, when they came to the mobile market, it was the same for the previous ones, as now ML. This is a generational conflict, one might say.
Specifically, Moscow is now one of the most active markets. It’s difficult for me to compare with San Francisco, I don’t fully understand about him, but when compared with Germany or Italy, it turns out that our market in Moscow is several times more active. From just one of the areas it has turned into something incredible, with a bunch of materials, communication, various solutions. This makes me happy.
But it saddens that at the same time the market becomes a little more aggressive and a little more hype. Someone elevates one technology, like a fanatic, someone else begins to hate. There is a herd feeling when someone expressed an opinion (often incorrect), and the rest begin to repeat blindly. This is observed in very many areas, but in iOS until some point this was not. The developers did not argue so among themselves, did not discriminate various groups, there were no wars between developers of different companies. And now there is such a trend, and it is destructively affecting.
- To the fact that the Moscow market has grown: how are CocoaHeads meetings developing against this background?
- Previously, it was like this: we are conducting on the same venue, speakers are speaking without any preliminaries, and people are talking. It was an interesting format, but in the current realities this is not enough, because the community is developing, many other mitaps have appeared, requirements have increased.
And in the end, we try new platforms, try new formats: a round table, a quiz, a blitz, discussions ... We started collecting feedback and analyzing it. We started to prepare speakers, sometimes we listen to them more than once so that the quality of the presentations is high. We have requirements for the site: broadcast, video, to have a bite to eat, so that the quizzes are with prizes. In general, the requirements have increased, the level has risen, and it turns out that CocoaHeads is already like a mini-conference, not a mitap. In addition, we want to hold not in one city, but in several: earlier in St. Petersburg meetings were infrequent, but now they will be on a regular basis, because they have found a person who is ready to do this.
- This fall we will organize Mobius for the first time in Moscow, and you participate there both as a speaker and as a member of the program committee. What are your expectations from the conference compared to what was in St. Petersburg? What is the difference?
- Since the last Petersburg Mobius was two-day, and in Moscow there will be one day, there will be a slightly different format. On the one hand, there will be fewer reports. And on the other hand, this allows you to make the selection as strict as possible and show "the best of the best."
And at the same time, since the conference will be held in Moscow for the first time, there is a sense of experiment: we will see how the Moscow audience behaves.
- You are familiar both with the Moscow iOS community and the St. Petersburg community - and how, in your opinion, do they differ? In your opinion, is there a difference between how they write for iOS in two cities?
- Judging by the feedback estimates after CocoaHeads, the Moscow community is a little more spoiled: reports with the same level in St. Petersburg are estimated at 15% -20% higher than in Moscow. This is most likely due to the amount of material on the market: the more events take place in the city, the higher the expectations and the stricter the ratings.
And I see the difference in the development itself. In Moscow, a bias towards complex decisions. Roughly speaking, in Moscow they most likely want to solve one component is difficult, but in St. Petersburg many components are easier. Most likely, this is due to the lifestyle. Because in Moscow there are a lot of developers, a lot of vacancies, you come to work, you have one task there for a week, and you write it the way you want. Could write it, figuratively speaking, in three lines of code, but you have a whole week, you are bored, and you write it in a thousand lines, you write some kind of complex architecture on top. In the end, although it seems that Moscow is faster, I see such a difference. This is good in its own way, solutions are becoming more flexible and testable, the entry threshold when working with old components by new developers is reduced.
Mobius will be held in Moscow on November 11. The topic of Alexander’s report has not yet been finalized, but it’s obvious that it will be connected with iOS. Now on the conference website you can already see the names of several other speakers (both on iOS and Android), as well as purchase tickets. And over time, they become more expensive - so it’s more profitable not to wait until more details become known.