Download - 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