We're happy to announce our second Talks night, with a slightly tweaked moniker to keep it simple. Welcome!
We're tweaking the format a little too. August is a holiday month, so it's a bit quieter than usual (thanks for not being on holiday), and, I think, a good time to try something new. This month we'll be swapping out one of our two main speaker spots and trying a round of "lightning" talks to start us off - at most 10 minutes each, so more thunder than lightning perhaps. It seems like a good way to hear a variety of views on a variety of things, and a good chance for people who come along to contribute, and get to know each other.
We'll be repeating the format at other events, so if there's something Swift you'd like to discuss with the group, please get in touch ([masked]) and we'll arrange it. Topics can range across the spectrum, from an explanation of optionals for the perplexed, a demo of something neat, to a problem that has you vexed, or that you've solved and you think others can learn from.
Between sections there'll be time for discussion, and getting to know each other.
We ask that after registering your attendance here, you take a moment to sign in as attending on our venue's event page (https://www.skillsmatter.com/meetups/6519-swift-london-talks). They kindly provide us with the space for free, including staff, setup and hot drinks. To return the favour, that's the little they ask.
THIS EVENT, WE PRESENT
An Introduction to Functional Programming: Haskell
(with one eye on the future evolution of Swift)
Our main talk of the evening will be a "hold on to your hats!" affair, but well worth your attention. Understanding the strengths of functional programming, and learning to think in a functional way, will be an increasingly valuable skill for all Swift developers.
We'll be holding a short warmup talk immediately before, as a gentler way to introduce the ideas, and the motivation for presenting them.
Previously delivered at NSLondon 10 (http://www.meetup.com/NSLondon/events/189617862/) (go join them (http://www.meetup.com/NSLondon/join/) if you haven't already, they're very good).
Twitter @johannesweiss (https://www.twitter.com/johannesweiss)
Some background reading for before and after:
Learn You a Haskell for Great Good: A Beginner's Guide (http://learnyouahaskell.com/chapters)
by Miran Lipovača
Real World Haskell
by Bryan O'Sullivan, Don Stewart, and John Goerzen
Haskell in your browser
Functional Programming Fundamentals (http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1) (video series)
by Erik Meijer - wearing a great t-shirt
Beginning to Think Functionally in Swift
"An Introduction to an Introduction to Functional Programming"
A short presentation to prepare us for Johannes' main talk. Expect a brief on the functional mindset, including some practical use cases in Swift, delivered with an occasional hint of whimsy.
The main theme is functions as first class values - the "functional sauce" Swift adds to Object Orientated code, and how the two compare. There will also be a brief summary of Haskell concepts which are directly applicable to Swift, including optionals, strong typing, generics, and pattern matching. Some aspects of Haskell which can inspire better code, but won't be used as frequently (or won't be used in the same form), will be mentioned in passing. As a practical example, an imperative implementation of a simple problem, contrasted with a functional version of the same.
Switch Statements and Pattern Matching: powerful new ways to control the flow of your code.
In Swift, switch statements are introduced as "A switch statement considers a value and compares it against several possible matching patterns. It then executes an appropriate block of code, based on the first pattern that matches successfully."
Anyone used to using a C based language, such as Objective-C or C++, will know that the only form of 'matching' is with integer values. This essentially reduces a 'switch' statement to shorthand for a bloated if....else statement.
“Matching patterns" does not just mean other types such as doubles, strings and non integer enumerations. It means values within tuples, matching against ranges and even matching against additional conditions.
All of this functionality gives swift developers powerful new ways to control the flow of their code. One obvious use is to neaten complex table and collection views but that is not the only use.
This presentation will attempt to introduce this powerful language feature and detail some interesting uses which have arisen in the early days of the language. It will not contain a break!
Twitter @LiamFlynn (https://twitter.com/LiamFlynn)
Simon Gladman, a long time Flex and ActionScript developer, discusses moving from AS3 to Swift, introduces laying out and wiring up UI components in Xcode and takes a quick look at physics with Sprite Kit and threading with NSOperation.
Blog http://flexmonkey.blogspot.co.uk (http://flexmonkey.blogspot.co.uk/)
How to subclass a SKSpriteNode
A popular way to learn Swift is to create a SpriteKit based project. This is the route I took. Sub-classing is at the heart of Object Orientated Programming and Swift being a OO language (amongst other types) supports this. However, it is surprisingly hard to sub-class SKSpriteNode and retain use of its most convenient 'convenience initializer': (SKSpriteNode(imageNode)). This short talk explores this, and provides some workarounds.
As per usual, the doors are open from 6pm. Please feel free to come down early, grab a cup of tea or coffee from the back, and say hello to each other. If you arrive late don't worry, you're welcome to slip in the back.
The best discussions often happen in the pub afterwards. If you gather outside the venue after the talks we'll walk you over. It's literally 3 minutes round the corner.
Our local: The Slaughtered Lamb (http://www.theslaughteredlambpub.com) | 34-35 Great Sutton Street | Route map (https://www.google.com/maps/dir/Skills+Matter,+116-120+Goswell+Rd,+London+EC1V+7DP,+United+Kingdom/The+Slaughtered+Lamb,+34-35+Great+Sutton+St,+London+EC1V+0DX,+United+Kingdomfirstname.lastname@example.org,-0.1002514,18z/data=!4m14!4m13!1m5!1m1!1s0x48761b574f527be3:0x5cbcad177df0b525!2m2!1d-0.099096!2d51.524559!1m5!1m1!1s0x48761b50dc84cbb3:0x11b720e00abc3577!2m2!1d-0.101144!2d51.523307!3e2).
The event is held at Skills Matter (https://skillsmatter.com/locations/96-skills-matter-exchange) |[masked] Goswell Road | Map (https://www.google.com/maps/place/Skills+Matteremail@example.com,-0.099142,15z/data=!4m2!3m1!1s0x48761b574f527be3:0x5cbcad177df0b525).
CODE OF CONDUCT
While at the meetup (and hopefully in your life outside), all attendees are asked to behave respectfully in accordance with our CODE OF CONDUCT (http://www.meetup.com/swiftlondon/pages/Code_of_Conduct_%7C_Safe_Spaces/). In short, be nice, be respectful, consider others.