Creating a single microservice is a well understood problem. Creating a cluster of load-balanced microservices that are resilient and self-healing is not so easy. Managing that cluster with rollouts and rollbacks, scaling individual services on demand, securely sharing secrets and configuration among services is even harder. Kubernetes, an open-source container management system, can help with this. In this talk, we will start with a simple microservice, containerize it using Docker, and scale it to a cluster of resilient microservices managed by Kubernetes. Along the way, we will learn what makes Kubernetes a great system for automating deployment, operations, and scaling of containerized applications.
An increasing number of social media apps such as Instagram, Snapchat and Messenger are using video features. With modern Android devices having enough processing power to run video processing algorithms locally, there's no need to send videos through expensive internet bandwidth to be processed on the backend. Overlays, transcoding and cropping are just a few of the challenges you face when working with video on-device. In this talk I will go through my experience experimenting with built-in as well as third party libraries for video manipulation on Android. We will look at the benefits of two leading media processing libraries, and how you can leverage them to enhance Android's native MediaCodec API to accomplish these tasks. You will walk away with a head start on how to tackle the most common challenges with videos on Android.
Exciting times for mixed reality enthusiasts. With many AR and VR platforms now available, we're witnessing the birth of a new medium. In many ways, this boom is similar to the personal computer revolution of the 70s and 80s. People are wondering: "Besides games, what are these gadgets good for, anyway?" In this session, we'll see how people are using mixed reality for social good. Then, we'll learn about the Android Thing, Ar.js and the Daydream VR platform. We'll see how you can use these and other platforms to build your own community projects.
Reactive Programming with RxJava has widely been adopted by both backend services and Android applications alike. Yet, the steep learning curve leaves many developers hesitant about adding it to their own Software tool belt. I was one such developer. Over the past two years, I’ve watched countless videos, read numerous blog posts and attended several conference talks on the subject. Yet, I often left each experience feeling only slightly more knowledgeable, but not quite empowered to start using RxJava in my apps. That’s not going to happen today!
In this talk, we’re going to cover the bare minimum concepts you need to grok, in order to start using RxJava today. In particular, we’re going to focus on:
* The 3 O’s: Observable, Observer and Operator
* The most common Operators: map(), flatMap(), and filter()
* Understanding those Marble Diagrams
* How Kotlin helps to simplify the code
Reactive Programming is not going away any time soon. It’s a powerful way to create asynchronous, event-based applications. It allows developers the ability to craft applications that can easily combine multiple network calls, gracefully handle failures, all while providing a snappy user experience. I want everyone to feel comfortable with the basic concepts of RxJava. Today can be your first step...
If you’ve always wanted to write native Android apps but have shied away from it because of Java, Eclipse, or because you’ve been told that native development is so much pain for so little payoff, this session is for you! It’s 2017, and Android development is different now. With a much better IDE, a more expressive programming language in Kotlin, and all sorts of libraries and tools that make this the best time to start building native Android apps.
Building the foundation and design of a website that is user friendly while being able to function on all devices.
Do your product owners, designers and the people that pay you understand what in the world your Espresso tests are doing and why they are valuable? You've spent so much time and effort writing these tests and your whole team deserves to get the most benefit out of them. In this talk you'll learn how to setup your Espresso tests to take programmatic screenshots, and leverage the Robot pattern of testing for clean, readable, and maintainable tests. You'll also learn guidelines on when it's appropriate to write Espresso tests instead of Robolectric or Unit tests, and how to leverage mock data to make your Espresso tests run with Tesla-like speed. I have architected the Espresso test setup for our Capital One Wallet Android team and helped execute our ongoing continuous integration efforts. We've seen a 4x+ speed improvement over Appium, have more maintainable tests, and now have visibility for anyone to look into our test coverage.
Kotlin does a lot for us in the way of reducing boilerplate. But what is it really doing? We will be inspecting some decompiled Kotlin to discover how it does its job. By looking underneath at how it handles data classes, lambdas, and delegation, we can better understand how the language executes what we write. If you're curious about the language, or already using it in production, you should walk away from this investigation with a deeper understanding of Kotlin, and some tools for continued exploration.
Building an instant app was not only a one-way win in terms of increased conversion rate, it came with great tech benefits as well: app modularization, architecture redesign, code cleanup, and new features integration such as Smart Lock and Pay with Google.
UI animations can be an incredible asset to the user experience, but the handoff between prototyping complex motion interactions to implementing them in code is not always the smoothest transition. That's what Google's new Material Motion library aims to solve. In this talk, we'll discuss how thinking about animations as reactive streams of data can make even the most complex animations easy to develop, and how Material Motion is bridging the gap between motion design and development for iOS, Android, and the web.
I built a chat bot to help customer service agents for a hackathon and a resource provider bot for the recent NASA Space Apps challenge and I found Firebase to be a great platform to leverage. In my talk, I'll start by highlighting popular bots in social media and chatting clients. I'll then go over the anatomy of bots for Slack and Twitter before leading into how Firebase Database and Firebase Functions can be leveraged to build a simple backend. I'll show off some code bits from Firebase Functions to demonstrate how easy it is to create an endpoint or read/update the database. That's the gist of it.
We are used to create 2D flat environments but we rarely had the experience of designing for the 3D world. For my talk, I will be covering my experiences with working with successful VR titles for commercial products such as Sylvania and insidious 3. There are many factors we learnt from user testing and consumer feedbacks. As a developer, we had to consistently making changes and updates to our softwares to adopt of the hardware platform changes.
Are you looking to build a cutting edge responsive web app? Instead of using heavy frameworks that take time to learn, maintain and replace, #UseThePlatform and leverage new web platform primitives to build a better web! You'll learn how the Polymer library is fundamentally different than other frameworks. You'll get to hear how Comcast is building its next generation single page apps for millions of customers using the latest browser APIs, Redux and Polymer's building block model. Find out how Comcast simplified its server architecture and development process - making it faster to add new features and easier to maintain. You'll walk away from this talk feeling motivated and empowered to simplify your architecture.
Sometimes your current production build (job/life) is stable and predictable. That's good but not very exciting. You want to be part of something that you're passionate about and truly enjoy! Use your spare time and weekends to run staging environments (side projects). Maybe this is building an innovative product or an open source project that you're particularly passionate about. It's the thing that you're testing and building on the side in a safe place to eventually deploy it as your production build. Many awesome opportunities and connections are created through side projects. Let's talk about ways to successfully build this staging environment in your life so when your ready we can deploy this side project to production!
One of the Android Architecture Components released at Google I|O 2017 was Room, Google's take on an object-relational mapping (ORM) engine. It offers a convenient, reactive API for working with SQLite or other SQLite-compliant databases (e.g., SQLCipher for Android). In this presentation, we will explore Room, both in terms of its basic integration into your app and some of the challenges and idiosyncrasies that it presents.
By now, we've all heard that the industry is moving towards an "AI first" vision where machine learning powered features like computer vision and natural language processing, drive innovations like autonomous driving, speech & object recognition, smart assistants and more. But what does this mean for developers? Do we need PhD-level expertise in data science? What tools & technologies should we master? Where is it useful and why should we care? In this talk, we'll look at machine learning through a pragmatic lens - learning what you need to get the current job done, then exploring paths you can follow to evolve those solutions as your expertise and requirements grow.
Angular has grown to become one of the most successful single page application frameworks. One of Angluar’s chief advantages is its ability to be unit tested. Imagine getting rid of deployment stress, a “code-and-pray” coding style and never-ending feature development. This talk is an introduction to the many benefits of unit testing.
We can build amazing apps with Angular and Node.js. But we can level-up our skills by using great tools like VS Code and Azure services. We'll demonstrate how to create an app with the MEAN.js stack, build it with the Angular CLI, deploy it with CI/CD and host it in the cloud. You'll walk out know how to deploy your apps to the cloud with confidence and consistency
Sandra Persing, Global Program Manager for DevRel Sponsorship & Events, Director at Women Who Code, and Co-Founder of DevRel Summit, spent 10 months on the road collaborating with global partners and local meetups, influential speakers and freshly minted contributors, to bring over 50 Developer Roadshow programs all around the world. Join us as she reflects about the early days designing the program, wins and fails along the way, and some of the best practices in this weird and wonderful industry called developer relations.
How to use your browser tools for debugging and hacking. Learn how to connect an iPhone and android devices for debugging from your localhost. Watch as I set break points and trouble shoot broken code.
A Star Wars themed talk on the opinions of a React developer turned Angular enthusiast. In a galaxy far, far away one React developer turns to the darkside and learns what it's like to have an arsenal of state-of-the-art weapons at her disposal. Let's take a journey into the darkside. I heard there were cookies.
It's no longer acceptable to have Enterprise apps that only work on desktop machines. Additionally, it's no longer OK for Enterprise web apps to be just functional on mobile. The productivity of your mobile users is key to your company's bottom line and your employee retention. In this talk, we'll explore how to build productive Enterprise mobile web app experiences with Angular Material and Angular Flex Layout.
At Google I/O we got the Android architecture components. One of its most interesting concepts is the new ViewModel. How does it work? How do I plug it into my app? Can I use it without any of the other components? Can I plug it into an existing MVVM or how would I build MVVM with Google's ViewModel? Let's do a deep dive into the topic
One of the most powerful features of Web Components is using Shadow DOM & CSS Custom properties to achieve actual code sharing among your style guides & pattern libraries with your website and web application code. No more developing design systems in isolation and struggling to have design updates applied to the actual development code. The code you write in your Web Components is both the living pattern library and the code your components use! In this talk you'll learn the specifics of working with Polymer, the most popular Web Components library, to build your design system in a way that can be used across any web-enabled device. We'll cover best practices for working with CSS in Polymer to ensure design and accessibility needs are met. We'll also demonstrate the best ways to deal with the limitations of the Shadow DOM & CSS Custom Property shims to support older browsers.
Building embedded products for IoT requires a wide range of disciplines and often includes infrastructure and process that may seem out of reach for companies developing products for the long tail of the market. Android Things is focused on enabling Android developers to leverage existing skills, while also providing the hardware support and cloud infrastructure necessary to move from prototype to sustainable production. In this session, we will discuss how to get started with Android Things development and build apps that integrate with Google's cloud offerings for enterprise IoT and the smart home.
Let's take a look at how promising Flutter looks to be by implementing a conference app. We'll first take a look at Dart, see its similarities & differences compared to Java. Then take a look at what it takes to write an app with one codebase for Android & iOS. Finally we'll pull our conference data into our app using Firebase as our datasource.
Shown with the launch of popular Android games, applications need to prepare for all vectors of attack to stay ahead of the curve of attackers. In this talk we will look into some common methods applications take to slow attackers while at the same time looking into methods attackers use to unravel the inner workings of an application. This talk will not be recorded and slides will not be made available.
The myth of attackers breaking through layers of firewalls or decoding encryption with their smartphones makes for great movies, but poor real world examples. In the majority of cases, attackers go for easy targets: web frameworks with security vulnerabilities, out of date systems, administration pages open to the Internet with guessable passwords or security credentials mistakenly leaked in open source code are all popular candidates. These issues can be easily avoided by adopting a set of elementary security practices, a baseline for security, and making sure everything complies with it. In this talk, we will share with the audience the tools and best practices developed at Mozilla to safely run websites and services online. We will cover infrastructure and application security, tightly integrated with DevOps practices, and discuss ways to improve engineering standards with very minimal overhead. During the talk, we will cover common attacks against web applications, how to protect against them, and tests your controls with the Mozilla Observatory. We will discuss elementary rules to grant access to your infrastructure and your development environments. We will also touch on advanced topics, such as log analysis and fraud detection. This is a beginner talk, for developers and operators with an interest in web security. We will explain core concepts and share pointers for the audience to get started and continue their research long after the talk.
Hands-free is the future of Internet services due to the Artificial Intelligence (AI) discipline of natural language processing. Google Assistant, released in 2016, realizes the promise of voice as a more natural and frictionless way to interact with technology, bringing the hands-free future to present day. Although not the first product of its type on the market, Google Assistant outshines its competitors. During this talk, learn how to interact with Google Assistant and the steps required to teach this AI to become smarter. This talk explores the creation of Actions and the API.AI platform by peaking under the covers of an existing Action. Attendees will hear from a developer's point of view, the major differences in development and implementation between Google Assistant and its competitors. After this talk, attendees will be better prepared to build their own Actions and will truly understand why Google Assistant has the entire world at its fingertips.
ConstraintLayout, which was first introduced as an alpha-level feature at last year's I/O has now matured into a go-to tool for large and complex layouts. While similar to RelativeLayout, using it is much more flexible, easy, and intuitive. The resulting layouts will be flatter and perform better at run time. Even though it's the newest layout, it's compatible for use in SDK versions as far back as Android 2.3 Gingerbread (API 9). In this session, you will learn how to: * enable constraint layouts in your project * use the new Layout Editor to work with constraint layouts * convert existing layouts to constraint layouts * add new constraint layouts * determine and add appropriate constraints * configure constraint properties * avoid some common pitfalls Note: No prior experience with ConstraintLayout is required, but some experience with Android development and familiarity using other Android layouts would be helpful.