Mobiconf 2019 has been a spectacular edition. This conference, that took place in Cracovia, gathered a lot of mobile development experts, from engineers to designers and managers. We attended a lot of talks during its two days duration, and here’s our personal experience:

Mobiconf 2019: First Day

Keynote

The event’s introduction was done by Sommer Panage, an iOS developer who was back to this world after having an unusual and interesting experience outside of it.

She told us how, for various reasons, after many years working at Twitter she felt the need for a change. She wanted something different that kept her more active. So, after leaving Twitter, she spent a year practicing acrobatics. A long journey that included some severe injuries born from the intense training, but that proved successful once she managed to achieve her goal, to be a part of a circus tour.

After some months in that tour, where she was also in charge of the management, se went back to work as a tech developer.

Piotr Ślesarew (@SliskiCode) – Bottom Navigation Headache

The first tech talk of the day was by Piotr Ślesarew, an Android engineer at Babylon Health. The talk focused on the difficulties derived from managing the navigation between screens in Android when we have multiple hierarchies, and these get further mixed up when incorporating elements like bottom navigation view that we can see in popular applications like Instagram, Spotify or Youtube.

After suggesting a short survey about how we organize our screens between activities and fragments, he explained how he uses navigation component to organize his screens flow to cope with problematic situations derived from the navigation between fragments like transactions, transitions or deeplinks.

It was definitely a very didactic talk for those who had never used navigation component before and where we could appreciate the tool’s potential.

Antoine Van der Lee (@twannl) – Building an app with Combine

In a two-talk succession, as a sort of workshop fashion, Antoine introduced the use of Combine, Apple’s new framework to cope with asynchronous operations. During his live coding session he taught us some elements of this new framework, doing some demos where he updated elements of the view. In the last example he proved its potential by doing an api request to Github’s repository list to obtain a list of the Swift category and dynamically update the view.

You’ll find the repository where you can test Combine here

Fernando Cejas (@fernando_cejas) – Congratulations! Legacy code GURU level unlocked!

Fernando Cejas is one of the most renowned developers of the Android community, thanks to the progresses he has contributed as well as his activity in the community.

This was a pretty technical talk. Fernando told us about the importance of constantly analyzing our code to create better strategies for the next refactor of our classes.

The starting point of the talk was to follow the philosophy that our software is terrible, meaning its constantly changing and we always believe it can be improved, and that’s a fact we must accept. This is a feeling that gets truly accentuated when we have untested code, we apply anti-patterns or the code is difficult to change; in short, a code that breaks the principles of design.

He explained different techniques to analyze our code and detect those errors, starting with first steps like analyzing static code and detecting the number of bugs, code coverage and number of broken rules with the introduction of a very interesting tool called SonarCloud to that end.

Afterwards, he introduced the concept of tech debt radar, a two axis graph where we can measure the functionalities based on the amount of time these could takes us and their complexity.

He also did a behavioural code analysis with the goal of detecting which classes are the most frequently changed, the hotspots that need to be refactored or the couplings between classes. To do all of this, he introduced us to the Codescene tool.

To finish his talk, Fernando demonstrated a tool called Gource used to analyze the lifeline of a project and the generation and edition of the classes during the repository’s course.

In this link you’ll find the full article.

Artem Rudoi (@rudoj_artem) – Scalable UI. We implemented, test and speed up development

After a break to grab a bite we picked up the pace with the next talk, courtesy of Artem Rudoi, Android developer that introduced us to the design system they use on Badoo, which allows them to have a scalable UI which they can, in turn, re-use (or at least, some of its components) on other associated applications like Bumble or Chappy.

His talk focused on how they progressively discovered this re-usable components and how, aligning with the design and production teams, they’ve been able to create this system.

In this article you can read the design team’s work to separate and update the design system alongside the developers.

Kateryna Gridina (@gridNAka) – #Iamdeveloper choice

Coming next was Kateryna Gridina, an iOS developer. Like Fernando Cejas beforehand, this was also an inspiring talk encouraging us to take on new challenges and goals in our careers.

She told us her first experience as an organizer in a meetup she had to accidentaly do. Thanks to this experience, where she taught many people about iOS development tools, she realized she really liked to teach others, and since then she’s been doing this as a side activity to keep her motivation levels up.

After this, he mentioned the plenty alternatives we developers can opt to during our careers, like being a freelancer, entrepreneur, blogger, content creator or teacher.

Mateusz Bilinski (@matbilinski) – Hacking (with) mobile AI

Back to the Android stage, we had the chance to attend one of the most original talks, presented by Mateusz Bilinski, related to the application of AI systems like Tensorflow or PyTorch.

He demonstrated how AI can be used to violate people’s intellectual property: e.g, using AI you could make someone speak and take the voice and gestures to another person (in this example, Barack Obama).

He also told us how you can break captcha-like security systems with AI, changing a simple pixel to provoke a different interpretation of the results.

Definitely, this talk made us reconsider where are the limits of our fantasies and our responsibility with the technology we create.

Joshua Garnham (@jgarnham) – Pushing protocols to their limits

The last talk of the day went to Joshua Garnham, who taught us some techniques using protocols to make our code more re-usable through generalization techniques, associated types, opaque types and typealias.

Party Time 🎉🍺

At night we were invited to private party for the attendees, where we could have more informal talks and networking chances. This definitely gave us an energy boost for the second day.

Mobiconf 2019: Second Day

Donny Wals (@DonnyWals) – A Practical Approach to Adopting TDD In the Workplace

The second day came and we were ready for more talks. Donny Wals started the day off with a very didactic talk, giving us plenty of advice on how to test our iOS applications.

He started off his talk with a small introduction of common errors linked to coding without tests, and how that can burden a project in the long run. After this, he talked about Gherkin, a language he used to describe what a test is: to define a scenario where you can do a simple, unique action, and with the given conditions, we get the expected result.

He then showed us XCTest, the official Swift framework to do these kinds of tests, as well as Quick, the one he personally uses to do more descriptive tests.

He kept creating these tests following TDD philosophy, first with XCTest and then Quick, comparing their differences in speed, interpretation and the documentation provided.

Lastly, he gave us some advice on how we can incorporate these tests in big projects and developments, step by step, and how to apply these tests on an automated CI with every push and with intervals to test the integrations with other services.

Kristina Simakova (@KristiSimakova) – Real World as your Playground – Build games based on the real world

The second talk of the day was by Kristina Simakova, who told us about the advances made using augmented reality.

To that end, she did a bit of history about the last games that used AR, like Pokemon Go, and their impact. Pokemon, for example, got the Guinness Record for the biggest benefit a videogame has generated during its first month in the market. She then mentioned the clones that appeared on Pokemon’s wake, and how Google published a solution called Google Maps Platform Gaming Solution to encourage this type of games. There, the developers could sing-up and create their own worlds in a three-dimension map in real time, this SDK created in Unity.

She then proceeded to talk about some of the resources used by this platform to create your own games where you can use almost every element of the map as a game goal using the Playable Locations API.

She encouraged us to test it, so I’ll do the same and leave the link here so you can sign-up.

Dr Lucinda Scharff (@lucindascharff) – What I’ve learnt about leadership

Clinical Product Manger @Google Health

During the following talks we got out of the development are and into the realm of everything mobile, where managers, product owners and consultants detailed their experiences as well as some team management skills. It is precisely in this context that we enjoyed Dr Lucinda Scharff‘s talk.

After starting her career in the world of medicine, Lucinda entered Google’s health division as a Clinical Product Manager. She detailed her experiences on this job, including errors she had done, like pushing a feature that wasn’t a priority, which then echoed on the feedback she received during retrospectives, an element she finds capital for a project’s success.

Markus Wittwer (@MarkusWittwer)- Modern mindfulness practices for the nerdy agilist (everything mobile)

Mindfulness trainer. Agile Coach @MarkusWittwer

After lunch break we had the chance to attend Markus Wittwer‘s talk, which was quite a very particular one.

He told us about concentration and how difficult it is sometimes to focus on one thing, since our head is always full of distracting thoughts that hinder that task.

To solve that, he talked about meditation and how useful it is to gain back the focus and take hold of one’s brain.

In fact, we did a small meditation session on the room, coupled with some scientific explanations about its benefits.

Luca Nicoletti (@luca_nicolett) – MVI with Jetpack Compose

The last talk of the day was courtesy of Luca Nicoletti, who talked about the MVI design pattern, wich was the foundation of his applications: a unidirectional pattern where the user’s input or a system event kickstarts the data obtaining flow before getting back to the view.

He then showed Jetpack Compose, the last Android framework used to create more declarative views, but that’s still very limited. They’re working on some of this limitations, like having a recycler view, but these are not yet available.

Lastly, he showed how to apply those views on his architecture using MVI, even though he advised against this since Jetpack Compose is still in its Alpha version.

Discussion Panel by Fernando Cejas with Antoine Van der Lee, Lucinda Scharff, Clifton Lin y Piotr Ślesarew

To finish the second day and, with it, the conference, the last event was a panel discussion moderated by Fernando Cejas in which he invited other speakers to share their thoughts on some concepts and ideas in a less formal context.

Among the topics tackled, these are the ones I thought were more interesting:

  1. The current application of artificial intelligence, how it has true value while still being a bit “shocking” (for example, you can have a perfectly normal phone conversation with a bot that flawlessly mimics a human being). On a development level, the implementation of this technology allows us to create new tools that can help us shorten the time we work on a project, making it a faster and more efficient process.

  2. Virtual Reality was another topic they tackled. They mentioned how this technology is being used in conjunction with sensors to simulate human sensations in some pornography productions, which in turns makes it seem like we’re encouraging to search for “love” in a virtual environment, perpetuating an increasingly individualistic society.

  3. They also tackled the increased number of women entering the working world. Everyone agreed that there was a big inequality in the world of development and engineering, and saw as a positive thing the fact that women are currently encouraged to enter this world.

Mobiconf 2019: Conclusions

We loved this year’s Mobiconf, thanks to its talks and organization. A nice and friendly event from the very first moment to the last, so we can’t wait to return in future editions!