Mobile applications – trends for 2020

The past year brought us many new products on the mobile application market. The autumn conference season is also coming to an end, so let’s take a look at the multitude of novelties and pick some real trends that will develop in the years to come.

SwiftUI – something new from Apple

When it comes to the iOS platform, this area has definitely been dominated by SwiftUI – a new library presented by Apple during the WWDC technology conference in June. SwiftUI is used by developers to create a functional interface that works not only on iOS but also on the newly created iPadOS operating system. SwiftUI is a framework built to utilize the potential of the Swift5 language fully.

Interestingly, despite the fact that this topic was the leitmotif of several lectures, each of them showed a different aspect of its use. Jakub Kornatowski presented SwiftUI’s place in Apple’s software ecosystem and showed this library globally. Timirah James talked about the basics of using the SwiftUI library, showing how to create mixed views, dynamic lists, static variables, and how to use HStack and VStack layouts on practical examples. Andrzej Zuzak talked about its principles of operation and the most important differences between SwiftUI and UIKit. Paul Hudson explained the use of SwiftUI in creating Collection View, while Jan Kaltoun demonstrated how to write and modify code that works on all platforms in the Apple family during a live coding session. It’s worth noting that SwiftUI allows creating stable interfaces at this time, but there will certainly be areas where replacing UIKit with this library won’t be possible.

Photo from the Mobiconf conference. Visible screen of the lecture. On the slide, the inscription: There is always more to learn.

Jakub Kornatowski drew attention to some problems that the SwiftUI framework brings. First of all, these are issues related to iOS and Xcode 11, not very extensive support and incomplete documentation, and limited coverage of the native API. It’s therefore not an ideal library, but we can assume that it will develop in the right direction over time.

Design Thinking – design from scratch

Another important aspect turned out to be not a technical issue, but the entire design process – from the concept stage. The idea itself should be well-planned and thought out. This is not just about the appearance and graphic design of mobile applications. It’s about paying attention to customer needs, market requirements, and adapting the product to specific expectations. This way of thinking should be visible already at the stage of choosing the approach (native, hybrid, or PWA). It’s also worth considering the strategy of keeping application users around. Kaja Toczyńska showed the use of the psychological process of creating habits as a marketing tool that makes users willingly use our application and like to use it.

A visible room full of participants, a speaker, and a slide with the inscription: Architecting Android and iOS apps in 2020 displayed on the lecture screen.

Designing mobile applications is not just a visual process. It’s also the selection of the right architecture, design patterns, and technical solutions that meet the needs of a given project best.

The topic of mobile application design isn’t free from problems. UI design, debugging, and testing are difficult, and creating a mobile application adapted to operate on iOS and Android platforms is very time-consuming. When using MVVM / MVI architectures, remember to properly adapt them to the needs of your project, so that the application functions are transparent, testable, and comply with the security rules.

The new face of testing

Great emphasis was also placed on software testing. In the IT world, this aspect of creating mobile applications is becoming increasingly important. Testing is not a boring and unnecessary occupation at all. Writing unit tests is no longer just good practice, but also a requirement and an integral part of the software development process. In addition, it can help to reduce code maintenance costs significantly. How can a team achieve that? First of all, you should write tests that are really valuable – they help to locate and avoid potential errors and vulnerabilities in the code.

In addition to unit tests, the TDD approach (Test-driven Development), where tests are planned before writing the code, is gaining popularity. Integration tests and UI tests also have a separate place in this set.

Conference room, a lecture on testing, a light bulb on the lecture screen and the inscription: Writing Unit Testable Code.

Jayesh Kawli said that in the face of the need for quick product delivery, unit testing is often overlooked or carried out in poor quality. Exaggerating the other way or striving to cover the code with 100% testing isn’t the right approach either. Writing unit tests should be integrated into the workflow. Jayesh showed how to write testable code where important aspects are tested, but he also discussed frequently made mistakes and traps that await programmers and testers.

Flutter – one to rule them all

Flutter is another topic which is no longer new, but is becoming more stable and continues to grow. Michał Baran and Rafał Wachol took us on a sentimental journey through Flutter’s history. Two years after its creation, this technology is increasingly used to create mobile applications. Today, looking at the path this language has taken, it’s fair to say that Flutter has made tremendous progress. Łukasz Wiśniewski showed how Voyager allows creating clear requirements in the form of code that can be transformed into Flutter components. Thanks to this solution, you can easily monitor the requirements throughout the history of various branches of the guitar and create A / B tests of different types of navigation without cluttering the code.

However, Flutter is not only the past – it’s also continuous development. Dylan Drost drew attention to the role of testing and automation in creating cross-platform applications that not only work properly on iOS and Android but also have high-quality code and architecture.

Opinions about the future of Flutter are mixed. Rapid development suggests that this technology will soon become one of the most important in the area of mobile app development for many platforms. However, there will always be restrictions present in which developers can only be overcome by using native technologies.

Modern agile

The agile methodology needs no introduction – it’s one of the most popular project management techniques. It works in many industries, but above all, it is known in the context of the IT area. Tailored to the needs of the team, it allows you to optimize the daily work of developers and brings many other benefits. The Agile Manifesto, however, was created many years ago, which casts doubt on the topicality of the original agile principles. Do they still find application in a constantly changing business environment? How to use agile nowadays and in real-world cases to fully unleash the potential of teams? 

Peter Stevens tried to answer these questions. He presented a modern and a more personalized approach to the implementation of agile methodology and made sure that participants take valuable knowledge from the lecture – also in the form of a printed compendium.

A book - promotional material after the conference: Ten Contracts for your Next Agile Project. A practicioner's Guide to Creating the Right Contract. - Peter Stevens. On the cover there is a person jumping the abyss.

Technology conferences

The cross-section of topics discussed at technology conferences, which in my case were devoted primarily to mobile applications, is really huge. Thanks to this, everyone can find something for themselves. The IT world is constantly changing, and it offers us new solutions and ideas every day. It is important, however, that technical skills are no longer sufficient to succeed – business, communication skills, and team management are equally important.