Topics

Rui Peres
Lead iOS Engineer at Babylon Health, UK

iOS Architectural Approaches

All three approaches are being used at babylon health with great success. None of them are tied up to a specific programming paradigm (e.g. Functional Reactive Programming), so you can easily make this work, independently of the approach you use in your own apps. Finally, this talk is not only for iOS devs: these ideas can easily be extended and applied to Android apps as well.

In this talk I will present three approaches for common problems in iOS Development:

  1. Handling Application Lifecycle.
  2. Defining UI Flows.
  3. Abstracting Analytics.

The goal of the talk, is for the audience to be able to pick up quick tips and apply them on their day to day development, by leveraging Swift's awesome features!

About speaker

Rui has been working as an iOS developer since 2010. Lately, at babylon health, he leads a team of 10 iOS developers, leaving less time to code, but with a new set of challenges. He's also an OSS and FRP evangelist and a core member of ReactiveCocoa and ReactiveSwift. He also spends a considerable amount of time exploring new programming languages, but not doing anything useful with them.
Vijaya Prakash Kandel
Software Engineer at Zalando, Germany

Monadic Computation in Swift. Why?

NSURLSession completion handler has 3 optional types giving us 8 permutations when all we care is either it failed or succeeded. Error handling is still neglected for the fact that Swift does not provide a construct that abstracts the rudimentary details of switch and conditionals. Most Objects and their associated methods are not composable.

Monadic Computation comes from Functional Programming which helps write composable functions while preserving failure context/side effects and provide better abstraction. Swift although not a functional programming language, can express monadic computations elegantly and can solve all the above-mentioned problems.

In the talk, I will show why do we need Monadic Computations and how we can implement in Swift. I will share real use case of monadic computations and how our team at Zalando is using this concept. There will be a short live coding to demonstrate that Monadic Computation can be expressed elegantly in Swift.

About speaker

Vijaya (BJ) is a passionate iOS Software Engineer working at Zalando SE. He does Swift at day, Haskell at evening. He believes functional programming is the way to move ahead. He writes blogs and articles on various ways to write effective programs. He talks at meetups and conduct workshop on new ideas.
Enrique López Mañas
Google Developer Expert (GDE), Germany

TensorFlow for Mobile Platforms

There is a lot of Hype with ML and AI lately, and TensorFlow is the framework of choice from Google. But as a Mobile Developer you might have asked yourself, how can I benefit from it? In this talk, you will learn your first steps into the fascinating ML world for mobile.

During this talk you will learn how to set up TensorFlow for Android, and how to perform some initial operations with it:

  • Classifying example
  • Detection example
  • Analyzing example

 

About speaker

Enrique López Mañas is a Google Developer Expert and independent IT consultant. He has been working with mobile technologies and learning from them since 2007. He is an avid contributor to the open source community and a FLOSS (Free Libre Open Source Software) kind of guy, being among the top 10 open source Java contributors in Germany. He is a part of the Google LaunchPad accelerator, where he participates in Google global initiatives to influence hundreds of the best startups from all around the globe. He is also a big data and machine learning aficionado.

In his free time he rides his bike, takes pictures, and travels until exhaustion. He also writes literature and enjoys all kinds of arts. He likes to write about himself in third person. You can follow him on Twitter (@eenriquelopez) to stay updated on his latest movements.

Andy Dyer
Android Developer at Zalando, Germany.

React Native: Is It Worth It?

When new technologies start gaining momentum in the Android community, the pragmatic (or lazy) among us eventually have to ask ourselves, “Is it worth it?” After the initial arrival and departure of the hype train, some of these become trusted tools we use in almost every app. Think RxJava and Dagger.

React Native may be on its way to earning a place in the same club. Once we get past the fact that JavaScript on Android and HTML in JavaScript seem pretty damn weird at first, there’s a lot to like. Seeing your changes on a device almost instantly is a love-at-first-sight kind of thing. And rethinking your app architecture as a series of actions, state changes, and UI render phases can eliminate a surprising number of silly bugs.

A dive into every new technology starts with the flashy “type these commands and run your ‘Hello World’ app” tutorial. This is not that kind of talk. Instead, I’ll recap my experience digging into React Native for real world use. From integrating RN code into an existing Java/Kotlin app to dealing with the kind of problems they never mention in the README, I’ll cover what you need to know to decide if React Native is really worth your time.

About speaker

Andy recently moved to Berlin from Houston, Texas to join the Android team at Zalando. An Android developer since Froyo, he’s currently focused on learning Kotlin and React Native. When not writing code, he can be found listening to records, practicing his German, and proselytizing the merits of craft beer & meticulously prepared coffee.
Enrique López Mañas
Google Developer Expert (GDE), Germany

From permanent to contract

Enrique Lopez Manas, GDE and a transitioner among all those categories, will share his experience in this world and give you some tips if you are opting for changing your career. You will learn about the bright and not so bright side of contracting, the perks you can expect in each category, and especially being able to fire questions to a person that has been in the transition among both fields.

What are the differences between being permanent and contract? What are the perks of each position? How can you make a transition between them? Which fits me better? If you ever asked those questions to yourself, you will find some answers in this talk. 

About speaker

Enrique López Mañas is a Google Developer Expert and independent IT consultant. He has been working with mobile technologies and learning from them since 2007. He is an avid contributor to the open source community and a FLOSS (Free Libre Open Source Software) kind of guy, being among the top 10 open source Java contributors in Germany. He is a part of the Google LaunchPad accelerator, where he participates in Google global initiatives to influence hundreds of the best startups from all around the globe. He is also a big data and machine learning aficionado.

In his free time he rides his bike, takes pictures, and travels until exhaustion. He also writes literature and enjoys all kinds of arts. He likes to write about himself in third person. You can follow him on Twitter (@eenriquelopez) to stay updated on his latest movements.

David Rodrigues
Senior iOS Engineer at Babylon Health, UK

FormsKit: reactive forms driven by state

State can be a tricky thing in every system specially when’s manipulated in different places, causes some side-effects, … On mobile apps, it can be especially challenging when we have highly dynamic user interfaces driven by some state(s) and a great example of that are forms where is frequent to see some collapsable rows or entire sections being inserted, removed or even both. Manually managing all of that can be quite complex and most of the times ends up not being sufficiently generic to be reused by every form which increases the effort of not only developing but also maintaining each form within an app. And if that was not enough, there's also the question of reading and understanding precisely the structure of a single form which most of the times are imperative and composed by many components, e.g. delegates, data sources, ..., making it even more hard to maintain and modify. FormsKit born as a need to manage a reasonable number of forms in a declarative and composable way through a descriptive state.

FormsKit follows a React-based approach to render and manage a form through a virtual representation which is completely driven by any change in a single core state. This enables deriving an interface for a very specific state instead of patching it manually which requires knowledge of the current state of the form, which can actually be many combinations, to then determine the correspondent transition to reflect the new state. FRP plays an essential role as the base to track any change in the core state and consequently triggering a new form's representation plus notify those changes as a stream of values. 

Despite the focus in FormsKit framework, the main goal is to demonstrate how we should change our way of thinking to derive interfaces, and even other states, through a single state instead of doing the other way around, avoiding manual and localised changes which are not easy to understand, maintain and finally test.

About speaker

David has been working in iOS apps (and sometimes frameworks) in the past 5 years and dived deeply in Swift and FRP in the past 2.5 years being a strong evangelist of both since then. He strongly believes in open source and is also passionate about backend systems. He enjoys not only coding but also teach and discuss different concepts and ideas.
James Thomas
Developer Advocate at IBM

Serverless Swift with Apache OpenWhisk

Do you want to build backend applications using Swift but don't want to manage computing infrastructure to run those applications in the cloud? Enter serverless cloud platforms… 

These services allow developers to push code, rather than VMs, into the cloud. The platforms allow you to connect external event sources like API requests or message queues to functions in your code. As events occur, your code is instantiated and executed to process each request. Developers are only billed for the milliseconds needed to process each request.

In this session, developers will learn how to build Swift microservices using modern “serverless” cloud platforms. We’ll look at common challenges (and solutions) to building applications using “serverless” stacks. Exploring emerging “serverless” design patterns will give developers the knowledge to build application architectures using these new platforms.

My talk will be split into three sections:

  1. An introduction as the background of serverless computing platforms. What are they, why would you use them and what benefits do they bring over other cloud technologies likes IaaS, Containers or Paas. 
  2. The middle is then a "live coding" session using one of these platforms to build a real Swift backend application (serverless apis to create a slackbot) to show developers the techniques and skills for building serverless applications through a real world demonstration. I'll build the application, deploy to the cloud and get it running in under twenty minutes from scratch.
  3. Finally, I finish looking at the challenges of serverless development today. What are the difficulties? Monitoring, debugging, etc.... and introduce some workarounds or solutions. 

 

About speaker

James is a “Developer Advocate” for IBM, helping developers build scalable applications on IBM's cloud platform. Having accepted a summer-long internship with IBM as “something to do” before starting his post-graduate degree, James is still here eight years later. Managing to find his way into the “Emerging Technologies” division, James has been able to work on everything from the largest retail banking site in Europe, been a leading open-source developer for a JavaScript toolkit before working on the first commercial system for IBM Watson as the UI Technical Lead.
Danny Preussler
Android Lead at Viacom, Germany

MVVM with Databinding and Google's new ViewModel

At Google I/O we got the Android architecture components. One of its most interesting concepts in there is the new ViewModel.

This sounds like a perfect fit into the MVVM (Model View ViewModel) architecture. What’s the idea of MVVM? How does it fit into the new architecture components? And what's the role of Android databinding here?

Let’s look into those concepts and what Google adds to it. Not only from high level, let’s look at the actual code!
 

About speaker

Danny is in charge of Android development at Viacom in Berlin. Before that he worked for companies like Groupon, eBay and Alcatel. His mobile career started long before any iPhone with Java ME and Blackberry applications. Danny writes and talks about mobile development and testing regularly and is a Google Developer expert for Android.