Swift Heroes: Networking...not just about APIs
17/05/2023
Swift Heroes 2023 offered insights into Swift, SwiftUI and UX. Learn about the latest trends in app development for Apple devices.

The annual Swift Heroes conference was held earlier this month in Turin, Italy, offering two days of talks focused on Swift, SwiftUI, UX and technical challenges in the world of app development for Apple devices.
It was also an opportunity to network, meet colleaguesand talk one-on-one with speakers from Italy and abroad to ask for tips and discuss concerns related to this vast world.
Personally, I also had the opportunity to see and chat with colleagues from previous projects, with many of them even seeing each other vis a vis for the first time. This created an atmosphere of mutual exchange and enrichment!
From the many speeches given during the conference (more than 25!), I have selected the ones I thought were most significant, with the aim of immersing you in the exciting atmosphere of the event.
Index
- SSL, or how to avoid "peepers"
- Murray: the cross-platform tool presented at Swift Heroes
- TCA: the architectural paradigm presented by Shai Mishali
- In conclusion: see you next year!
SSL, or how to avoid "peepers"
Pietro Messineo, Senior iOS Developer at BlueThrone, gave a speech, during thisSwift Heroes 2023, in which he illustrated how SSL pinning (Secure Socket Layer) controls in the call flow.
SSL pinning is a technique used to prevent MITM (Man In The Middle) attacks aimed at stealing or manipulating response data between the server and the device. The attacker, or "man in the middle," by analyzing data traffic, can intercept the server response containing our request data and send incorrect data to the client.

SSL pinning
Integrating a certificate or client-side public key into the call flow can effectively prevent this type of attack. In this regard, the speaker recommended the use of TrustKit, a library that simplifies the integration of SSL pinning into the application.
Configuration with TrustKit is not complex: simply configure the app's Info.plist file with the corresponding keys (which contains settings for deeplinks, app name, and other project parameters) and... Voila! Alternatively, the keys can be written via code.
The litmus test can be done using Proxyman, we have already discussed it in this article, and in the case of correctly set SSL pinning, we will get a blank screen on the data of the calls made. Try it to believe!
Incidentally, Peter confided in us that a well-known streaming platform has not yet integrated this...without telling us, of course, which one it was.
Murray: the cross-platform tool presented at Swift Heroes
Stefano Mondino, Platform Leader of Synesthesia, presented in the Auditorium the famous tool called Murray during this year's Swift Heroes event. But what exactly is Murray?
The name of the tool is inspired by the skull that appears in the well-known video game Monkey Island, and it is a cross-platform framework for creating projects (iOS and Android in particular). Murray allows you to create a true cross-platform project skeleton with template creation with just a few terminal commands and really clean and organized scaffolding.
With Murray, it is possible to define procedure that represent blocks for the creation of new features. The procedur e, in turn, is made up of groups of files. For example, you can combine a ViewController with a ViewModel to form a "Bone."
Tool to be used in tandem with Murray is Visual Studio Code,because by taking advantage of the combination of editor and terminal, to write and execute commands smoothly, it keeps you from going crazy by avoiding constantly jumping between different windows.
From downloading the tool to the first steps in using it, Murray stands out for simplicity and an absolute ratio of effort to result: with just a few commands we can pull up a runnable project!
This is particularly beneficial for large projects involving multiple libraries and frameworks, as Murray facilitates the organization and integration of components, avoiding complications that could slow down software development at critical moments.
Ah, of course, the creation of the test classes is also included...
TCA: the architectural paradigm presented by Shai Mishali
The Composable Architecture (TCA) is a library for developing applications in a consistent and comprehensible manner, following the architectural paradigm of the same name.
Shai Mishali, Senior iOS Tech Lead at monday.com, won the critics' award for best speech at the event, presented the library with the example of a classic app: a Pomodoro Timer, to highlight the uniqueness of TCA.
The Composable Architecture provides the ability to break down the app into "containers" with decreasing complexity and increasingly focused responsibilities, allowing the app's logic to be managed and quality code to be written. These small components can then be brought together to create the desired functionality. Fragmentation allows possible "states" to be controlled and propagated to subsequent navigation screens, ensuring consistent user interface (UI) behavior.
There are some repeating components to handle different parts of the user interface and logic:
- State: a type that describes the data to manage the logic of the feature and the user interface accordingly.
- Action: a type representing all possible actions mnyour new feature (actions, notifications, events).
- Reducer : a function that describes how the app should evolve from its current state to the next (also handles network calls).
- Store: the "container " mentioned earlier; receiving all Actions, it manages the Reducer that will make changes to the state , allowing the developer to manage UI updates.

The Composable Architecture
Of course, all of this also refers to the testing aspect (which was addressed in three talks during the event), where traditional unit tests and integration tests can be written.
I can't wait to be able to try it on a personal project to discover the full potential of this architecture!
In conclusion: see you next year!
Wanting to take stock of the event I attended as a spectator-reporter, I found it interesting, and while dealing with sometimes new topics, the opportunity to choose different topics in two different conference rooms (according to one's interests) created a sense of levity and the hours passed pleasantly.
As I also wrote in the introduction, the opportunity to interact with the speakers and find them among us as "regular people" during the various coffee breaks allowed many developers like me to get to know them as people as well as professionals.
There is nothing left to say but: see you next year!
![[LOGO]-Ulixe_Nova-positive](https://www.ulixenova.com/wp-content/uploads/2025/01/LOGO-Ulixe_Nova-positivo.png#25)





