Droidcon UK 2015 roundup

45
Droidcon UK 2015 This October the international Android community, gathered for a great 2 days to listen to expert speakers, find out about all the latest Android advances and discover new technologies.

Transcript of Droidcon UK 2015 roundup

Droidcon UK 2015This October the international Android community, gathered for a great 2 days to listen to expert speakers, find out about all the latest Android advances and discover new technologies.

image

Keynote

Keynotedifferent career choiceshow can we choose good companies to work forwhat we can learn from interviews and selection processeswhen should we look for a new jobhow to change our working environment

KeynoteThe Software Craftsman: Professionalism, Pragmatism, Pride

http://surl.novoda.com/book-keynote

image

RxJava

Pascal Welsch and Wolfram Rittmeyer

RxJavaRxJava hypehow to use it on Androidwhy you should use RxAndroid

RxJava

RxJavahttps://github.com/ReactiveX/RxJava/wiki/How-To-Use-RxJavahttp://surl.novoda.com/rxjava-2mins

Continuous Integration

Continuous IntegrationJenkins has powerful pluginsConnecting real devices or emulatorsRunning unit & acceptance testsHaving nightly builds for slow running jobsUsing nodes for distributed cpu power

Continuous Integrationwww.slideshare.net/PaulBlundell2/survival-of-the-continuistLearning Android application testinghttp://surl.novoda.com/ci-book (shameless self plug)

image

Android for Java Developers

Android for Java Developersgood Android apps will have to take mobile constraints into accountlearn how to use the language effectively how to write better and more performant Android applications

Android for Java Developershttps://medium.com/google-developers/developing-for-android-introduction-5345b451567cI: Understanding the Mobile ContextII: The Rules: MemoryIII: The Rules: PerformanceIV: The Rules: NetworkingV: The Rules: Language & Libraries

VI: The Rules: StorageVII: The Rules: FrameworkVIII: The Rules: User InterfaceIX: Tools

image

Give your users superpowers in the real world

Hoi Lam

Give your users superpowers in the real worldChromecastAudio & VideoAndroid WearBrillo (for raspberry pi!)

People no longer need to sit at a desk to get the benefits of technology. You can now build experiences that work seamlessly between the virtual world and the real world. Superpowers that would not have been possible, too complex or prohibitively expensive are now possible.

Join this session for the latest update from Google on the platform components now available. The talk will also cover design philosophies and technical details on how best to take advantage of the strength of the various platforms and give your users superpowers in the real world.

Give your users superpowers in the real worldhttps://developers.google.com/brillo/

An Introduction to Brillohttps://www.youtube.com/watch?v=2rPkbyyviGI

People no longer need to sit at a desk to get the benefits of technology. You can now build experiences that work seamlessly between the virtual world and the real world. Superpowers that would not have been possible, too complex or prohibitively expensive are now possible.

Join this session for the latest update from Google on the platform components now available. The talk will also cover design philosophies and technical details on how best to take advantage of the strength of the various platforms and give your users superpowers in the real world.

image

Designing apps that everyone can use

Ataul Munim

Designing apps that everyone can useGood enough design is not good enough!implementation faux-passconcept of accessible vs usableDevelopment process that can guide accessibility

Good design is hard. Over the last few years (since Holo), Android users have been spoiled by a sea of apps with "good-enough" design. It's easy to do. It's paint-by-numbers. It's following design guidelines. But it's not good enough! You will discover about design and implementation faux-pas that are considered acceptable, why they're not really good enough,and learn how easily they can be fixed. You will recognise the difference between the concept of accessible and the concept of usable, and note how anyone can develop an accessible app, but why usable apps might be more difficult to make. You'll come away with a set of (actionable!) design and development processes that will guide you in making apps that everyone can use on an Android TV.

Designing apps that everyone can use

https://www.novoda.com/blog/designing-android-apps-with-vision-impaired-users-in-mind/

image

Amazon Alexa

Meaningful Motion

Nick Butcher & Ben Weiss

Meaningful MotionChoreograph and control animationsTransitionsVector Graphics

Material design emphasizes using meaningful motion within your UIs. But when should you use it and how can it be implemented?

In this session youll learn about tools and techniques that help you apply motion design within your app. You will discover how to create, choreograph and control sublime animations and transitions from an engineers perspective. Above that youll use real world examples that you can dive into and learn from.

Meaningful Motionhttp://android-developers.blogspot.co.uk/2015/06/more-material-design-with-topeka-for_16.html

https://github.com/nickbutcher/plaid

Material design emphasizes using meaningful motion within your UIs. But when should you use it and how can it be implemented?

In this session youll learn about tools and techniques that help you apply motion design within your app. You will discover how to create, choreograph and control sublime animations and transitions from an engineers perspective. Above that youll use real world examples that you can dive into and learn from.

image

Lands of Ruin. Desktop strategy game. http://landsofruin.com/

Building a real Reddit button game

Mike McDonald

Building a real Reddit button gameConnect an app through firebaseConnect a button via USBRealtime synchronisationInternet of things

The button was a game and social experiment run on Reddit from 1 Apr 2015 to 5 Jun 2015. The idea was simple: a 60 second countdown timer next to a reset button. When users pressed the button at a specific time, they would also be assigned a specific colour: purple if between 52 and 60 seconds, blue between 42 and 51 seconds, etc. and grey if a user hadnt pressed the button yet. The power of the game is in its simplicity, but also in its scale: during that time, over a million users joined together to keep the game going. Developing games for this scale is difficult, but it doesnt have to be. In this talk, you will create our own button game by connecting a comically oversized button to the internet and writing a companion Android app for audience members to play along. The button and app will be connected through Firebase, an application platform designed to speed up mobile, web, and IoT development by providing authentication, realtime synchronization, and Reddit scale. By the end you will learn how to use Firebase to create mobile and IoT applications which seamlessly interact between hardware and software. Youll also learn how to leverage realtime, event driven programming models for both game and IoT development. Also, unlike the Reddit version, this experiment promises a more climactic end!

Building a real Reddit button game

image

Facebook: Infer

Martino Luca

Facebook: InferStatic analysersNull pointer accessMemory leaksinfer -- ./gradlew buildhttp://fbinfer.com/

Hive CI: Making automation scale for iPlayer

David Buckhurst & Jitesh Gosai

Hive CI: Making automation scale for iPlayerWant to reach as wide an audience as possibleDaunted by 1000s of manual testsDealing with false & intermittent failuresKeeping physical devices in a connected stateBreaking test suites down

Our remit at the BBC means we have to reach as wide an audience as possible. When you consider how this applies to our iPlayer mobile app, we have to support a huge variety of devices and os combinations. Daunted by the amount of manual testing we would have to perform, we invested heavily into automation to reduce our manual efforts.

We quickly built up a large and successful suite of automated tests and could run these on a single device driven by our CI system. When it came to making this scale to the large number of devices we wanted to support, we really struggled.

The difficulties we faced were:

how to manage and run tests on multiple deviceskeeping devices stable and ready to run testsdealing with false positives and intermittent failuresmanaging the huge number of tests wed accrued and the GBs of results we were generatingWe struggled to scale our approach using conventional CI tools. We wanted a system that could help us in three areas:

managing the physical devices and keeping them in a ready-state to run testsscheduling and running tests across multiple connected devicescollating and interpreting results across a single build.We built a custom CI system, which we call Hive CI to help us overcome these problems. Hive CI was designed to be device aware, and test aware giving us greater control over how we run our tests, what tests we run, and what devices they run on. Our system could be used by any team in the BBC, for any mobile testing project, using any testing framework.

Now that we could run all our tests on all our devices, we found ourselves with a completely new set of problems. The effort of maintaining over 200 tests across all our physical devices was a full time job. And left no time for investigating the millions of test results we generated every day. We needed a more intelligent approach to what we ran. We solved this in three ways:

breaking our test suites into smaller suites focusing on specific domains (core journeys, statistics, accessibility) and reducing our on-commit tests to a core set of journeys -- what we call PUMAsusing our monitoring to identify the highest reach devices and operating systemsexpanding the Hive result engine to be able to differentiate between genuine failures and intermittent problems.

Hive CI: Making automation scale for iPlayerWant to reach as wide an audience as possibleDaunted by 1000s of manual testsDealing with false & intermittent failuresKeeping physical devices in a connected stateBreaking test suites down

Our remit at the BBC means we have to reach as wide an audience as possible. When you consider how this applies to our iPlayer mobile app, we have to support a huge variety of devices and os combinations. Daunted by the amount of manual testing we would have to perform, we invested heavily into automation to reduce our manual efforts.

We quickly built up a large and successful suite of automated tests and could run these on a single device driven by our CI system. When it came to making this scale to the large number of devices we wanted to support, we really struggled.

The difficulties we faced were:

how to manage and run tests on multiple deviceskeeping devices stable and ready to run testsdealing with false positives and intermittent failuresmanaging the huge number of tests wed accrued and the GBs of results we were generatingWe struggled to scale our approach using conventional CI tools. We wanted a system that could help us in three areas:

managing the physical devices and keeping them in a ready-state to run testsscheduling and running tests across multiple connected devicescollating and interpreting results across a single build.We built a custom CI system, which we call Hive CI to help us overcome these problems. Hive CI was designed to be device aware, and test aware giving us greater control over how we run our tests, what tests we run, and what devices they run on. Our system could be used by any team in the BBC, for any mobile testing project, using any testing framework.

Now that we could run all our tests on all our devices, we found ourselves with a completely new set of problems. The effort of maintaining over 200 tests across all our physical devices was a full time job. And left no time for investigating the millions of test results we generated every day. We needed a more intelligent approach to what we ran. We solved this in three ways:

breaking our test suites into smaller suites focusing on specific domains (core journeys, statistics, accessibility) and reducing our on-commit tests to a core set of journeys -- what we call PUMAsusing our monitoring to identify the highest reach devices and operating systemsexpanding the Hive result engine to be able to differentiate between genuine failures and intermittent problems.

Hive CI: Making automation scale for iPlayerHIVE@BBCOpenSourcehttp://bbc.co.uk/opensource

image

What I missed :-(Build your own video streaming appReverse engineering is not just for hackersReact Native for AndroidLands End: Creating the flagship mobile VR adventure Staying alive, online and offline Advancing Development with the Kotlin LanguageMicroservices is our BFF: why SoundCloud stopped using its own public API for its mobile clients

Missed a talk?Talks will be published:

http://uk.droidcon.com

Get Involvedhttp://surl.novoda.com/get-involved

Paul Blundellhttp://surl.novoda.com/gdghttp://www.meetup.com/GDG-Liverpool