The following talks have been confirmed by our guest speakers. More will be added as speakers confirm the content of their sessions. For more information on any speaker please select their Name.
All of the guest speakers at CodeMobile have worked in the tech industry and are able to provide real insight into current technologies being used by developers, agencies and corporations to create cutting edge apps for mobile devices.
Reactive programming on Android – why and how
Reactive is becoming more and more used on Android, but is it right for you? This talk sheds some light on why reactive programming is becoming so popular and what the pros and cons are of using it. Sasa will also explore the framework options, possible architectures and compare it all to the normal Android framework.
How to Minimize Power Consumption and Maximize Performance
As mobile apps get more advanced and move into areas like virtual reality and 360 video, performance, system latency and thermal behavior become even more important. Battery life is the most important thing to consumers, yet most apps waste power because they do not manage the processor, cellular radio and Wi-Fi network properly. Many apps on Google Play also have performance issues that are easy to address using free software. Learn how to determine whether your app has power or performance problems in only 60 seconds. This session will also teach you how to resolve common power and performance-related problems, so your app performs at its best.
Swift on the backend
Apple surprised the whole community when they open sourced Swift late in 2015. Not necessarily by the fact that they did open source the language, but rather by the way it was done. Swift is now truly open, with its code on Github and a vibrant community steering the course of the language. Being open source and available on Linux means Swift enters new territories on the server. This talk shows you how easily you can get up and running with Swift on the backend so you can call yourself a Full-stack Swifter.
Insights into the Current State of Mobile Development
Don’t reinvent the wheel where you don’t need to! We’ve gathered data from thousands mobile development teams around the world to learn the real way teams are building their iOS and Android apps.
In this talk, we’ll examine the current state of mobile development by mapping the trends found across thousands of apps to see how they’re built, which tools are used, and the anatomy of the team developing Android and iOS apps.
Swift On The Server – Be Your Own Backend Developer
With Swift now available on Linux, the ability to write software on the server means that app backends can now be written in the same language as their iOS native front ends. In October, Apple announced the formation of the Server API Work Group to provide a standard Swift API to server functions.
This talk will cover the basics of writing server side code in Swift and the closer integration with iOS native apps that this allows.
The End of the App Developer
Apple is making it easier and easier for anyone to become an app developer. Launching ‘Swift Playground’ this year for kids can be seen as them pulling the rug from beneath all the great app developers in the world. Now, even kids can code. Udemy can tech you Android development, you can learn in one week what app developers have spent years perfecting.
‘The end of the app developer’ explores where the app development world is heading, what we should be worried about as app developers and what we can do to stay relevant. Is this the end of the app developer as we know it?
Putting Android and iOS on the Same Wavelength
For products available on the Web, iOS and Android, there have been a variety of approaches over the years aimed at reducing development time and the duplication of work.
In this talk, we will look at accelerating cross platform development with serverless microservices, specifically those deployed on AWS Lambda. We will cover the motivations, developer experience, benefits, and drawbacks to this approach. We will also cover the continuous integration and delivery, as well as what we feel are the most exciting aspects for future application of these services.
Setting Sail for Adventure – Making Playtime Island
The majority of organisations engaged in software development these days utilise some form of Agile practice however the details can vary between organisations and even between teams within the same organisation. Here, we cover how Agile practices and processes were employed by the BBC Children’s Apps Team to deliver value to the audience over the course of the development of CBeebies Playtime Island.
How to Build & Market App Store Hits as an Indie Developer
This talk will explore how to build and market global App Store hits as self funded, indie developer. The talk will look at both the technologies and the product development and marketing strategies Apperto have used to build products and gain traction within the App Store.
Static Analysis for iOS
At Facebook, new code is being produced and shipped fast in a big code base shared by hundreds of engineers. Thus, we use a number of techniques to ensure good quality of code in this environment, such as unit and end-to-end tests and static analysis. Static analysis is a technique able to detect software errors statically, before a product is actually shipped, and without running the code. In this talk we describe the Infer Static Analyzer, an open source tool developed at Facebook that can find complex bugs such as Null Dereferences and Memory Leaks. It can also run fast in the CI, so that we can catch and fix bugs before code gets committed.
Security and Privacy in iOS Development
Data breaches are regularly in the news nowadays, and security and privacy issues are more important than ever. Apple’s high-profile stance on this has helped them gain even more consumer trust in their products. As iOS Developers aiming to maintain that trust, we can’t afford to ignore the security implications of the decisions we make about our apps. But how do you make sure that your app does the best for its users, is as secure as possible and still works as you intended? This talk will go through the basics of threat modelling to identify vulnerabilities in your app, the security APIs provided by Apple, and overall best practices for the privacy of users.
With great power comes great responsibility:
Mobile Development and The Law
Consumers who use location-based services and mobile apps have a right to assume that their privacy will be respected and their data will be responsibly curated. To meet those expectations, developers must create a responsible and legally compliant development process. This talk will teach you how to build a healthy workflow for developing with location data by using best practice frameworks and providing users with privacy-friendly options. You will also gain insight into your legal compliance requirements under UK and EU laws, and we will discuss the shifting data protection and privacy landscape in light of Brexit.
You should not become a developer
A software developer is going to the store and her partner tells her, “Buy a bottle of milk, and if there are eggs, buy a dozen.” So she goes, buys everything, and drives back to the house. Upon arrival, her partner angrily asks her, “Why did you get 13 bottles of milk?” The programmer says, “There were eggs!”
Joke aside, being a developer has its own technical and mental challenges: technology obsolescence, depression, loneliness, self-doubt, bad health – to name just a few.
Drawing from my 20 years experience in the field, I’m trying to help people pick the right answers to various questions starting from “what technology should I be using” to “what are the best way to meet fellow developers”, “what is a good business model for my app/startup” and “how do I stay relevant in this mad changing world”.
Sending Rich and Interactive Messages With iMessage App Extensions.
Messaging apps are huge and getting huger. With WhatsApp, WeChat and Facebook Messenger users in the millions or billions, it’s clear that messaging is not a fad. So how can a developer take advantage of this growth? Starting a new messaging app is probably out of the question. Thankfully, Apple has introduced iMessage app extensions in iOS 10. Learn how to use iMessage to let your users send rich, interactive messages, and learn how to take advantage of the network effects that iMessage app extensions allow.
Introduction to Amazon Web Services for Mobile Developers
This talk is aimed at both iOS and Android developers who want to get an overview of the Amazon Web services ecosystem. It will provide a high-level view of some of the key AWS services including EC2, S3, DynamoDB, and Cognito. The making of a simple cross-platform mobile app will be discussed in the session that saves pictures to DynamoDB and uses Amazon Cognito for identity management. Source code for both the iOS and Android version of the App will be available to download.
The talk will be presented by Abhishek Mishra, who is a London based consultant specialising in the cloud computing and mobility space. His clients include Barclays, Centrica, Expedia, and Sky, He is the author of several books including: iPhone and iPad App 24 Hour Trainer, Swift iOS – 24 Hour Trainer, and AWS for Mobile developers.
Firebase: From Zero to Hero?
Developer Advocate at Google working on Firebase and Google Maps. I’m a regular on the Google Developers YouTube channels with videos on mobile development, and host of the popular ‘Coffee with a Googler’ show. Author of more computer programming books than I can count! In my spare time I’m a published Sci-Fi Author, produced screenwriter, and also writing the official continuation comics of the Stargate TV series for MGM. Ergo: I’m a geek.
The State of Security Banking Apps in Poland
In the second half of 2016 we reviewed 20 Android banking applications, released and maintained by banks operating in Poland. We found a number of problems, ranging from minor errors in APK packaging, through data loading via insecure connection, lack of certificate pinning, exported activities, debug code present in apps, leak of session token, up to session takeover and user data exposure. Presentation will cover observed vulnerabilities. I will also tell you about the process of contacting bank’s security departments and responsible disclosing of sensitive information. If time allows, we will investigate implications of using 3rd party services like Crashlytics or Facebook SDK.
As ViewControllers have the tendency to become massive over time, we’re looking for patterns to move responsibilities to other objects. Using Coordinators is one way to handle this problem. In this live coding session we we explore a protocol oriented way of implementing coordinators, using some new features of Swift 3.
Because this session will be performed completely in Swift Playgrounds on an iPad, it will also show that, while Playgrounds are fun to play around with, they are definitely more then a toy.
Niels Van Hoorn
Attacking Android Applications
In this talk we aim at showing how easy it is to reverse engineer an Android application. We show how to perform static analysis on an application. Secondly, we illustrate how applications are attacked dynamically in order to investigate or alter the program flow of the application. Attendees walk away with tools and information to perform basic pentesting techniques on their own applications.
The Rules of Design for Developers
Some of us are spoiled with a team of rockstar programmers featuring world-class designers. Some of us are not so lucky and will have to make do with what we’ve got – a bunch of programmers pretending to be multitalented visual artists or UI designers. There is a lot of design literature available on topics such as interface design, typography, and graphic design but it’s largely ambiguous and somewhat difficult to get a grip of.
This talk aims to save those unlucky teams who are struggling with little to no access to professional designers by presenting the (tongue-in-cheek) Rules of Design for Developers! They are rules that make sense even to a simple programmer like myself – rules of thumb that most often lead to a pretty good outcome.
I just hacked your app
Android security is nowhere near where it should be. I have been able to hack and get sensitive information from a few different apps and I’m just an amateur hacker at best.
Whether it’s because we are exposing information when making HTTP requests to our backend servers or because we’re simply storing things we shouldn’t in our apps, it’s easy to forget mobile devices aren’t as safe as we think they are.
In this session we will explore a number of ways an Android app can be exploited and most importantly methods that we can use to avoid these attacks.
We will finish by looking at common techniques that will help you protect sensitive information within your application by adding tampering detection and making sure every external communication request is made securely.
The Keys to User Onboarding
Have you ever loaded an app on your phone, not had a clue what to do with it, and chucked it? That’s what other users will do to your app if you don’t get onboarding right.
This talk covers the best ways to turn new users of your app into enthusiastic experts without boring them to death (another way to get your app chucked off their phone).
Creating Cross-platform mobile apps with Ionic 2
This talk will focus on how Ionic fits into the Hybrid Stack and the Architecture of an Ionic 2 Application. An emphasis will be placed upon when to develop Hybrid Applications and how to use various Ionic 2 UI Component’s in development. This will include using Ionic’s Push/Pop Navigation system, using the native capabilities of the device and also using Ionic native and Cordova Plugins, the theming system of Ionic 2 and utilising Ionic CLI.
Tests ensure the quality of your code,
but what ensures the quality of your tests?
This talk will introduce the concepts of Mutation Testing, applied to Android. It will describes the theory behind this new tool, and give a few examples on how it can help write better tests.
Xavier F. Gouchet
Auto Layout can sometimes seem like a black box, performing magic to create layouts, which can make it hard to understand, use, and debug your layouts. This talk will help demystify Auto Layout, showing you how calculations are performed, and how things such as priorities work.
Android Design 101
Android Design 101: An overview of design patterns and principles for Android mobile devices. I’ll have a quick introduction to Material Design, compare Android and iOS design philosophies, and give a summary of some Android design do’s and don’t’s. I’ll also show some quick examples of my previous work on both platforms.
Android Testing Support Library – The Nitty Gritty
8 years since Android’s been released we finally have a proper Google-supported solution for testing in the Testing Support Library. We’ll go through the various stages of it, explore it’s (not so) hidden features and learn how to use it to build better apps. We will cover things such as (breaking the) test Rules, (outrunning the) test Runners and how to make most of tools such as Espresso & the Cloud Test Lab.
Implementing Full-Text Search
“Search” is one of those things that our users take for granted but is surprisingly difficult to get right. In this talk we’ll dig into the essential concepts in implementing a proper full-text search on the device without server-side or cloud-based Search APIs, highlighting the challenges such as sorting by relevancy, term and column boosting, stemming and lemmatisation, and the brutality of compound words. Along the way we’ll look at implementing full-text search with an embedded search engine as well as with SQLite, and touch on integrating your data with Core Spotlight’s index on iOS.
Make apps like Door Handles: UX101
As developers we should be proud of our work; that feeling when we let something loose in the wild is positively euphoric. Yet when users start to explore apps things so often go wrong; they can’t find a feature, or they think that the really cool thing that took a month to build is difficult to use. Worst of all often we don’t even get to find out that our users are frustrated until our app ratings begin to crumble; by this time its often to late.
In this talk we will look at the art of making mobile UX simple, straight forward and elegant; we will explore examples of brilliant UX and will look at UX that could definitely learn lessons from the simplicity of the Door handle.
User Experience design is something that should be at the heart of the product life cycle and should inform every development decision. This talk is designed to help you avoid making UX mistakes and ensure that your app always surprises and delights your users.
Visual Consistency, why is it important? How do you achieve it in a large codebase?
The talk will focus primarily on concepts of how you can use Themes, Styles in your code base to have consistent UI across the application and why it is important for any app to have a consistent UI. The talk will also focus on how we can use these techniques in refactoring huge code bases and what we have recently done at Instagram to achieve this. I will be showing snippets of code throughout the talk.
The unintended use of mobile phones built-in features as research and sensing tools
Eiman will be discussing her work in relation to Mobile Development research. Eiman was one of the first academics who used mobile phones for research (when Nokia & Symbian used to dominate the mobile development world).