STRV Team4 min

iOS on Wine: FrenchKit

EventsiOSEngineeringOct 30, 2018

EventsiOSEngineering

/

Oct 30, 2018


Share this article

Creator of Homebrew shares how to grow your open source project, co-founder of Objc.io reveals the incoming best resizing tool and SwiftBySundell gives us the golden 3 keys for app architecture.

As it was Paris’ third time hosting FrenchKit – the largest iOS and macOS conference in France, you can bet that big names got together on the same page to discuss the world of iOS.

The presentations were strong, one of the first being led by Pim Stolk who’s currently using the Kitura framework to work with ING bank. As we all know, Kitura is still a really young part of Swift development, so it was exciting to hear that Stolk and his team are using Swift to create a framework called the Bank of Things (BoT) – providing communication between IoT devices and ING bank. He talked about the basics and the future of the product and how his team helps the Kitura team to improve the overall framework. For us, we were just surprised and impressed that a bank is willing to use tech that’s still in development.

Next up worth mentioning was the presentation by Max Howell. Does his name ring a bell? Maybe not, but you definitely know “brew install.” Yep, the author of Homebrew. He described how the project started, steps he had to pass and decisions he had to make while growing an open source project – his story and insights were both amazing and educating. Also we can’t forget that this is the github repo that had the most contributors at one time in history.

Visualization of Homebrew contributions to GitHub

Then there was an interesting talk was about a thing Andy Bennett calls “Configurator.” What is it? It’s a developer screen in an app, where one side allows the developer to check and override any UserDefaults that the app contains. While on the other side, it hosts a list of all cells, where every cell is there multiple times and is filled with different kinds of data to visualize how the cell will behave. This allows the team to split into three parts, one that focuses on business logic, another on the views itself, and the last on creating all kinds of cells.

You can find the talk here:

And now to talk about one of the most popular names in the entire community of iOS development. John Sundell. You may have heard from him via his weekly tips, articles & podcasts about Swift dev in SwiftBySundell. This guy who can make you curious about anything. But here the focus was strictly on app architecture – as you know, the topic discussed all day and everywhere. Without wasting time, Sundell revealed 3 key things that you have to consider when thinking about app architecture.

  • Locks and Keys is a way to get rid of that “awkward” guard let statements for its optional dependencies (which in reality aren’t really optional). In order to create some object you need to provide all of its dependencies, in which a thing called Factory pattern will help you with. In an app, you will have some RootFactory which will get created on app init, and it doesn’t have any dependencies and can create ‘views only’ without any dependencies (like Login). Then you can have a factory that creates UserBoundFactory, for which you need a User object to create - which then can create all views that require a user object to function.
  • Decomposition, is surprise-surprise, about splitting things, about not keeping all responsibilities in one class, about defining which class should do what, what different classes have in common and extracting it into its own class. This is done for two reasons. The first reason is code readability, to not have classes that are thousands of lines long. The second reason is independence of other parts of the app, so the developer can add some features to one part of the app, test just part of the app and to be sure that these changes didn’t affect the rest of the app.
  • Abstractions. It’s obviously about not rewriting similar code all the time and abstracting it away with a reusable interface with the help of mighty Generics. John gave us example on code that iOS developers probably repeat the most. Which were Tables and Collections, which is a great candidate to be abstracted.

Last but not least we got an update that all of us can look forward to. We had a live coding done by Chris Eidhof, the co-founder of Objc.io. He revealed his library (which is not yet public btw) that handles resizing a bit better than autolayout. For example, if some elements won’t fit in a row, they will stack under each other. Or if this layout won’t fit in its superview, you can use this more compact layout. He sees the biggest opportunity for this library once Marzipan goes public. With its resizable windows size, this library should be easier to handle.

With a lot more great names packed into this two day conference, we’ve also heard from Jean-Michel who showed us how his app determines part of a car which is damaged by using Core ML framework. He compared Core ML with TensorFlow which wasn’t that good in his case. We’ve also heard from Yochi Tagaya, the creator of Swinject, about the most popular dependency injection framework. Yochi showed us the basics of using Swinject and why you should use that in your app.

If you’re interested, you can find most of the videos directly on FrenchKit’s site.

As an iOS dev at STRV, would I recommend FrenchKit? No doubt.

We're hiring

Share this article