WWDC ’19 is over, and what a week! Let me start by saying that this is probably the best WWDC ever. We have seen the announcement of game changing technologies for the Apple developer community, but even ignoring those big announcements, the rest of smaller details make on itself a great WWDC.
I recently discovered the podcast LambdaCast, a really interesting podcast about functional programming with hosts that are at different points on the path to functional programming. This gives an interesting view to the listener that can get explanations from starters and experts. They usually talk about FP in terms of how to use them in imperative land, mainly with Javascript and C#. That’s nice for many people, but every time they give an example my brain starts thinking about how Swift deals with it.
Yesterday I gave a talk about Functional Reactive Programming to my coworkers at LifeWorks. At first, I wanted to give some insight about it to the Android team, as they were using Rx for the API layer. But at the end there were more assistants than I expected. From Android and my iOS team to Web and backend developers. So I had to do the talk as generic as posible (although the code is in Swift) and also try to convince everyone about how this is the next step.
It’s a known fact that in our community there are always a constant discussions about the best patterns to use when building an App. But I find the discussions about MVC, MVVM, Viper, MVP or whatever new fancy word somebody has come up with today become, at some point, kind of useless. At the end, all of them are quite similar, and all of them are good for some situations and bad for others. If you base your software architecture in separation of concerns you can give it the name that you want.
We are used to treat closures as first class citizens in our code. Same goes to functions as they are interchangeable. But we often don’t think of them as actual types. So they also can play with the rules and abstractions that we usually attach to classes or structs.
I’ve been reading and talking with people that when explaining functions like map, filter or reduce they start with “it loops over the collection and…”. When I ear that my mind starts thinking in why people doesn’t care about the concepts behind things.
I would like to talk about a video of a great talk that I really recommend. I’m really interested on the topic of sharing code between iOS and Mac because basically is what I do with BingWallpapers.