Using the Elm Architecture in Swift

schedule Sep 21st 11:20 AM - 12:05 PM place Red Room people 48 Attending

Elm, for a long time the flag bearer of Functional Reactive Programming on the web, recently switched to a simpler pure functional architecture, citing 'ease of use'. Those of us that have worked on complex RxSwift/ReactiveCocoa apps can sympathise with this - using FRP injudiciously in your app can make the code difficult to understand and near impossible for new developers to pick up.

So are we able to apply some of the techniques and patterns from Elm into Swift iOS apps? It turns out the Elm architecture is a really great fit for Swift - it allows us to:

  • reserve our FRP hammer for the use cases that make the most sense
  • separate out a simple, consistent, and highly testable pure functional core, and
  • provide a flexible, yet easily understood & applied set of architectural building blocks.

This session will cover the basics of implementing and using an Elm-style architecture in a Swift app, will include lessons learnt in a real-world implementation, pitfalls/benefits, and implementation considerations should you adopt the approach in your own app.

 
2 favorite thumb_down thumb_up 0 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

Slideshow, bad puns, and a small coding demo. May involve some gratuitous criticism of JavaScript.

Learning Outcome

Good working knowledge of the state management aspects of the Elm Architecture, and how to implement it in a Swift app.

Target Audience

Swift developers & mobile developers who have battled with complexity using Rx

schedule Submitted 3 months ago

Comments Subscribe to Comments

comment Comment on this Proposal

  • Liked Aaron Morton
    keyboard_arrow_down

    Aaron Morton - Scalable IOT with Apache Cassandra

    Aaron Morton
    Aaron Morton
    Co-Founder & CEO
    The Last Pickle
    schedule 3 months ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    IOT and Event Based systems can process huge volumes of data. Which typically needs to be stored and read in near real time for event processing, in addition to being read in bulk to feed data hungry learning systems. Apache Cassandra provides a high performance, scalable, and fault tolerant database platform with excellent support for time series data models typically seen in IOT systems. It's millisecond (or better) latency can support systems that react to events in real time, while scalable bulk reads via batch processing systems such as Apache Hadoop and Apache Spark can support learning applications. These features, and more, make Cassandra an ideal persistence platform for modern data intensive, event driven, systems.

    In this talk Aaron Morton, CEO at The Last Pickle, will discuss lessons learned using Cassandra for IOT systems. He will explain how Cassandra fits into the modern technology landscape and dive into data modelling for common IOT use cases, capacity planning for huge data loads, tuning for high performance, and integration with other data driven systems. Whether starting a new project, or deep into the weeds on an existing system, attendees will leave will leave with an understanding of how Apache Cassandra can help build robust infrastructure for IOT systems.

  • Liked Larene Le Gassick
    keyboard_arrow_down

    Larene Le Gassick - Creating Inclusive Apps with React Native

    Larene Le Gassick
    Larene Le Gassick
    Software Developer
    ThoughtWorks
    schedule 3 months ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    Creating inclusive and accessible apps is easy using React Native! Javascript developers can have a working app on their phone in less than an hour. Join me to see a working demo of how to plan, develop, and test for accessibility in the mobile space.

    I will also be talking about resources and guidelines you can use and share with your organisation to develop apps for everyone - including what the bare minimum looks like to help you prioritise your requirements!

  • Liked Anna Harrison
    keyboard_arrow_down

    Anna Harrison - Decoding Design: Because You Are Not "Just Like Your User"

    Anna Harrison
    Anna Harrison
    Director of UX
    Ephox + TinyMCE
    schedule 4 months ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    At this very moment, there are over 5 billion people tapping and swiping on their mobile phones in every corner of our planet. There are people in Sri Lanka tapping and swiping, South-Africa, Ecuador and Tanzania. The Albanias and Swedes, also busy tapping and swiping.

    As a technologist, your aim in life is to capture as many of these tappers and swipers as you can. Given that there are only about 22 million developers in the world, it is likely that the tappers and swipers will not at all be just like you. Building a product for people like you, therefore, greatly limits the size of your total addressable market - which in short, is really bad business.

    We know that startups co-founded by designers are far more likely to succeed. But why is this? What exactly do these mysterious Design Creatures do, and more importantly, what can you learn from them to help your product win the tapping and swiping game?

    Join Anna for an entertaining, practical and example packed presentation that will absolutely change the way you view the role of design in the making of your next product.

  • Liked Christopher Biggs
    keyboard_arrow_down

    Christopher Biggs - Devops For Dishwashers - Bringing Grown-Up Practices to the Internet of Things

    Christopher Biggs
    Christopher Biggs
    Director
    Accelerando Consulting
    schedule 5 months ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    The Internet of Things is undeniably here. In the last year we have heard tell of of security cameras, dishwashers and even ovens roaming the internet unsupervised.

    As a consultant and writer about the Internet of Things, I have worked to bring my experience from 20 years in manufacturing and internet security to the IoT world. This presentation will cover the tools and techniques I use to build secure, reliable and rapidly updatable IoT devices.

    The techniques covered are applicable to both the simplest embedded devices with no general-purpose OS, and more powerful devices running Linux or Windows.

  • Liked Andrew Harvey
    keyboard_arrow_down

    Andrew Harvey - They're Good Dogs: A Gentle Introduction to Machine Learning with CoreML and Vision

    Andrew Harvey
    Andrew Harvey
    Coder & Tinkerer
    ¯\_(ツ)_/¯
    schedule 3 months ago
    Sold Out!
    45 Mins
    Talk
    Intermediate

    At WWDC this year, Apple announced their CoreML and Vision frameworks. These allow you do easily implement machine learning models inside your app, running on the GPU on an iPhone. Suddenly a world of machine learning is possible in ways that it wasn't before.

    In this talk, you'll see a real world example written in just hours which implements a freely available object classification model to find out who is a good dog. Silly as this sounds, it shows the power now at our disposal.

    We’ll look at what you need to do to build a simple app, and then dig into some of the innards of machine learning to see what we need to do to create something really useful.

  • Liked Andrew Kelly
    keyboard_arrow_down

    Andrew Kelly - ConstraintLayout - One Layout to Rule them All.

    30 Mins
    Demonstration
    Intermediate

    This session will give a practical demonstration of how to convert an existing deeply nested view hierarchy for a typical Android app into a more efficient (in terms of measure and layout performance) hierarchy using ConstraintLayout. I will also show how you can use the features of the ConstraintLayout library to create view hierarchies that enable rich animations with little effort.

  • Liked Tim Sawtell
    keyboard_arrow_down

    Tim Sawtell / Damon Smith / Tyrone Trevorrow - Building React Web and React-Native Apps with Shared Code

    45 Mins
    Case Study
    Intermediate

    Diving into the feasibility of using a single code base for generating multiple front-end applications.

    We'll discuss using React and React-Native for building apps that provide a consistent experience across native, mobile and desktop web.

    Using React and React-Native as the UI layer upon a shared JavaScript core codebase can greatly improve your organisation's delivery of new features to customers.

    We'll talk about our migration strategy for the new apps replacing our existing apps, piece by piece. Not slowing down our continuous release of features to customers while replace the apps.

  • Liked Sam Ritchie
    keyboard_arrow_down

    Sam Ritchie - Flying Solo: Lifehack Your Way to a Pants-Optional Workplace

    Sam Ritchie
    Sam Ritchie
    Chief Codesplicer
    Codesplice
    schedule 3 months ago
    Sold Out!
    30 Mins
    Case Study
    Intermediate

    Many developers harbour the dream of throwing off the shackles of corporate serfdom and experiencing the glorious freedom of self-employment. So is the grass really greener on the other side? As a developer who took the plunge a few years ago, I can offer some honest feedback and practical advice on things like:

    • what to consider when assessing whether self-employment is right for you.
    • the different software development business models, the pros & cons of each.
    • setting up a business/company - which structure is best.
    • knowing when to quit your job.
    • pricing yourself correctly.
    • sales & marketing - critical activity or soul destroying waste of effort?
    • why on earth can’t people just pay you on time.
    • what to say to friends and relatives who think you don’t do anything all day.

    And generally everything else that I know now, that I wish I knew then.