More posts by this author
CTO at Triare
We organized a meetup where two leading iOS and Android developers made a keynote on how to make mobile applications.
On March 17, 2021, we organized our first offline event after a long post-pandemic break. It was a free mobile app development meetup on how to make mobile applications. We aimed to satisfy the curiosity of both mobile application developers and those interested in new IT trends. We hoped that this way we could foster the discussion on the best mobile app development practices and let developers know each other.
Two speakers were our leading iOS and Android experts with the following topics:
Oleksandr Kruglyak, Head of the iOS Department, has over 6 years of programming experience. Amid lecturing, he has also launched the course in Apple app development within our TRIARE Education initiative and frequently shares knowledge in articles, like this one on Test-Driven Development (TDD).
Oleksandr promised that the audience will understand all aspects of modular architecture in iOS better. He started his speed with an overview of frequently used architectures in custom app development, explained the difference between a monolith and a module, described the development process of modules and gave some examples.
Types of architecture in application development for mobile
To comprehend the difference between modular and monolithic architectures, one can imagine a large painting that needs to be moved from one house to another. Monolithic architecture is similar to this object: bulky, hard to fit and difficult to move around.
What if the picture could be divided into puzzle pieces and then assembled? You may replace the sections that are outdated or in need of improvement along the way. A modular architecture is very close to this puzzle analogy.
MVC, MVVM, and MVP are monoliths, while Viper is an example of a modular architecture. Let’s take a closer look at what we believe to be the best mobile app development practices.
After finding out the difference between monolithic and modular architectures, Oleksandr concluded that it is difficult to maintain an evolving project within monolithic architectures. Moreover, it is hard to divide the work on the project between two or more developers. If that is not enough, navigation becomes a vulnerability and Router & Coordinator is not convenient to implement.
Functional testing has a lot of dependencies, and there are no clear areas of accountability. The project’s structure is often determined by the expertise of each individual team. And if a junior developer doesn’t understand Viper, relying on MVC for a project including over 1000 dependencies is neither the right choice.
Architecture is just a pattern by which one can build a mobile app. Architecture can be absent at all or rely on a unified approach to designing a project. TRIARE’s own experience with this approach is the following:
So it became easier for developers to switch between projects and tasks, reducing the bus factor. Although the code we use in ipad app development is always up to date thanks to the reused modules, there are some disadvantages of this approach. For instance, you have to be patient and accustom yourself to describe the code in documentation diligently at the beginning of the transition to modular development. A module is considered dead if there are no docs; a developer on the team should not distract the module developer.
One also needs to cultivate a vision of dependencies and learn to define and share functionality for modules. Furthermore, since the module is a separate framework, it is necessary to determine the integration path for SPM / Cocoapods / .framework.
Serhii Kulyk, Head of the Android Department, possesses more than 3 years of experience in programming. During the presentation, he dispelled myths and stereotypes regarding animation in android mobile apps development. They say it takes a lot of time but Serhii showed clearly that it is not only possible but likely to create bespoke animations in under 5 minutes.
Agenda offered by Serhii:
The speaker gave an analogy of two states: State A (what we have or with what we start) and State B (what we want to achieve). An example would be a weather app: there is some design and we want to animate certain elements to give the crossplatform app development some dynamics and elegance.
Weather app in Android studio: code and visualization
Notably, there are different ways to enable motion within the app. Serhii spoke about Android Studio 4.1.2 and its feature ConstraintLayout 2.0.4. Within this editor, one can switch between Preview Panel, Overview Panel, Selection Panel, and Attributes Panel.
Serhii walked the audience through key attributes:
He used the OnSwipe application and presented other tags like “transformation” to showcase animation. “Using these features you are able to create beautiful mobile applications like YouTube Music when your track’s picture smoothly goes up and gives way to the album list,” explained Serhii with excitement. He mentioned the taxi case when we developed a mobile app for the local emerging player in transportation. Here, the button too is dynamic and helpful to the user. UX is sleek and yet simple.
Presentations by our developers were particularly helpful because they included numerous examples and real cases. Serhii proceeded to Custom Attributes of KeyPosition, KeyAttributes, and KeyCycle. He showed a few dozens of slides more while building up to this slide with squirrels below. “One can adjust the trajectory and add natural effects to the animation,” concluded TRIARE developer.
Over 40 people attended the meetup and listened to presentations of TRIARE mobile devs. They received a good portion of useful information as well as emotions from the long-awaited offline event. Lots of questions followed which was a sign of interest.
The recording of the meetup is available online. We applaud the team for making a notable appearance in the local IT scene. No doubt we are among the great app development companies.