Last Saturday I attended a conference organized by our friends of JUG Łódź. In between supporting the organization of the event, I had a chance to watch the presentations covering the topics of MVVM and CI/CD in the domain of mobile app development. I would like to share my impressions and thoughts.
“Building a CI/CD pipeline for your mobile app”
As we use CI/CD processes at Sidnet I wanted to check how others approach this practice to make sure that we aren’t missing anything important.
Peter-John Welcome, a guest from Johannesburg, has showcased the whole process in a very clear manner and it was mostly consistent with my experience. The Continuous Integration and Continuous Deployment (/Delivery) practices are nothing more than the automation of manual processes that occur during the Software Developer’s daily work, and the improvement of its various aspects.
The speaker recalled the fact that the processes in the IT domain do not necessarily follow strict rules. For example, Peter-John Welcome mentioned the topic of using code-verifying bots to check for coding standards or formatting. He said that if no heated discussions at the stage of Code Review emerged, the automatic check could be skipped.
The idea is harmless but, in my opinion, it is also far from optimal. Speaking from my experience I can say that standardization eliminates senseless disputes. It becomes quite clear for everyone involved in the project, as to what formatting shall be used. The bot’s task is simpler as well. It is to make sure whether the given code matches the defined standards. Automation of this step is a time-saver for the whole team, so I wouldn’t recommend getting rid of it from the processes.
“MVVM as good (anti)pattern in iOS”
The developer world has been recently buzzing with regards to the MVVM (Model-View-ViewModel) pattern. Is it a righteous step to utilize it in iOS apps? Mateusz Szklarek considers this to be an error. Szklarek bases his beliefs on experience. His conclusions come, for instance, from a project concerning a mobile app involving 250 thousand lines of source code.
As noted by Szklarek, MVVM eliminates the Massive View Controllers file problem, quite frequently emerging when MVC (Model-View-Controller) pattern is employed. In case of MVVM another problem is quite prevalent – namely, the Massive View Models.
MVVM is far from perfect. However, no perfect solution exists, to be honest. Whether the given idea or tool would work depends very much on the way in which it is utilized by devs themselves. Szklarek said that following the crowd and using the MVVM methodology the way everyone uses it, is not really a valid strategy.
Solution? Common-sense, as usual. Any patterns or tools are there for you – just make sure you are using them in a manner that is rational. The solutions should be tailored to a problem, not the other way round. I would like to emphasize the fact, as the speaker I am referring to did, how important programming principles are. Following them makes it possible to tailor the given pattern and thus, to overcome the issues emerging in each and every model.
Although I was not able to participate in all presentations, I am glad that I could help the organizer.
“Krzysztof, respect for being ready to work hand in hand during the conference. Thanks for your mobilization!”Marek Defeciński