
In order to truly keep abreast of the industry, it takes a lot of effort: to closely monitor official technical announcements and informal moods in the community.
In the case of iOS development, this effort is made by
Alexander Zimin . On the one hand, he was so actively watching the video recordings of WWDC 2017 sessions that he even recently made up a
guide for all of them. On the other hand, he organizes CocoaHeads meetings, speaks at various conferences, and at the upcoming Moscow
Mobius is also included in the program committee - that is, he has a lot of contact with the community and sees how it lives.
')
Therefore, now, when 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: both “what happens to technologies” and “what happens to people”.
- 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 have been cleaning those that I have not used during these two months. And at the same time, I periodically add new ones. That is, it varies anywhere from 175 to 225.
- The post in the wake of WWDC was published recently, when more than a month has passed since the event. How relevant is this topic for the community now - has the interest faded, or vice versa, now with the advent of stable iOS 11 beta, everyone is starting to understand in practice?- I would break the developers into several groups. The first is generally far from WWDC, it is never interesting to new items. There is nothing special to discuss, they are not interested - well, well, they have their own interests there.
The second group - those who follow the instructions of Apple 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, at the release of iOS 11, they throw out support for iOS 9, support iOS 10 and higher, then they will be able to use in all their glory the innovations that they showed a year ago.
There are developers of their own applications who would like to release something new, interesting, connected with augmented reality and machine learning - these 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 (I know many of them personally) have their own projects, which they have been writing for a month, and in September they want to show the world. Mainly related to augmented reality.
Well, if we talk about companies, then it is very important for them that Apple support them, add them to the main page, and write about them. And one of the easiest ways to achieve this is to support the latest technology from Apple. Therefore, the developers of large companies are just now starting to look at what was presented at WWDC in order to implement and receive features from Apple in August. Well, indeed, the beta has become quite stable, so now it already makes sense to put them on devices.
- And how much did this WWDC impress with 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 volume. And if they submit them, it will be very late. And here at Apple they took and introduced a lot of 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 raw. In the case of CoreML, for example, one of the vulnerable sides was able to download your model from the device. That is, if you made some kind of unique machine learning model and added it to the application through this format from Apple, then anyone can take it from there. Now the situation with CoreML is getting better in the new beta, but in general, early adopters face difficulties.
- And how much has something changed for those developers who are not going to climb into any machine learning, but are doing some typical application?- iOS has its own changes for them. One of the obvious ones is a very fast password filling, and so many developers with application authorization should support this. Under this at WWDC, the whole
session was highlighted. Or, for example, Drag and Drop - if the application supports the iPad and work 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 the font size that is convenient for him, and the applications are adjusted). Third-party developers ignored this functionality (although there are many visually impaired people in the world), since they used third-party fonts, now the situation may change.
But if everything is clear with iOS, then in Xcode this time there are a lot of innovations. In my opinion, this is one of the biggest updates in recent years.
- And if, in the case of iOS, some people only look at the new versions of the 11th version only a year later, then Xcode should be updated by everyone right now, and anyone will feel the improvement?- Yes. They greatly accelerated it, many of which were rewritten from scratch. I now just sit at once in two Xcode different versions, and, according to my feelings, the new one is much faster.
Also, many developers are happy 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 yourself. No one likes routine work.
And the most interesting, in my opinion, is that now you can write your own extensions on Xcode that will support additional actions with your code. And this immediately opens up the scope for custom refactorings (such as simplifying a large if-else into a ternary operator if there is not enough code). Now developers may have fewer reasons to switch to AppCode.
- About AppCode, by the way, it is curious that it is now in the community with its use. It is difficult to compete with IDE from the main vendor - how much does JetBrains manage to do this, and how exactly do you manage to attract developers?- I myself worked quite a bit with AppCode, 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, in the AppCode (using Upsource) the pull request-review is built in, and in general version control is good is built, so you can check other people's branches, other people's PRs directly 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 right away. But, in my view, the ideal option is when you combine two instruments. 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 4 is coming. What are its technical changes, it’s easy to google, and you want to ask about something else: what does the community feel about it? Is he eager to move quickly, or, on the contrary, after the painful transition to the third one, is now “blowing on the water”?- Well, the transition to 4.0 should be painless. Swift 3.2 appears, which hardly differs from the current Swift 3.1.1, and at the same time works with Swift 4.0. That is, now there should not be a famous problem 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 write for the author. In my view, the transition to Swift 4.0 will not take more than an hour or two.
So there are no particular concerns, but at the same time the situation around the new Swift in the community is as follows: they simply don’t talk about it at all. Due to the fact that its changes "under the hood", imperceptible to those who use Swift. They are related to performance, bug fixes and the like. And if about 3.0 the developers said in the key “everything will break,” then about 4.0 they simply do not say anything. It turns out the situation is "either bad or no way."
- A year ago, Apple, agitating all actively use Swift, while she almost did not use it in production. What has changed with this for the year?- A year ago, the situation was like this: a calculator was written on iOS in iOS, the WWDC application, and, if I'm not mistaken, one of their new frameworks is really quite a bit. And now, for example, the updated App Store is written on Swift - it is 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 Swift systems. First, the new build-system, designed to speed up the build project, and secondly, the source editor - this is not written from scratch, and ported from Swift Playgrounds for iPad. So, as you can see, Apple has made a lot of steps towards Swift over the past year.
- To the question of the source editor ported from the iPad. The Swift Playgrounds app feels like self-indulgence - “give children free of charge the first dose of Swift on the tablet, so that later they 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 some issues. Where is the truth?- Well, in this case, the iPad appeared more like a test device, on which they checked the work of the new source editor, and, when it worked quite well, could be transferred to Xcode. The same new build system is not a base, but an additional option; you can optionally build a project from an old one. But the source editor is already run-in enough to be inserted the only option.
But I understand that on the Swift Playgrounds for the iPad they have really ambitious plans, and not just "released and forgotten." Just a couple of months ago, they signed a contract, thanks to which now it is possible to write to Swift just with an iPad under 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, and compared with last year, the amount increased dramatically. And as far as what you see in the community, confirms these beautiful numbers? Does it feel like there is more money in iOS development?- It depends on what to talk about. If about personal projects - in my view, it really became more. My friend released a text quest with two screens. A text quest is when some text is written on the screen, the player has several choices, he chooses and sees the following text. This was popular in the 90s, and even now, among prominent representatives of Lifeline ... The plot was written by a layman and rather 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 market situation. Many because of this think whether to go to work at some 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, the money really becomes more. And the new ad formats that Facebook is providing now help - now the messengers have presented, so far none of my friends have tried it, but potentially it allows you to earn more.
If we are talking about companies, then, in my view, the demand for iOS developers is slowly beginning to fall. Because the mobile device market has already slowed down, something new is becoming popular, so far 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 becomes a little less profitable.
- According to your feelings, in what direction is the iOS-developers community now changing - 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 ways of testing, 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 are on the market for 5-6 years and do not really accept any new items. For them, the same machine learning or augmented reality look like something risky and "twisted." Although at one time, when they entered the mobile market, it was the same for the previous ones as it is now ML. This is a generation gap, one might say.
Specifically, in Moscow is now one of the most active markets. I find it difficult to compare with San Francisco, I don’t fully understand it, but if we compare it with Germany or Italy, it turns out that our market in Moscow is much more active. From just one of the spheres it 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 bit more aggressive and a little more hyip. Someone elevates one technology like a fanatic, someone else starts a heyt. A gregarious feeling arises when someone has expressed an opinion (often incorrectly), while the others start blindly repeating. This is observed in very many areas, but in iOS until some point this was not. The developers did not argue this way among themselves, did not discriminate against all sorts of groups, there were no wars between the developers of different companies. And now there is such a trend, and it is destructively affected.
- To the fact that the Moscow market has grown: how does CocoaHeads meet on this background?- Earlier it was like this: we hold on the same venue, speakers come out without any kind of performance in advance, and people communicate. It was an interesting format, but in the current realities this is not enough, because the community is developing, many other meetings have appeared, the demands have increased.
And as a result, we are trying out new platforms, trying new formats: a round table, a quiz, a blitz, discussions ... We started collecting feedback and analyzing it. We started to prepare speakers, we listen to them sometimes more than once, so that the quality of the reports was high. We have requirements for the site: it is necessary to broadcast, videotape, to have something to eat, to have quizzes with prizes. In general, the requirements have increased, the level has risen, and it turns out that CocoaHeads is already like a mini-conference, and not a meeting. In addition, we want to hold not in one city, but in several: earlier meetings in St. Petersburg were infrequent, but now they will be on a regular basis, because they have found a person ready to do this.
- This is the first time we are organizing Mobius in Moscow this autumn, and you participate there as a speaker and as a member of a program committee. What are your expectations from the conference compared to what happened in Petersburg? What is the difference?- Since the last St. Petersburg Mobius was a two-day, and there will be one day in Moscow, there will be a slightly different format. On the one hand, there will be fewer reports. And on the other hand, it allows you to make the selection as rigorous 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 sensation of experiment: let's see how the Moscow audience behaves.
- You are familiar with both the Moscow iOS community and the St. Petersburg community - and how do you think they differ? Do you think there is a difference between how iOS is written in two cities?- Judging by the estimated feedback from CocoaHeads, the Moscow community is a bit more spoiled: reports with similar 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 held in the city, the higher the expectations and the stricter the estimates.
And I also see the difference in the development itself. In Moscow, the bias towards complex decisions. Roughly speaking, in Moscow, they rather want to solve one component is difficult, and in St. Petersburg many components are simpler. Most likely, this is due to lifestyle. Because in Moscow there are a lot of developers, a lot of vacancies, you come to work, you have one task for a week, and you write it as you like. You 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, the difference seems to me like that. This is good in its own way, solutions become more flexible and testable, the entry threshold for working with old components is reduced by new developers.

Mobius will be held in Moscow on November 11th. The topic of the report by Alexander is not yet definitively formulated, but it is obvious that it will be connected with iOS. Now on
the conference
site you can already see the names of several other speakers (both on iOS and Android), as well as purchase tickets. And over time, they are becoming more expensive - so it’s better not to wait until more details become known.