Skip to content

Instantly share code, notes, and snippets.

@johnjohndoe
Created September 6, 2017 13:55
Show Gist options
  • Save johnjohndoe/d5424d46e27fe93b5b0bd90cc97001a4 to your computer and use it in GitHub Desktop.
Save johnjohndoe/d5424d46e27fe93b5b0bd90cc97001a4 to your computer and use it in GitHub Desktop.
droidcon-2017-sessions
GET /rest/sessions.json HTTP/1.1
Host: droidcon.de
Connection: Keep-Alive
Accept-Encoding: gzip
User-Agent: okhttp/3.8.1
If-None-Match: "1504612579-1"
HTTP/1.1 200 OK
Date: Wed, 06 Sep 2017 13:50:54 GMT
Server: Apache
X-Drupal-Cache: HIT
Etag: "1504705230-1"
Cache-Control: public, max-age=0
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Vary: Cookie,Accept-Encoding,User-Agent
Content-Encoding: gzip
Last-Modified: Wed, 06 Sep 2017 13:40:30 GMT
Keep-Alive: timeout=4, max=898
Content-Type: application/json
Transfer-Encoding: chunked
Proxy-Connection: Keep-alive
[{"updated_date":"2017-08-18T11:03:27+02:00","type":"session","uri":"http://droidcon.de/en/sessions/genetically-modified-tests","title":"Genetically Modified Tests","label":"Genetically Modified Tests","datetime":[{"value":"2017-09-04 12:00:00","value2":"2017-09-04 12:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T14:00:00+02:00"],"end_iso":["2017-09-04T14:25:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["659"],"speaker_names":["Xavier F. Gouchet"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Testing is recognized as one of the most important best practice in development. Whether you only write a just a few unit test, or have a 100% code coverage, your tests ensure the quality of your app. But what ensures the quality of your tests ? This talk will present the concept of Mutation testing, and how you can use it while writing tests for Android apps</p>\n","video":[],"audio":[],"slide":[],"nid":"2430"},{"updated_date":"2017-08-18T11:03:11+02:00","type":"session","uri":"http://droidcon.de/en/sessions/zen-code-reviews","title":"Zen Code Reviews","label":"Zen Code Reviews","datetime":[{"value":"2017-09-04 14:00:00","value2":"2017-09-04 14:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T16:00:00+02:00"],"end_iso":["2017-09-04T16:25:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["659"],"speaker_names":["Xavier F. Gouchet"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Whatever the size of your team, code review is one of the best way to keep your code base coherent, safe and to share knowledge across your whole team. This talk will explore a few tools and workflows that you can use to include code review in your team, and all the best practices and things to avoid.</p>\n<p>\u00a0</p>\n","video":[],"audio":[],"slide":[],"nid":"2431"},{"updated_date":"2017-08-18T11:02:53+02:00","type":"session","uri":"http://droidcon.de/en/sessions/get-creative-and-squeeze-performance-out-sqlite","title":"Get creative and squeeze performance out of SQLite","label":"Get creative and squeeze performance out of SQLite","datetime":[{"value":"2017-09-05 13:30:00","value2":"2017-09-05 14:10:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T15:30:00+02:00"],"end_iso":["2017-09-05T16:10:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["663"],"speaker_names":["Jason Feinstein"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"185","level":"Pro","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Whether you love it or loathe it:\u00a0SQLite is here to stay on Android, so let's make the most of it! \u00a0</p>\n<p>Do you deal with a lot of data in your app, and need to insert it as fast as possible? We'll look at best practices (including how to apply them to the new Architecture Component: Room).</p>\n<p>Is your database so large that queries take a long time to execute? We will discuss how to design indexes on your tables, and even go into how you could shard your tables when indexes don't provide enough of a boost. \u00a0</p>\n<p>When it comes time to display your data, does your app run out of memory with all the data it needs to load into the RecyclerView adapter? Let's look into making an adapter that uses a Cursor.</p>\n<p>And as a bonus: we'll talk about how you can cut out the middleman and\u00a0have your server deliver an SQLiteDatabase file as a response format.</p>\n","video":[],"audio":[],"slide":[],"nid":"2438"},{"updated_date":"2017-08-10T17:04:52+02:00","type":"session","uri":"http://droidcon.de/en/sessions/android-things-workshop-dev-maker","title":"Android Things Workshop, From Dev To Maker","label":"Android Things Workshop, From Dev To Maker","datetime":[{"value":"2017-09-05 12:00:00","value2":"2017-09-05 14:15:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T14:00:00+02:00"],"end_iso":["2017-09-05T16:15:00+02:00"],"room_id":["3521"],"room":["Stage Zuse"],"speaker_uids":["97","665"],"speaker_names":["Gautier Mechling","Romain Menetrier"],"category_id":"180","category":"Internet of Things","format_id":"197","format":"Workshop","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>You are an Android developer? You want to start building real devices yourself? Android Things is the platform for you!</p>\n<p>Android Things is the new OS for embedded systems from Google. Its crazy goal is to make it easy for Android devs to make things in the physical world. And we will try to give you a glimpse of its possibilities.</p>\n<p>During this workshop, all attendees will build <strong>a wonderful connected catapult</strong> based on a Raspberry Pi.</p>\n<p>You will need to bring for this session :</p>\n<ul><li>Your computer with\u00a0<a href=\"https://developer.android.com/studio/index.html\">Android Studio installed (last stable)</a></li>\n<li>Your creativity</li>\n<li>Lots of fun</li>\n</ul><p>You don't need to bring any other material, we will take care of it for you.</p>\n","video":[],"audio":[],"slide":[],"nid":"2440"},{"updated_date":"2017-08-18T11:02:04+02:00","type":"session","uri":"http://droidcon.de/en/sessions/things-i-wish-i-knew-when-i-started-building-android-sdklibraries","title":"Things I wish I knew when I started building Android SDK/Libraries","label":"Things I wish I knew when I started building Android SDK/Libraries","datetime":[{"value":"2017-09-05 12:00:00","value2":"2017-09-05 12:40:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T14:00:00+02:00"],"end_iso":["2017-09-05T14:40:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["667"],"speaker_names":["Nishant Srivastava"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>As more and more people start building Android Libraries, the whole process of building a better API for developers is getting bloated and everyone is coming up with their own ideas. However, if android library developers follow a certain standard with a rationale they can avoid most of the pitfalls. Building an android library is easy, but building one that keeps in mind developer happiness is rare but definitely not hard. The session would cover how one can build android libraries taking in consideration to exposing more informative API, making sure the best resources are utilized efficiently and that one does not force the app developer with redundant dependencies and complexities.</p>\n<p>Link to blog post: <a href=\"https://android.jlelse.eu/things-i-wish-i-knew-when-i-started-building-android-sdk-libraries-dba1a524d619\">https://android.jlelse.eu/things-i-wish-i-knew-when-i-started-building-android-sdk-libraries-dba1a524d619</a></p>\n","video":[],"audio":[],"slide":[],"nid":"2443"},{"updated_date":"2017-08-18T11:21:02+02:00","type":"session","uri":"http://droidcon.de/en/sessions/android-security-enterprise-perspective","title":"Android Security, an Enterprise perspective","label":"Android Security, an Enterprise perspective","datetime":[{"value":"2017-09-04 15:00:00","value2":"2017-09-04 15:40:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T17:00:00+02:00"],"end_iso":["2017-09-04T17:40:00+02:00"],"room_id":["3521"],"room":["Stage Zuse"],"speaker_uids":["232"],"speaker_names":["Pietro Maggi"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":["3571"],"partner_names":["Zebra Technologies"],"abstract":"<h3>Debunking Android security Myths with data</h3>\n<p>In this talk I\u2019m presenting some hot topics for European Corporation in the process to adopt Android as COSU devices.<br />\nHow features introduced in Android 6.0, Google Mobile Services and third party extensions collaborate to provide to the market state of art solutions.<br />\nThis talk will answer to questions like:<br />\n1. Android threats, real or FUD?<br />\n2. Security updates, why are they critical for the Enterprise market<br />\n3. Security and Long Life Cycle of Android devices, what are the market best practices</p>\n<p>This session is powered by Zebra</p>\n","video":[],"audio":[],"slide":[],"nid":"2445"},{"updated_date":"2017-08-18T11:01:48+02:00","type":"session","uri":"http://droidcon.de/en/sessions/how-i-decreased-power-consumption-native-google-android-app-and-why","title":"How I decreased the power consumption of a native Google Android app (and why)","label":"How I decreased the power consumption of a native Google Android app (and why)","datetime":[{"value":"2017-09-04 09:30:00","value2":"2017-09-04 10:10:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T11:30:00+02:00"],"end_iso":["2017-09-04T12:10:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["674"],"speaker_names":["Olivier Philippot"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>It&#039;s not often that an Android developer decides to touch the heart of his favorite OS. The Android Open Source Project (AOSP) comes straight from Google&#039;s plants in Palo Alto. Although not perfect, it is sufficiently powerful and reliable to serve as the basis for the operation of 1.4 billion smartphones in the world.<br />\nSo when one of our customers asked me if we could reduce the power consumption of SystemUI, one of the basic applications of the Android user interface (among other things the status bar), I sincerely had fear. But the experience has been rewarding!<br />\nA session to tell you why big energy gains are possible on Android (and more generally on all technos) and how to get these gains.</p>\n","video":[],"audio":[],"slide":[],"nid":"2456"},{"updated_date":"2017-08-18T11:01:30+02:00","type":"session","uri":"http://droidcon.de/en/sessions/doo-z-z-z-z-z-e","title":"Doo z z z z z e","label":"Doo z z z z z e","datetime":[{"value":"2017-09-04 08:45:00","value2":"2017-09-04 09:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T10:45:00+02:00"],"end_iso":["2017-09-04T11:25:00+02:00"],"room_id":["3521"],"room":["Stage Zuse"],"speaker_uids":["676"],"speaker_names":["Ralf Wondratschek"],"category_id":"176","category":"APIs","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>With Android Marshmallow Google introduced two new power-saving modes: Doze and App Standby. True to their intent, both provide longer battery life and better performance. Their effectiveness further improved in Android Nougat. However, these modes carry some limitations developers should be aware of. To further improve power-saving Android O will be even more restrictive and disable common implicit broadcasts. Many apps rely on implicit broadcasts so if you're using those, supporting older and newer devices at the same time is going to be more challenging.</p>\n<p>This talk will explain why these new APIs are better. We will discuss the given tools and dive into the new APIs. Finally, we will explore effective solutions to avoid duplicating code over and over again for different SDK versions.</p>\n","video":[],"audio":[],"slide":[],"nid":"2457"},{"updated_date":"2017-08-18T10:57:18+02:00","type":"session","uri":"http://droidcon.de/en/sessions/how-cache-and-load-data-without-even-trying","title":"How to cache and load data without even trying ","label":"How to cache and load data without even trying ","datetime":[{"value":"2017-09-05 09:00:00","value2":"2017-09-05 09:40:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T11:00:00+02:00"],"end_iso":["2017-09-05T11:40:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["861"],"speaker_names":["Brian Plummer"],"category_id":"174","category":"Android Architecture","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Android has a wealth of open source libraries covering everything from network clients to UI frameworks. Something that is missing is a library to help load data from multiple sources, particularly 2 levels of caching + network. NY Times has recently open sourced such a library built on RxJava, Guava + OKIO which will dramatically simplifiy the common task of \u201cget from mem cache, if not there get from disk, if not there hit the network, parse and update cache\u201c. I'll be taking users through the problems that we tried to solve and the solution that we propose for it.</p>\n<p>The library is Store\u00a0<a href=\"https://github.com/NYTimes/Store\">https://github.com/NYTimes/Store</a>. Stores dramatically simplify data loading and caching while being exposed through reactive interfaces. Stores are the foundation of the NY Times app and allow us to both have best in class startup time as well as allowing us to work offline. In this talk I'll introduce the library and then go through the open source tools we used to build it. Topics will include: Streaming data from OKHTTP using BufferedSource/Sink, Creation a blazing fast file system. Using Guava for intelligent caching, leveraging RxJava for combining and transforming multiple data sources</p>\n","video":[],"audio":[],"slide":[],"nid":"2460"},{"updated_date":"2017-08-18T10:54:47+02:00","type":"session","uri":"http://droidcon.de/en/sessions/evolution-notifications","title":"The evolution of notifications","label":"The evolution of notifications","datetime":[{"value":"2017-09-04 15:45:00","value2":"2017-09-04 16:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T17:45:00+02:00"],"end_iso":["2017-09-04T18:25:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["360"],"speaker_names":["Jeremie Martinez"],"category_id":"179","category":"Design / UI/UX","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Notifications are an essential part of Android applications. Indeed, they are a very interesting entry point to your app and can bring a lot of value to your users if they are used correctly.</p>\n<p>Introduced from the first version of Android,\u00a0we will start with a bit of history about their evolutions over the versions of Android from an UX/UI point of view.</p>\n<p>Then, we will see how to be a good citizen and follow best practices based on concepts like category, relevance and legitimacy. Indeed,\u00a0they are often underestimated and misused and can lead to real pain for Android users.</p>\n<p>Finally, we will discuss a series of tips &amp; tricks to perfectly match their uses to the needs of your users. By discussing topics such as \u00a0triggering, styles and unknown APIs of the framework, we will make a full overview of their possibilities and how to implement them.</p>\n","video":[],"audio":[],"slide":[],"nid":"2462"},{"updated_date":"2017-08-18T10:54:24+02:00","type":"session","uri":"http://droidcon.de/en/sessions/optimists-our-ui-pretty-pessimistic","title":"For optimists, our UI is pretty pessimistic","label":"For optimists, our UI is pretty pessimistic","datetime":[{"value":"2017-09-04 13:15:00","value2":"2017-09-04 13:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T15:15:00+02:00"],"end_iso":["2017-09-04T15:55:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["135"],"speaker_names":["Joe Birch"],"category_id":"179","category":"Design / UI/UX","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>In a lot of applications, users are constantly performing operations that require some form of communication with a server. Whether it's the loading of content, the sending of a message or the changing of setting - how many times have you used an app that has made you watch a progress bar whilst such an operation has been taking place. For me, too many times. This kind of experience is blocking for the user and in a world where slow network connectivity is still common in some places, it's very likely that you're slowing down many users when using your app. This is a pessimistic approach to crafting - the fear of not quite knowing whether what is being done is going to be successful.</p>\n<p>But really, it's not even too big a task to design and build for optimism over pessimism. Crafting for optimism allow us to behave as though the best outcome is going to occur but still falling back to another state if something does happen to go wrong. In this talk, we'll be looking at exactly how we can use a mixture of offline tactics and optimistic UI states to avoid signs of pessimism in our UI and craft a more positive experience for our users.</p>\n","video":[],"audio":[],"slide":[],"nid":"2469"},{"updated_date":"2017-08-18T10:53:49+02:00","type":"session","uri":"http://droidcon.de/en/sessions/beacons-how-it-works-and-some-neat-use-cases","title":"Beacons: how it works and some neat use cases","label":"Beacons: how it works and some neat use cases","datetime":[{"value":"2017-09-05 15:30:00","value2":"2017-09-05 15:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T17:30:00+02:00"],"end_iso":["2017-09-05T17:55:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["455"],"speaker_names":["Nemanja Nedic"],"category_id":"180","category":"Internet of Things","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Beacons are a new way to exploit the Bluetooth Low Energy technology. They give a physical context for an application. Since they are priced very low, they can be deployed in high quantities. This gives the developers a new perspective for creating engaging and really smart solutions. This talk will cover a basis of how BLE beacons work and how we can interact with them. In addition, we will go through some of the existing use cases in different industries.</p>\n","video":[],"audio":[],"slide":[],"nid":"2473"},{"updated_date":"2017-08-18T10:52:36+02:00","type":"session","uri":"http://droidcon.de/en/sessions/android%E2%80%99s-webview-how-not-use-it-tales-trenches","title":"Android\u2019s WebView - how (not) to use it with tales from the trenches","label":"Android\u2019s WebView - how (not) to use it with tales from the trenches","datetime":[{"value":"2017-09-05 12:45:00","value2":"2017-09-05 13:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T14:45:00+02:00"],"end_iso":["2017-09-05T15:25:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["325"],"speaker_names":["Kai Koenig"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>How many times have you heard this or similar: \u201cHey, can\u2019t we just build a \u2018wrapper\u2019 app around our mobile web site or web app? We just need to be present in the Play Store with anything, really\u201d? Then you start to explain to people why that is a good or bad idea and how their mobile web app might be completely wrongly architected for such an endeavour. At this point the topic of Phonegap usually pops up and \u201cthat it should just take a couple of minutes to get that all done, right\u201d. The story goes on and on from here.</p>\n<p>But in all seriousness, Android\u2019s WebView has its place. It\u2019s a reasonably versatile and more or less well designed component Android developers can use to embed browser-based elements into their app. And yes - it can also be used to drive a complete mobile web app inside of your actual Android app. But it is clearly its own beast and it can create a lot of havoc in the heart of your app, too. Starting with having to deal with performance problems, having to implement support for older implementations of the Android WebView in your Markup, CSS and JS code, up to inadvertently opening up potential security holes.</p>\n<p>This talk comprises multiple parts. After an introduction of the WebView as a concept and the current fragmented WebView implementation landscape we\u2019re going to have a look at the APIs involved. From there we\u2019ll talk about how to get a basic implementation of a properly secured and well-working WebView component setup in your App. That alone can contain a variety of rather unexpected challenges. If you haven\u2019t had enough at this stage, it\u2019s gonna get really interesting. How can you deal with what we\u2019ve coined lovingly \u201cOAS\u201d - short for Old Android Support - in your WebView? And how to find out which of all the modern web API stuff you\u2019d probably happily use in a modern version of Chrome? Can it actually be used in your WebView-based Android-App and at what cost?<br />\n\u00a0</p>\n","video":[],"audio":[],"slide":[],"nid":"2480"},{"updated_date":"2017-08-18T10:52:13+02:00","type":"session","uri":"http://droidcon.de/en/sessions/impress-your-users-inner-child","title":"Impress your user&#039;s inner child!","label":"Impress your user&#039;s inner child!","datetime":[{"value":"2017-09-04 10:15:00","value2":"2017-09-04 10:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T12:15:00+02:00"],"end_iso":["2017-09-04T12:55:00+02:00"],"room_id":["3521"],"room":["Stage Zuse"],"speaker_uids":["712"],"speaker_names":["Eliza Camberogiannis"],"category_id":"176","category":"APIs","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Tying up the users to your app is the most important and yet one of the most puzzling parts. Users will already have a strong impression about your app the first 30''; Yes, including splash screens or empty lists and loading indicators, that are pretty much impossible to avoid in most of the apps. So all we need is some stardust, say the 'abracadabra' 3 times, and the boring splash screen or the empty screen will transform to something entertaining and interesting that will impress our users! Wait... what?! How do I do this? A great place to start is learning to leverage Android's animation SDKs ;-)</p>\n","video":[],"audio":[],"slide":[],"nid":"2485"},{"updated_date":"2017-08-18T10:50:34+02:00","type":"session","uri":"http://droidcon.de/en/sessions/tales-dark-side-developing-sdks-scale","title":"Tales from the dark side: developing SDKs at scale","label":"Tales from the dark side: developing SDKs at scale","datetime":[{"value":"2017-09-05 12:45:00","value2":"2017-09-05 13:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T14:45:00+02:00"],"end_iso":["2017-09-05T15:25:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["716"],"speaker_names":["Kenneth Geisshirt"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>We love Android because of its diversity, openness, and lack of central control. The openness gives us a highly competitive market with many vendors and a huge number of models. We see inexpensive phones with slow processors and little memory, and we see flagship phones with the highest performance chip makers can produce.\u00a0</p>\n<p>Today, Android is truly the world phone. When developing for Android, you have the world as your target audience. But the darker side of Android is that a quarter of all active Android devices are running Android 2.x or 4.x, and these devices haven\u2019t seen an update for years.</p>\n<p>Developing an app or a SDK for a global scale, you will from time to time be hit by mysterious bugs. Bugs which can only be reproduced on particular devices, bugs only users can reproduce, or bugs that disappear as soon as you start looking for them.</p>\n<p>With Realm being used in more than a billion app installs around the world, we have experienced this first hand. This talk will take you through a horror show of some of the most obscure bugs we encountered, and not least how we found and fixed them. By understanding the root cause of these bugs you will hopefully leave with a better understanding of the diverse eco-system Android is and with some tools and tricks for fixing bugs in your own app or SDK.<br />\n\u00a0</p>\n","video":[],"audio":[],"slide":[],"nid":"2489"},{"updated_date":"2017-08-18T10:50:15+02:00","type":"session","uri":"http://droidcon.de/en/sessions/think-build-ship-and-tweak-your-android-open-source-library","title":"Think, Build, Ship and Tweak Your Android Open Source Library","label":"Think, Build, Ship and Tweak Your Android Open Source Library","datetime":[{"value":"2017-09-04 12:30:00","value2":"2017-09-04 13:10:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T14:30:00+02:00"],"end_iso":["2017-09-04T15:10:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["99"],"speaker_names":["Sangsoo Nam"],"category_id":"176","category":"APIs","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Open source libraries make the development much easier. You don't have to spend your time for making similar things. If you cannot find what you want, now it's time to make it and release to everyone.\u00a0</p>\n<p>In this talk, I explain how to make an open source library including hosting, testing, continuous integration, and publishing for both types: jar(java) and aar(android)</p>\n","video":[],"audio":[],"slide":[],"nid":"2497"},{"updated_date":"2017-08-18T10:49:56+02:00","type":"session","uri":"http://droidcon.de/en/sessions/good-bad-and-ugly-building-distributed-teams-realm","title":"The Good, The Bad and the Ugly - Building Distributed Teams at Realm","label":"The Good, The Bad and the Ugly - Building Distributed Teams at Realm","datetime":[{"value":"2017-09-05 14:45:00","value2":"2017-09-05 15:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T16:45:00+02:00"],"end_iso":["2017-09-05T17:25:00+02:00"],"room_id":["3521"],"room":["Stage Zuse"],"speaker_uids":["357"],"speaker_names":["Christian Melchior"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>At Realm, approximately 1/3 work remotely across the world. The Android team alone consists of 6 nationalities located in 7 cities across 17 time zones.</p>\n<p>This is a candid tale of the successes and failures we have encountered while building out a remote friendly organization. You'll learn from our insights and lessons learned, what challenges you'll face and how to be successful. It is an ongoing process, but the cake is not a lie.</p>\n","video":[],"audio":[],"slide":[],"nid":"2521"},{"updated_date":"2017-08-18T10:49:33+02:00","type":"session","uri":"http://droidcon.de/en/sessions/kotlin-coroutines","title":"Kotlin coroutines","label":"Kotlin coroutines","datetime":[{"value":"2017-09-05 09:00:00","value2":"2017-09-05 09:40:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T11:00:00+02:00"],"end_iso":["2017-09-05T11:40:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["370"],"speaker_names":["Svetlana Isakova"],"category_id":"181","category":"Languages","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>The async/await feature allows you to write the asynchronous code in a straightforward way, without a long list of callbacks. Used in C# for quite a while already, it has proven to be extremely useful. In Kotlin 1.1 you have async and await as library functions implemented using coroutines.</p>\n<p>A coroutine is a light-weight thread that can be suspended and resumed later. Very precise definition, but might be confusing at first. What \u2018light-weight thread\u2019 means? How does suspension work? This talk uncovers the magic.</p>\n<p>We\u2019ll discuss the concept of coroutines, the power of async/await, and how you can benefit from defining your asynchronous computations using suspend functions.<br />\n\u00a0</p>\n","video":[],"audio":[],"slide":[],"nid":"2523"},{"updated_date":"2017-08-18T10:49:13+02:00","type":"session","uri":"http://droidcon.de/en/sessions/how-bring-product-reality-few-days-design-dev-cooperation-and-fast-android-prototyping","title":"How to bring a product to reality in a few days: design-dev cooperation and fast Android prototyping","label":"How to bring a product to reality in a few days: design-dev cooperation and fast Android prototyping","datetime":[{"value":"2017-09-04 12:30:00","value2":"2017-09-04 13:10:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T14:30:00+02:00"],"end_iso":["2017-09-04T15:10:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["695","714"],"speaker_names":["Juhani Lehtim\u00e4ki","Pierluigi Rufo"],"category_id":"179","category":"Design / UI/UX","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Developers and designers want the same thing: the best possible product out there. However, cooperation between the two vastly different disciplines is rarely seamless.</p>\n<p>What can be done to make the dev-design interaction work better? How can we improve the communication and cooperation?</p>\n<p>In this joint talk, with a developer and a designer, we point out usual pain points from both points of view and explain how to best avoid them.</p>\n<p>We also demonstrate how a seamless cooperation can lead into a new wave of very rapid prototyping using Android as the platform. The tools and libraries available for Android designers and developers now allow small teams of two to build complete functional prototypes in just two days.</p>\n<p>We talk about how to best get detailed designs communicated in a form that developers will understand them and how they best get feedback from designers for adding that extra polish to projects and prototypes.</p>\n","video":[],"audio":[],"slide":[],"nid":"2524"},{"updated_date":"2017-08-18T10:48:49+02:00","type":"session","uri":"http://droidcon.de/en/sessions/profile-debug-analyze","title":"Profile, debug, analyze","label":"Profile, debug, analyze","datetime":[{"value":"2017-09-04 10:15:00","value2":"2017-09-04 10:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T12:15:00+02:00"],"end_iso":["2017-09-04T12:55:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["174"],"speaker_names":["Wojtek Kalicinski"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Android Studio has a whole new suite of tools for analyzing your apps and for debugging runtime errors and performance problems. Developers are also becoming more aware about the need to make their apps leaner and faster, but often don't know what tools are at their disposal. I will show several classes of common debugging problems and the appropriate tools to tackle them.</p>\n","video":[],"audio":[],"slide":[],"nid":"2526"},{"updated_date":"2017-08-18T10:48:21+02:00","type":"session","uri":"http://droidcon.de/en/sessions/%E2%99%AB-these-are-few-my-favourite-android-things-%E2%99%AB","title":"\u266b These are a few of my favourite (Android) Things \u266b","label":"\u266b These are a few of my favourite (Android) Things \u266b","datetime":[{"value":"2017-09-04 13:15:00","value2":"2017-09-04 13:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T15:15:00+02:00"],"end_iso":["2017-09-04T15:55:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["355"],"speaker_names":["Marcos Placona"],"category_id":"180","category":"Internet of Things","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Android Things lets you build professional, mass-market products on a trusted platform without previous knowledge of embedded systems. It is estimated that by 2020 there will be 50 billion connected things.</p>\n<p>But what does it take to get started with Android Things and be able to say you\u2019re truly working with the Internet of Things? How can you learn this platform and get ahead of the IoT revolution using your existing Android skills?</p>\n<p>In this session we will explore what Android Things is and how you can get started building IoT applications with your existing Android knowledge.</p>\n<p>We will then build a real life Android Things application using a Raspberry Pi 3 and Android Studio, the IDE you already use and love.</p>\n","video":[],"audio":[],"slide":[],"nid":"2528"},{"updated_date":"2017-08-18T10:47:43+02:00","type":"session","uri":"http://droidcon.de/en/sessions/look-code-tools-and-libs-indie-developer","title":"A look at the code of tools and libs from an indie developer","label":"A look at the code of tools and libs from an indie developer","datetime":[{"value":"2017-09-05 10:30:00","value2":"2017-09-05 10:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T12:30:00+02:00"],"end_iso":["2017-09-05T12:55:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["709"],"speaker_names":["marcus ligi"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>This talk showcases code of libraries and tools I created in my life as an indie developer. While looking at code that is used in living applications and tools you can:</p>\n<ul><li>get ideas from the code and methods</li>\n<li>know where to look if you have similar problems\u00a0as all the code is libre software on github</li>\n<li>see some kotlin</li>\n<li>get to know some tools/libs that might be useful to you</li>\n<li>enjoy some stories describing how I ended up with some solutions</li>\n</ul>","video":[],"audio":[],"slide":[],"nid":"2529"},{"updated_date":"2017-08-18T10:47:19+02:00","type":"session","uri":"http://droidcon.de/en/sessions/augmented-reality-indoor-navigation-google-tango","title":"Augmented Reality Indoor Navigation with Google Tango","label":"Augmented Reality Indoor Navigation with Google Tango","datetime":[{"value":"2017-09-04 15:00:00","value2":"2017-09-04 15:40:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T17:00:00+02:00"],"end_iso":["2017-09-04T17:40:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["739"],"speaker_names":["Till Krempel"],"category_id":"175","category":"Android Game Development &amp; Virtual Reality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Over the last couple of years, a variety of solutions for realizing augmented user interfaces on\u00a0mobile devices has evolved. Still one problem remains: Regardless of flawless design,augmentations still are only a mere overlay of the camera picture.</p>\n<p>Tango (formerly known as \u201eProject Tango\u201c) by the Google ATAP introduces a hardwarecomponent for a next generation of android smartphones, that claims new use cases by the\u00a0use of additional sensors, multiple cameras and a powerful software library. Tangos keyfeatures: Motion tracking, area learning and depth perception are a perfect fit for augmented\u00a0reality and enable a new level of immersion.</p>\n<p>As the physical environment of the device gets quantifiable with centimeter grade precision,\u00a0the augmentations can be presented at a real location in reality\u2019s three-dimensional space and\u00a0truly embed into their surroundings. The manifold new possibilities are illustrated using the use\u00a0case of indoor navigation. Indoor Positioning with a with a precision improved by multiple\u00a0magnitudes, as well as Tangos area learning features, offer an innovative alternative to existing\u00a0indoor navigation solutions and makes their infrastructural preconditions (iBeacon grids, Wi-Fi)\u00a0obsolete.\u00a0</p>\n<p>The features are not only restricted to mere navigation:\u00a0Using Firebase as a backend to store the building information model, real time usage statistics can be created and points of interest can be augmented in the application.</p>\n<p>The session illustrates these improvements on the example of a classic two-dimensional indoor\u00a0map navigation and an augmented reality user interface, where - thanks to the tango hardware\u00a0- routes embed seamlessly into reality.</p>\n<h3>Previous Talks</h3>\n<p><a href=\"http://uk.droidcon.com/skillscasts/9311-indoor-navigation-with-google-tango\">http://uk.droidcon.com/skillscasts/9311-indoor-navigation-with-google-tango</a></p>\n<p><a href=\"https://www.youtube.com/watch?v=Ndq7kOwMtMY&amp;feature=youtu.be\">https://www.youtube.com/watch?v=Ndq7kOwMtMY&amp;feature=youtu.be</a></p>\n<h3>FURTHER Information</h3>\n<p><a href=\"https://www.cologne-intelligence.de/blog/detail/show/indoor-navigation-mit-google-tango/?L=0&amp;cHash=6587b96567a7b5ea18ef9812bf0a72a6\">https://www.cologne-intelligence.de/blog/detail/show/indoor-navigation-mit-google-tango/?L=0&amp;cHash=6587b96567a7b5ea18ef9812bf0a72a6</a></p>\n<p><a href=\"https://www.cologne-intelligence.de/ci-mobile-minds/cases/no-beacon-no-cry-auf-der-mobiletechcon/\">https://www.cologne-intelligence.de/ci-mobile-minds/cases/no-beacon-no-cry-auf-der-mobiletechcon/</a></p>\n<p>\u00a0</p>\n<p>\u00a0</p>\n<p>\u00a0</p>\n","video":[],"audio":[],"slide":[],"nid":"2534"},{"updated_date":"2017-08-22T17:14:27+02:00","type":"session","uri":"http://droidcon.de/en/sessions/scaling-android-facebook","title":"Scaling Android @Facebook","label":"Scaling Android @Facebook","datetime":[{"value":"2017-09-04 09:30:00","value2":"2017-09-04 10:10:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T11:30:00+02:00"],"end_iso":["2017-09-04T12:10:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["740"],"speaker_names":["Marco Cova"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Before Marco joined Facebook, he would read all these absurd news and stories about Android development at Facebook. Crazy, unnecessary, overcomplicated hacks everywhere... he knew better... well... with an inside perspective it turns out they are not so crazy after all (for the most part at least).</p>\n<p>Facebook engineering is all about scale. Marco will introduce you to Facebook&#039;s development processes and sometime unintuitive or unorthodox technical solutions to cope with their unique scale of users, engineers and codebase.</p>\n","video":[],"audio":[],"slide":[],"nid":"2535"},{"updated_date":"2017-08-28T11:20:05+02:00","type":"session","uri":"http://droidcon.de/en/sessions/key-concepts-app-tracking-developers","title":"The Key Concepts of App Tracking for Developers","label":"The Key Concepts of App Tracking for Developers","datetime":[{"value":"2017-09-04 12:00:00","value2":"2017-09-04 12:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T14:00:00+02:00"],"end_iso":["2017-09-04T14:25:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["238"],"speaker_names":["Sergii Zhuk"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>If you have a mobile application or are going to develop one, it is important to remember about one thing on the side\u200a\u2014\u200amobile analytics, and a process behind it\u200a\u2014\u200aapplication tracking. Simply put, tracking means collecting, enriching, formatting and passing data about your app to your analytics tools. In this talk we will discuss why you need tracking and how to get the maximum out of it.</p>\n<p>We will check use cases on when to track data, some popular tracking/analytics tools, configuration options, and customer privacy issues. Also, we will take a look at common developer challenges and possible ways to test the tracking output.</p>\n","video":[],"audio":[],"slide":[],"nid":"2536"},{"updated_date":"2017-08-18T10:46:15+02:00","type":"session","uri":"http://droidcon.de/en/sessions/react-native-it-worth-it","title":"React Native: Is It Worth It?","label":"React Native: Is It Worth It?","datetime":[{"value":"2017-09-04 15:00:00","value2":"2017-09-04 15:40:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T17:00:00+02:00"],"end_iso":["2017-09-04T17:40:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["743"],"speaker_names":["Andy Dyer"],"category_id":"181","category":"Languages","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p><strong>When new technologies start gaining momentum in the Android community, the pragmatic (or lazy) among us eventually have to ask ourselves, \u201cIs it worth it?\u201d 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.</strong></p>\n<p><strong>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\u2019s 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.</strong></p>\n<p><strong>A dive into every new technology starts with the flashy \u201ctype these commands and run your \u2018Hello World\u2019 app\u201d tutorial. This is not that kind of talk. Instead, I\u2019ll 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\u2019ll cover what you need to know to decide if React Native is really worth your time.</strong></p>\n","video":[],"audio":[],"slide":[],"nid":"2537"},{"updated_date":"2017-08-28T11:20:02+02:00","type":"session","uri":"http://droidcon.de/en/sessions/building-p2p-darknet-app-lessons-learned","title":"Building a p2p darknet app: Lessons learned","label":"Building a p2p darknet app: Lessons learned","datetime":[{"value":"2017-09-04 14:00:00","value2":"2017-09-04 14:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T16:00:00+02:00"],"end_iso":["2017-09-04T16:25:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["710"],"speaker_names":["Ernir Erlingsson"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Briar is a free and open-source software project that includes a secure Android messaging app. The app is built using peer-to-peer architecture and transmits messages via Tor to protect users and their relationships from surveillance. It&#039;s designed for activists, journalists, or anyone else who needs a safe and secure way to communicate.</p>\n<p>This session gives a short introduction to Tor and the p2p architecture in order to subsequently discuss their integration on Android, focusing on a selection of challenges encountered during the development of the Briar app, namely: Android-specific issues such as keeping a background service alive with recent OS constraints; general mobile software-engineering problems, e.g. connectivity losses; user experience concerns due to the nature of decentralized applications employing an asynchronous messaging network.</p>\n","video":[],"audio":[],"slide":[],"nid":"2539"},{"updated_date":"2017-08-28T09:00:23+02:00","type":"session","uri":"http://droidcon.de/en/sessions/power-kotlin-your-tests","title":"The power of Kotlin for your tests","label":"The power of Kotlin for your tests","datetime":[{"value":"2017-09-04 13:15:00","value2":"2017-09-04 13:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T15:15:00+02:00"],"end_iso":["2017-09-04T15:55:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["90"],"speaker_names":["Danny Preussler"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>If you use Kotlin in production or not, you should use it's power for your tests.<br />\nWhen\u00a0it comes to extension functions, infix notation or possibilities for method names, Kotlin\u00a0offers a lot that Java won't give you.\u00a0Combined with the powers of libraries like Kotlin Mockito or Kluent this brings testing to a new level.<br />\nIn this session we will convert some boring Java tests to fun tests.</p>\n","video":[],"audio":[],"slide":[],"nid":"2542"},{"updated_date":"2017-08-18T10:44:46+02:00","type":"session","uri":"http://droidcon.de/en/sessions/where-we-need-you-most-browsers-app-platform","title":"Where we need you most - Browsers as App Platform","label":"Where we need you most - Browsers as App Platform","datetime":[{"value":"2017-09-05 10:30:00","value2":"2017-09-05 10:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T12:30:00+02:00"],"end_iso":["2017-09-05T12:55:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["216"],"speaker_names":["Friedger M\u00fcffke"],"category_id":"174","category":"Android Architecture","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>New standards in the W3C have brought back the discussion about native vs web. Under the label \"Progressive Web Apps\", the use of web technologies on mobile devices is promoted by the web community. Is this a thing for Android developers?</p>\n<p>This session starts with an overview of modern web browsers on Android and how good they are as a web app platform. Then it will be explained what is needed to build a modern browser on Android.</p>\n<p>This session should inspire Android developers to contribute to open source browsers.</p>\n<p>\u00a0</p>\n","video":[],"audio":[],"slide":[],"nid":"2556"},{"updated_date":"2017-08-18T10:44:26+02:00","type":"session","uri":"http://droidcon.de/en/sessions/managing-user-feedback-how-set-expectations-and-translating-feedback-features","title":"Managing User Feedback: How to Set Expectations and Translating Feedback into Features","label":"Managing User Feedback: How to Set Expectations and Translating Feedback into Features","datetime":[{"value":"2017-09-04 15:45:00","value2":"2017-09-04 16:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T17:45:00+02:00"],"end_iso":["2017-09-04T18:25:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["742"],"speaker_names":["Modupe Akinnawonu"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Developers have multiple opportunities to publicly engage with their users, whether it\u2019s through reviews in the Google Play Store, public beta and alpha channels, or through social media. But sometimes these interactions create situations that are more fraught than necessary, and these moments can lead to features that users say they want, but then don\u2019t use.</p>\n<p>In this session, I will use The New York Times as a case study for how to interact with users in public forums, showing you how to leverage this two-way relationship to increase their satisfaction with your apps. I will also dive into ways that developers can translate user feedback into an understanding of core user needs, helping you build more effective solutions to their reported problems and feature requets.</p>\n","video":[],"audio":[],"slide":[],"nid":"2559"},{"updated_date":"2017-08-18T10:44:00+02:00","type":"session","uri":"http://droidcon.de/en/sessions/dagger-2-android-defeat-dahaka","title":"Dagger 2 Android : Defeat the Dahaka","label":"Dagger 2 Android : Defeat the Dahaka","datetime":[{"value":"2017-09-04 10:15:00","value2":"2017-09-04 10:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T12:15:00+02:00"],"end_iso":["2017-09-04T12:55:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["755"],"speaker_names":["Garima Jain"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p><strong>Dagger 2 Android</strong> : <em>Defeat the Dahaka</em></p>\n<p>We have had many talks and blog posts on Dagger and Dependency Injection till now. I must say that people have done a great job at explaining various concepts of dependency injection, it\u2019s technical details and also case studies. But, in my opinion, Dagger is something which has become a part of our coding lives now. Yet, from time-to-time we still find ourselves lost in the world of dependencies and dealing with \u201cThe Dahaka (a beast of generated classes)\u201d.\u00a0</p>\n<p><em>Starting to learn about Dagger?</em> Start by creating a Module and a Component. Add a Singleton scope to it.\u00a0</p>\n<p><em>Dependencies getting out of hand?</em> Create another dependent component.</p>\n<p><em>Creating a dependent component?</em> You should create another scope!! And if this is not enough Create some subcomponents, create Qualifiers, use Lazy injection, use Provider, use static Injection, use Async Injection.</p>\n<p><em>Still alive?</em> Now we present you with Dagger Android and I am sure that it will certainly kill you\u00a0:P</p>\n<p>But wait! What exactly is the relation between a <em>Module</em> and a <em>Component</em>? We don\u2019t know that. Thankfully! Dagger 2 generates all it\u2019s code at compile time and we can actually see for ourselves what\u2019s going on behind the scenes. We can see that for our every Component, Dagger generates a <em>DaggerComponent</em> which has a \"<em>has-a</em>\u201d relationship with our <em>Module</em>. So far so good? Here comes \u201cThe Dahaka\u201d (an infinite storm in an ocean of P<em>roviders, Factories, Builders, MemberInjectors, DoubleChecks, Lazy, Producers...</em> ) You can easily get lost in those classes.\u00a0</p>\n<p><em>\u201cMost people think dependency injection is like a river that flows swift and sure in one direction, but I have seen the face of dependencies and I can tell you they are wrong. Dependency Injection is an ocean in a storm. You may wonder who I am and why I say this; sit down and I will tell you a tale like none that you have ever heard!\u201d</em>\u200a\u2014\u200aQuote inspired from <a href=\"http://www.imdb.com/title/tt0384444/quotes\">Prince of Persia</a> (<a href=\"http://www.imdb.com/title/tt0384444/quotes\">http://www.imdb.com/title/tt0384444/quotes</a>)</p>\n<p>In this talk I aim to <strong>Defeat \u201cThe Dahaka</strong> (a storm in the ocean of classes and Generics)\u201d or at least try to tame the beast. I will firstly go over the basics of Dagger and try to unleash the beast by going into the generated classes and finding out the patterns. I will then talk about applying those patterns to gradually learn the technicalities of Dagger Android. How can we move towards Dagger Android without blindly applying those annotations and also trying not to die in the hands of \u201cThe Dahaka\u201d by putting the leash back on the Beast.</p>\n<p>After attending this talk you will get a better sense of what goes on behind the scenes and how to smartly move towards Dagger Android and still keep your cool\u00a0:)</p>\n<p>For more information, lookout for the series \u201cDagger and The Dahaka\u201d on medium\u00a0: <a href=\"https://medium.com/@ragdroid\">https://medium.com/@ragdroid</a></p>\n<p>Here\u2019s how I am going to tame the Beast\u00a0:\u00a0</p>\n<ul><li><strong>Introduction</strong>\u00a0: Quick walkthrough of The Basics (Codes of Time)</li>\n<li><strong>Definitions</strong>\u00a0: A sneak peek at the generated code (Face of the Dahaka)</li>\n<li><strong>DoubleCheck</strong>: A deadly dive into Scopes (Unleash the Beast)</li>\n<li><strong>Relationships</strong>\u00a0: Components, Subcomponents, Dependent Components, Subcomponent Builder (Defeat the Dahaka)</li>\n<li><strong>Implementation</strong>\u00a0: Dagger 2 Android! (Befriend the Beast)</li>\n</ul>","video":[],"audio":[],"slide":[],"nid":"2560"},{"updated_date":"2017-08-18T10:43:38+02:00","type":"session","uri":"http://droidcon.de/en/sessions/android-instant-apps","title":"Android Instant Apps","label":"Android Instant Apps","datetime":[{"value":"2017-09-04 12:30:00","value2":"2017-09-04 13:10:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T14:30:00+02:00"],"end_iso":["2017-09-04T15:10:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["178"],"speaker_names":["Ben Weiss"],"category_id":"176","category":"APIs","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>This session will introduce Android Instant Apps and show developers how to migrate their existing installable app into an instant app.</p>\n","video":[],"audio":[],"slide":[],"nid":"2562"},{"updated_date":"2017-08-18T10:43:01+02:00","type":"session","uri":"http://droidcon.de/en/sessions/data-persistence-android-theres-room-improvement","title":"Data Persistence in Android: There&#039;s Room For Improvement","label":"Data Persistence in Android: There&#039;s Room For Improvement","datetime":[{"value":"2017-09-04 08:45:00","value2":"2017-09-04 09:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T10:45:00+02:00"],"end_iso":["2017-09-04T11:25:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["285"],"speaker_names":["Florina Muntenescu"],"category_id":"174","category":"Android Architecture","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>At Google I/O we launched Room: a persistence component designed to make your life easier when working with SQLite databases on Android. Entities and data access objects are defined using annotations, your queries are now checked at compile time and the database migrations are easy to implement. In this talk you\u2019ll find out whether you should or not integrate Room in your project. You\u2019ll learn how Room works, how it handles multi-threading, how to write queries and work with different return types, how to migrate your database, and finally, how to test your code.</p>\n","video":[],"audio":[],"slide":[],"nid":"2565"},{"updated_date":"2017-08-18T10:42:40+02:00","type":"session","uri":"http://droidcon.de/en/sessions/doppl-code-sharing","title":"Doppl Code Sharing","label":"Doppl Code Sharing","datetime":[{"value":"2017-09-05 14:45:00","value2":"2017-09-05 15:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T16:45:00+02:00"],"end_iso":["2017-09-05T17:25:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["761"],"speaker_names":["Kevin Galligan"],"category_id":"176","category":"APIs","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Code sharing is the new Cross Platform. There are a few options out in the market, but all of them require a third platform, immature libraries, and more than a little risk and hope. The dream would be to build two native apps, with very little of the risk and hope, and maximum shared logic.</p>\n<p>Our entry into this mix is called Doppl. It is a build tool and set of libraries built around Google\u2019s J2ObjC to facilitate maximum code sharing, with minimal risk, and minimal impact on development time and processes. In summary, you can share your business logic from Android to iOS, and leverage popular Android libraries such as: Retrofit, RxJava, Dagger, Gson, various ORM\u2019s, as well as SQLiteDatabase, shared preferences, Android threading, etc.\u00a0</p>\n<p>The Android side is 100% native, the iOS side uses generated Objective-C, and both use the best IDE\u2019s for their tasks (and yes, you can code in Swift). This talk will go through the what\u2019s and why\u2019s, show some live coding, and talk about how your best practice architecture can be leveraged on both platforms.</p>\n<p><em>Doppl is currently available for demo purposes and early access folks. Release in June. Core tools and libraries will be open source.</em></p>\n","video":[],"audio":[],"slide":[],"nid":"2571"},{"updated_date":"2017-08-18T10:42:17+02:00","type":"session","uri":"http://droidcon.de/en/sessions/flutter-60fps-ui-future","title":"Flutter - 60fps UI of the future","label":"Flutter - 60fps UI of the future","datetime":[{"value":"2017-09-04 09:30:00","value2":"2017-09-04 10:10:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T11:30:00+02:00"],"end_iso":["2017-09-04T12:10:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["121","284"],"speaker_names":["Pascal Welsch","Albrecht Noll"],"category_id":"181","category":"Languages","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>10 years Android - what's next? <a href=\"https://github.com/fuchsia-mirror\">Fuchsia</a> and <a href=\"https://flutter.io/\">Flutter</a>!</p>\n<p>Pascal and Albrecht (Android developer) talk\u00a0about their experience of writing an app\u00a0with the current alpha version of flutter for Android and iOS.</p>\n<p>The Android UI evolved a lot in the last decade. With\u00a0Holo, Android became kind of nice looking and with Material Design,\u00a0Android became beautiful. What hasn't changed is the UI Framework where layouts are inflated, layouted and measured\u00a0on the main thread. Decisions made in 2005 which can't be changed now.\u00a0This makes it harder than it should to run you app constantly on 60fps.</p>\n<p>Flutter, a mobile app SDK from Google is designed to render your app constantly at 60fps. It already comes with a rich catalog of pixel perfect Material Design which look and feel like widgets from the Android design support library. Flutter apps are written in Dart\u00a0and cross compile to Android and iOS to native code (not JavaScript!!!). Java glue code is only required when you're talking to system services like GPS or notifications.</p>\n<p>Flutter could be Googles transition plan for Fuchsia, Googles next operating system for mobile devices. Instead of supporting Android Apps on Fuchsia, apps for Fuchsia can be compiled to iOS and Android apps.\u00a0Fuchsia supports Dart as first class language and the system UI is written with flutter.</p>\n<p>It's time to look what's next!</p>\n","video":[],"audio":[],"slide":[],"nid":"2572"},{"updated_date":"2017-08-18T10:41:57+02:00","type":"session","uri":"http://droidcon.de/en/sessions/upgrading-moshi","title":"Upgrading to Moshi","label":"Upgrading to Moshi","datetime":[{"value":"2017-09-05 14:45:00","value2":"2017-09-05 15:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T16:45:00+02:00"],"end_iso":["2017-09-05T17:25:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["762"],"speaker_names":["Eric Cochran"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Moshi is the successor to Gson. I will briefly contrast Moshi to Gson and explain the advantages of Moshi's API and implementation. I will cover the power of the streaming API for complex use cases, like polymorphic deserialization, and how Okio's types make building off of Moshi fun and easy. Finally, we will go through how to use Moshi effectively with Retrofit and Auto-Value-Moshi and some tricks to employ when upgrading.</p>\n","video":[],"audio":[],"slide":[],"nid":"2573"},{"updated_date":"2017-08-18T10:41:35+02:00","type":"session","uri":"http://droidcon.de/en/sessions/making-android-wear-ui-magical","title":"Making the Android Wear UI magical","label":"Making the Android Wear UI magical","datetime":[{"value":"2017-09-04 08:45:00","value2":"2017-09-04 09:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T10:45:00+02:00"],"end_iso":["2017-09-04T11:25:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["279"],"speaker_names":["Hoi Lam"],"category_id":"180","category":"Internet of Things","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>In this talk, Hoi will talk about how to make the Android Wear UI magical. There are a number of platform improvements since API 23 to help make developing for circular and square screens a breeze. With new framework improvements since then, developers have an array of powerful tools to make things shine on the most personal device.</p>\n","video":[],"audio":[],"slide":[],"nid":"2850"},{"updated_date":"2017-08-18T10:41:07+02:00","type":"session","uri":"http://droidcon.de/en/sessions/using-android-things-detect-exterminate-reptilians","title":"Using Android Things to detect &amp; exterminate Reptilians","label":"Using Android Things to detect &amp; exterminate Reptilians","datetime":[{"value":"2017-09-05 09:45:00","value2":"2017-09-05 10:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T11:45:00+02:00"],"end_iso":["2017-09-05T12:25:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["97"],"speaker_names":["Gautier Mechling"],"category_id":"180","category":"Internet of Things","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Whether you believe it or not, the Reptilians are everywhere, and we have never been ready to face them so far.<br />\nWe <strong>WERE </strong>not ready... But this will finally change, now that <em>Android Things</em> has been released. Trust me, they didn't want to see that happen.</p>\n<p>We could still hear them laughing when we finally succeeded in developing stunning mobile applications a few years ago. They were not impressed. But now that we can use the power of Android to build physical stuff, it's a different story. Ever seen any Reptilian having goosebumps? Now you will.</p>\n<p>Together, we will discover Android Things and see how we can create a moving machine capable of detecting Reptilians (with touch/skin temperature sensors, and machine learning), but also capable of exterminating them (btw, I would appreciate if the droidcon staff could lend me a flame-thrower, it would make a great demo).</p>\n<p>How? Using a Raspberry Pi, an Arduino, and discovering+using some specific Android Things APIs, such as gpio, pwm, i2c, spi, uart, allowing us to interact with physical components.</p>\n<p>Come see the power of Android Things.</p>\n","video":[],"audio":[],"slide":[],"nid":"2968"},{"updated_date":"2017-08-18T10:40:47+02:00","type":"session","uri":"http://droidcon.de/en/sessions/keynote-how-be-android-expert","title":"[Keynote] How to be an Android Expert","label":"[Keynote] How to be an Android Expert","datetime":[{"value":"2017-09-04 08:00:00","value2":"2017-09-04 08:40:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T10:00:00+02:00"],"end_iso":["2017-09-04T10:40:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["777"],"speaker_names":["Chiu-Ki Chan"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Think of an Android expert. Why do you consider this person an expert? \u201cShe knows a lot about Android\u201d, you say. But how do you know? You know because she shares her knowledge, through blogs, talks, StackOverflow etc.</p>\n<p>Experts are just that, people who share their knowledge. Sharing puts you in a positive feedback loop: the more you share, the more knowledgeable you become. Let me walk you through some concrete steps you can take to start sharing and build up your expertise.</p>\n","video":[],"audio":[],"slide":[],"nid":"2970"},{"updated_date":"2017-08-21T12:44:10+02:00","type":"session","uri":"http://droidcon.de/en/sessions/brave-new-world-exploring-app-design-architecture-components-and-kotlin","title":"Brave new world!? Exploring App design with Architecture Components and Kotlin","label":"Brave new world!? Exploring App design with Architecture Components and Kotlin","datetime":[{"value":"2017-09-05 12:00:00","value2":"2017-09-05 12:40:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T14:00:00+02:00"],"end_iso":["2017-09-05T14:40:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["719"],"speaker_names":["Hendrik Kokocinski"],"category_id":"174","category":"Android Architecture","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Software architecture in Android has come a long way in the past years. With MVP and MVVM currently being very popular and concepts like React Native and Redux on the horizon Android developers can not complain about a lack of viable options these days.</p>\n<p>With \"Architecture Components\" Google finally presented their own solutions to some of the biggest problems Android developers face every day. This talk will give an introduction to\u00a0these components and will show how they can be intregrated into a Kotlin based App.</p>\n","video":[],"audio":[],"slide":[],"nid":"3005"},{"updated_date":"2017-09-04T17:27:14+02:00","type":"session","uri":"http://droidcon.de/en/sessions/fingerprint-authentication-mobile-banking-applications","title":"Fingerprint authentication in mobile banking applications","label":"Fingerprint authentication in mobile banking applications","datetime":[{"value":"2017-09-04 15:45:00","value2":"2017-09-04 16:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T17:45:00+02:00"],"end_iso":["2017-09-04T18:25:00+02:00"],"room_id":["3521"],"room":["Stage Zuse"],"speaker_uids":["775"],"speaker_names":["Sina Yazdanmehr"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>By adding the fingerprint reader, a new way to authenticate users has been introduced to smart phones. This new authentication feature is attractive to both developers and users.<br />\nAlthough this biometric authentication manner has simplified the authentication process, incorrect implementations can introduce critical security problems.</p>\n<p>Early adopters of fingerprint authentication are in many cases mobile banking applications, where this authentication vector can be used instead of a PIN for the login process. However, other, more sensitive actions such as money transactions pose a greater challenge when migrating to fingerprint authentication.</p>\n<p>Additionally, in order to increase security, virtually all mobile banking application nowadays depend on OTP algorithms to generate time-based secrets, which ultimately depend on a secret key (the seed). This secret key is the ultimate secret for access to mobile banking.</p>\n<p>Since this secret key needs to be available for the login and transaction authentication process, most current mobile banking applications solve this by encrypting the secret key with the user\u2019s PIN code, and then storing the PIN code on the device encrypted in such a way that it will be accessible with fingerprint authentication.<br />\nThe problem with this approach is that the keystore is accessible for root user without authentication.</p>\n<p>Developers utilize this solution because it does not require a lot of changes in the server side code or in the backend database. Other solutions require substantial changes.</p>\n<p>This presentation is going to introduce a novel approach which is secure and does not need any change in the backend database. Programmers will be able to use this way with a small change in the backend web-service and mobile application.<br />\nAdditionally, it is going to be shown how this manner can be employed for two-factor, and multi level authentication even when the device supports hardware-backed keystore in order to make the application more secure.</p>\n","video":[],"audio":[],"slide":[],"nid":"3285"},{"updated_date":"2017-08-18T10:35:45+02:00","type":"session","uri":"http://droidcon.de/en/sessions/home-improvement-architecture-kotlin","title":"Home Improvement: Architecture &amp; Kotlin","label":"Home Improvement: Architecture &amp; Kotlin","datetime":[{"value":"2017-09-04 15:45:00","value2":"2017-09-04 16:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T17:45:00+02:00"],"end_iso":["2017-09-04T18:25:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["684"],"speaker_names":["Jorge D. Ortiz-Fuentes"],"category_id":"174","category":"Android Architecture","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Two of the most relevant news from the recent Google IO were the Guide to App Architecture and the adoption of Kotlin as a first-class language. Both have a very positive impact in our applications.</p>\n<p>In my talk I will introduce and advanced architecture inspired in the Clean Architecture of Uncle Bob and I will\u00a0show the impact of these two elements.</p>\n<p>First I will cover the components provided for integration with the lifecycle and how this saves a lot of effort to preserve view models or presenters. \u00a0I will briefly cover th methods that we had available until know focusing on the use of a fragment with no view that had the retained instance property set to true.</p>\n<p>Then I will cover some real scenarios explaining the improvements that Kotlin provide us with. Some examples:<br />\n- Conciseness of data classes (and limitations)<br />\n- Property observation<br />\n- Use of extensions in presentation logic<br />\n- Sealed classes for results (as an either-like type)</p>\n<p>This is a \"Code or it didn't happen\" (TM) talk. ;-)</p>\n","video":[],"audio":[],"slide":[],"nid":"3302"},{"updated_date":"2017-08-18T10:35:18+02:00","type":"session","uri":"http://droidcon.de/en/sessions/marketing-developers-get-your-app-users-hands","title":"Marketing for developers: get your app in the users hands","label":"Marketing for developers: get your app in the users hands","datetime":[{"value":"2017-09-05 09:45:00","value2":"2017-09-05 10:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T11:45:00+02:00"],"end_iso":["2017-09-05T12:25:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["772"],"speaker_names":["Sylwester Madej"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Developers love to create stuff. Yes, we do. Most times it is the easier part of the product lifecycle.</p>\n<p>In this short presentation, I will take you to the other side. The side of \"personas\", \"landing pages\", \"sales funnels\" and all of this marketing mumbo jumbo.\u00a0My goal is to show you how to create the app that people want and how to make it visible. Sadly, most developers don't know much\u00a0about marketing process for finding user needs, building the audience and getting users for their apps.</p>\n<p>This talk is based on workshop \"Selling your product - basics of marketing for developers.\" that I have conducted on Codepot conference. I have presented it on Droidcon Turin 2015, but it is now updated based on my experiences from the last 2 years.</p>\n","video":[],"audio":[],"slide":[],"nid":"3304"},{"updated_date":"2017-08-18T10:34:57+02:00","type":"session","uri":"http://droidcon.de/en/sessions/animations-physics-cool-app-transitions","title":"Animations + Physics = cool App transitions","label":"Animations + Physics = cool App transitions","datetime":[{"value":"2017-09-05 09:00:00","value2":"2017-09-05 09:40:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T11:00:00+02:00"],"end_iso":["2017-09-05T11:40:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["790"],"speaker_names":["Richa Khanna"],"category_id":"176","category":"APIs","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p><strong>Abstract:</strong></p>\n<p>I will showcase how to create richer and more dynamic animations using the new <strong>physics-based animation library</strong> that provides a set of APIs for building animations that would use concepts like velocity, friction, spring effect. I will show examples of different cool transitions and how all of this can be utilized. In short, you will get to see, cool animations with physics effect.</p>\n<p><strong>Outline</strong></p>\n<ul><li>\n<p>What is Physics-based Animation?</p>\n</li>\n<li>\n<p>How is physics-based animation different from animator based animation?</p>\n</li>\n<li>\n<p>Different types of Dynamic Animations</p>\n</li>\n<li>\n<p>SpringAnimation, FlingAnimation</p>\n</li>\n<li>\n<p>How to use them to create beautiful &amp; natural-looking animations?</p>\n</li>\n</ul><p><strong>Medium article:</strong> <a href=\"https://medium.com/@richa.khanna/introduction-to-physics-based-animations-in-android-1be27e468835\">Introduction to Physics-based Animations in Android</a></p>\n<p><strong>Github project:</strong> <a href=\"https://github.com/richakhanna/physicsbasedanimation\">https://github.com/richakhanna/physicsbasedanimation</a></p>\n<p>\u00a0</p>\n","video":[],"audio":[],"slide":[],"nid":"3305"},{"updated_date":"2017-08-18T10:33:53+02:00","type":"session","uri":"http://droidcon.de/en/sessions/kotlinify-your-unit-tests-and-specs","title":"Kotlinify your unit tests (and specs!)","label":"Kotlinify your unit tests (and specs!)","datetime":[{"value":"2017-09-04 14:00:00","value2":"2017-09-04 14:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T16:00:00+02:00"],"end_iso":["2017-09-04T16:25:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["793","792"],"speaker_names":["Paulina Strychacz","Grzegorz Dec"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Kotlin is finally supported by Google as a first-class language. We\u2019ll present tips on how to write readable unit tests utilizing Kotlin and already available libraries. Let\u2019s check what benefits we can get from libraries like <strong>kotlintest</strong> and how it may speed up your work. We\u2019re gonna tell you also how to apply <strong>Spek Framework</strong> to make your tests a live specification. You will be introduced to <strong>Expekt</strong> library, which can be also used for assertions. With our hints you can easily choose the best library to include in your projects.</p>\n<p>Squeeze what's best from Kotlin libs making your tests maintainable and beautiful!</p>\n","video":[],"audio":[],"slide":[],"nid":"3346"},{"updated_date":"2017-08-21T12:44:11+02:00","type":"session","uri":"http://droidcon.de/en/sessions/reactive-clean-architecture-and-android-architecture-components-solid-formula-mvvm-based","title":"Reactive, Clean Architecture and Android Architecture Components, a solid formula for a MVVM based architecture. ","label":"Reactive, Clean Architecture and Android Architecture Components, a solid formula for a MVVM based architecture. ","datetime":[{"value":"2017-09-05 14:45:00","value2":"2017-09-05 15:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T16:45:00+02:00"],"end_iso":["2017-09-05T17:25:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["797"],"speaker_names":["Lucia Payo"],"category_id":"174","category":"Android Architecture","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p><strong>Reactive development</strong> that links long-lived objects with pure functions is hot for good reason. <strong>Clean architecture</strong> helps with the separation of concerns making our code unit testable and separated from the framework. The recently released <strong>Android Architecture Components</strong>, and more specifically,\u00a0the LiveData and ViewModel, make it easy to connect to the framework. If we mix this three and add some sparks of <strong>Dagger</strong> on top we get a solid formula for a Model-View-ViewModel based architecture. \u00a0</p>\n<p>The talk starts with a reminder of the characteristics any good architecture should have. This characteristics include: testability, separation of concerns, modularity, \u00a0among some other good practices. The next step is to cover the three layers from clean architecture:</p>\n<ul><li>\n<p>Data: This is the layer that keeps the entities. We\u2019ll show how to create a fully reactive data layer that serves the entities in streams.</p>\n</li>\n<li>\n<p>Domain: This is a connection layer that holds the business logic to create use cases. We\u2019ll show how to make it stateless and 100% free of framework code.</p>\n</li>\n<li>\n<p>Presentation: This is the layer where the new LiveData and ViewModel classes come into play. We will show how to transform the use cases from the domain layer into view specific models using the new android architecture components.</p>\n</li>\n</ul><p>The goal of the talk is to provide insights and guidelines on how to build a solid MVVM based reactive architecture. There will be links to meaningful resources that will cover the topics of the talk, like a GitHub example project and blog posts.</p>\n","video":[],"audio":[],"slide":[],"nid":"3354"},{"updated_date":"2017-08-18T10:30:32+02:00","type":"session","uri":"http://droidcon.de/en/sessions/room-and-objectbox-new-persistence-solutions","title":"Room and ObjectBox: New Persistence Solutions","label":"Room and ObjectBox: New Persistence Solutions","datetime":[{"value":"2017-09-05 13:30:00","value2":"2017-09-05 14:10:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T15:30:00+02:00"],"end_iso":["2017-09-05T16:10:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["359"],"speaker_names":["Markus Junginger"],"category_id":"176","category":"APIs","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>At I/O 2017,\u00a0Google presented \"Room,\" a new ORM\u00a0which is quite different from existing ones. With it unique features it separates itself and also polarizes developers.</p>\n<p>Another newcomer is ObjectBox, a NoSQL/Object database that claims to be faster than anything else. Just like ORMs it offers relations, queries, indexing,\u00a0and some special features.</p>\n<p>This talk gives you an extensive update on new persistence developments. Learn about pros and cons to help you choose for your next Android project.</p>\n","video":[],"audio":[],"slide":[],"nid":"3355"},{"updated_date":"2017-08-18T11:13:02+02:00","type":"session","uri":"http://droidcon.de/en/sessions/driver-assistant-solutions-android","title":"Driver Assistant Solutions with Android","label":"Driver Assistant Solutions with Android","datetime":[{"value":"2017-09-04 10:15:00","value2":"2017-09-04 10:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T12:15:00+02:00"],"end_iso":["2017-09-04T12:55:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["886"],"speaker_names":["Giorgio Natili"],"category_id":"180","category":"Internet of Things","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>One of most exciting engineering challenges today is building a reliable self-driving car or driving support system.\u00a0<br />\nToday's vehicles offer a huge variety of sensors that can feed any algorithm with enough data to provide a pretty solid driving support experience. On top of this, despite some differences, smartphones sensors are robust enough to provide a rich set of environmental information.<br />\nDuring this presentation, we'll discover how to implement computer vision solutions on Android with OpenCV, and how to mash-up device and vehicle data to build a driver assistant solution with open source technologies.<br />\n\u00a0</p>\n","video":[],"audio":[],"slide":[],"nid":"3569"},{"updated_date":"2017-08-18T10:28:45+02:00","type":"session","uri":"http://droidcon.de/en/sessions/voice-everywhere","title":"Voice Everywhere","label":"Voice Everywhere","datetime":[{"value":"2017-09-04 08:45:00","value2":"2017-09-04 09:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T10:45:00+02:00"],"end_iso":["2017-09-04T11:25:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["975"],"speaker_names":["David Low"],"category_id":"180","category":"Internet of Things","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":["3579"],"partner_names":["Amazon Alexa"],"abstract":"<p>We are currently witnessing the greatest shift in consumer behaviour since the move from web experience to the \u2018mobile moment\u2019, and it\u2019s all around us. Reminders, music, shopping, information, smart home control and more can now be summoned with just a simple utterance, enabled by devices which don\u2019t resemble the grey-box computer or the smart phones we\u2019ve grown used to.\u00a0 In this talk we will discuss:</p>\n<ul><li>How the Alexa community creates more and more delightful experiences for customers every day</li>\n<li>How Alexa helps people with their daily lives in so many ways</li>\n<li>What we mean by voice and Alexa being truly everywhere</li>\n</ul><p>This session is powered by Amazon Alexa</p>\n","video":[],"audio":[],"slide":[],"nid":"3580"},{"updated_date":"2017-08-18T10:28:22+02:00","type":"session","uri":"http://droidcon.de/en/sessions/starting-scratch-2017","title":"Starting from scratch in 2017","label":"Starting from scratch in 2017","datetime":[{"value":"2017-09-04 09:30:00","value2":"2017-09-04 10:10:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T11:30:00+02:00"],"end_iso":["2017-09-04T12:10:00+02:00"],"room_id":["3521"],"room":["Stage Zuse"],"speaker_uids":["989","990"],"speaker_names":["Stefano Bonetta","Simon Joecks"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":["3582"],"partner_names":["HERE"],"abstract":"<p>Android development changed significantly in 2017 (Kotlin, Architecture Components and much more). Some of the most tricky and debatable questions now are: how to start a scalable project from scratch? How to decide which technology/library to use?<br />\nThe HERE WeGo App team has worked for years to define a sophisticated release and development process, with a high level of automation that allowed to quickly followup on user issues and actively develop features. But legacy code and a large framework made it difficult to move even faster.</p>\n<p>Lessons learned? We will discuss how to start over with all the learnings on a greenfield project.</p>\n<p>Technologies that will be covered: Kotlin, Jenkins, JobDsl, Architecture Components, GraphQL, gRPC and more.</p>\n<p>This session is powered by HERE</p>\n","video":[],"audio":[],"slide":[],"nid":"3583"},{"updated_date":"2017-08-17T12:43:52+02:00","type":"session","uri":"http://droidcon.de/en/sessions/how-build-voice-foundations-and-why-mobile-developers-are-already-one-step-ahead-beginner","title":"How to build for Voice: foundations, and why mobile developers are already one step ahead (beginner)","label":"How to build for Voice: foundations, and why mobile developers are already one step ahead (beginner)","datetime":[{"value":"2017-09-04 12:00:00","value2":"2017-09-04 14:00:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T14:00:00+02:00"],"end_iso":["2017-09-04T16:00:00+02:00"],"room_id":["3521"],"room":["Stage Zuse"],"speaker_uids":["1023"],"speaker_names":["Jeff Blankenburg"],"category_id":"176","category":"APIs","format_id":"197","format":"Workshop","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":["3579"],"partner_names":["Amazon Alexa"],"abstract":"<p>10 years ago, mobile changed the way users access information. This was made possible by the relentless innovation brought about by developers who built experiences from the ground up to be mobile-first. Today, as millions of users get accustomed to speaking to their devices, mobile developers have an opportunity to pioneer again, with voice.</p>\n<p>Join us in a hands-on workshop to learn the foundational pillars of voice design, how voice differs from mobile, and how to build a simple voice-enabled experience from the ground up leveraging the Alexa Skills Kit (ASK). <strong>To attend the workshop, please <a href=\"http://www.cvent.com/d/45qv7k\" target=\"_blank\"> register here</a></strong></p>\n<p>You will learn:</p>\n<p>-\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Foundations of voice design<br />\n-\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Differences and similarities with mobile\u00a0development<br />\n-\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0How to build a simple\u00a0skill\u00a0with the Alexa Skills Kit (ASK)</p>\n<p>Preparation requirements:\u00a0</p>\n<p>1.\u00a0<strong>Sign up</strong>\u00a0for an\u00a0<a href=\"https://developer.amazon.com/\" target=\"_blank\">Amazon developer account</a>.<br />\n2.\u00a0<strong>Sign up</strong>\u00a0for an\u00a0<a href=\"https://aws.amazon.com/\" target=\"_blank\">AWS account</a>.\u00a0In the AWS account, select\u00a0<strong>EU (Ireland)</strong>\u00a0as your location. Credit card details are needed, no fee applied.</p>\n<p>This session is powered by Amazon Alexa</p>\n","video":[],"audio":[],"slide":[],"nid":"3585"},{"updated_date":"2017-08-17T12:45:01+02:00","type":"session","uri":"http://droidcon.de/en/sessions/how-build-alexa-skills-learn-create-voice-enabled-experiences-alexa-advanced","title":"How to build Alexa Skills: learn to create voice-enabled experiences with Alexa (advanced)","label":"How to build Alexa Skills: learn to create voice-enabled experiences with Alexa (advanced)","datetime":[{"value":"2017-09-05 09:00:00","value2":"2017-09-05 11:00:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T11:00:00+02:00"],"end_iso":["2017-09-05T13:00:00+02:00"],"room_id":["3521"],"room":["Stage Zuse"],"speaker_uids":["1022"],"speaker_names":["Andrea Muttoni"],"category_id":"176","category":"APIs","format_id":"197","format":"Workshop","level_id":"185","level":"Pro","language_id":"186","language":"English","partner_ids":["3579"],"partner_names":["Amazon Alexa"],"abstract":"<p>10 years ago, mobile changed the way users access information. This was made possible by the relentless innovation brought about by developers who built experiences from the ground up to be mobile-first. Today, as millions of users get accustomed to speaking to their devices, mobile developers have an opportunity to pioneer again, with voice.</p>\n<p>In this hands-on workshop, you will apply the foundations of voice design by building different types of voice-enabled experiences e.g. a game\u00a0from the ground up. To do this we will leverage the Alexa Skills Kit (ASK) and explore advanced techniques to make your\u00a0skills more natural and more engaging. <strong>To attend the workshop, please <a href=\"http://www.cvent.com/d/f5qg8z\" target=\"_blank\"> register here</a></strong></p>\n<p>You will learn:</p>\n<p>-\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0How to build a skill\u00a0with the Alexa Skills Kit (ASK)<br />\n-\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Advanced skill design techniques like:\u00a0\u00a0\u00a0<br />\n- \u00a0\u00a0\u00a0\u00a0 Internationalization (i18n)<br />\n- \u00a0\u00a0\u00a0\u00a0 Session persistence<br />\n- \u00a0 \u00a0\u00a0 Multi-turn dialog<br />\n- \u00a0 \u00a0\u00a0 State management<br />\n-\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Voice design best practices</p>\n<p>Preparation requirements:\u00a0</p>\n<p>1.\u00a0<strong>Sign up</strong>\u00a0for an\u00a0<a href=\"https://developer.amazon.com/\" target=\"_blank\">Amazon developer account</a>.<br />\n2.\u00a0<strong>Sign up</strong>\u00a0for an\u00a0<a href=\"https://aws.amazon.com/\" target=\"_blank\">AWS account</a>.\u00a0In the AWS account, select\u00a0<strong>EU (Ireland)</strong>\u00a0as your location. Credit card details are needed, no fee applied.</p>\n<p>This session is powered by Amazon Alexa</p>\n","video":[],"audio":[],"slide":[],"nid":"3586"},{"updated_date":"2017-08-18T10:25:47+02:00","type":"session","uri":"http://droidcon.de/en/sessions/developing-streaming-android-app-tv-minutes","title":"Developing a Streaming Android App for TV in Minutes","label":"Developing a Streaming Android App for TV in Minutes","datetime":[{"value":"2017-09-05 12:00:00","value2":"2017-09-05 12:40:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T14:00:00+02:00"],"end_iso":["2017-09-05T14:40:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["767"],"speaker_names":["Mario Viviani"],"category_id":"174","category":"Android Architecture","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":["3573"],"partner_names":["Amazon Appstore"],"abstract":"<p>In this session, we cover what's needed to bring your <strong>Media Streaming Android App</strong> to the living room the easiest way possible: we\u2019ll see how to <strong>create high quality\u00a0Android Media Streaming apps in minutes</strong> using a new development tool Amazon has created: the <strong>Fire App Builder</strong> template for Android Apps for TV (<a href=\"http://bit.ly/FireAppBuilderDoc\">http://bit.ly/FireAppBuilderDoc</a>). Using this new tool, we\u2019ll understand how to easily connect a native Android app to video streaming services with just a few lines of code!</p>\n<p>Together we will see how to:</p>\n<ul><li>Build a full-fledged Android app for TV in a few minutes by connecting it to a feed</li>\n<li>Customize the template</li>\n<li>Add modules for IAP, Subscription, Live Streaming, Ads and much more</li>\n<li>Submit the app!</li>\n</ul><p>This session is powered by Amazon Appstore</p>\n","video":[],"audio":[],"slide":[],"nid":"3598"},{"updated_date":"2017-08-30T14:10:49+02:00","type":"session","uri":"http://droidcon.de/en/sessions/optimizing-android-apps-desktop-experience","title":"Optimizing Android apps for desktop experience","label":"Optimizing Android apps for desktop experience","datetime":[{"value":"2017-09-05 09:45:00","value2":"2017-09-05 10:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T11:45:00+02:00"],"end_iso":["2017-09-05T12:25:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["1019"],"speaker_names":["Victor Okunev"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>The mobile devices of the latest generation are now capable of powering the desktop user experience. Get your Android apps ready for the big screen. Learn what it takes to optimize your apps for enhanced interactions, desktop mode capabilities, and an overall amplified in-app experience.</p>\n<p>Stay for the quiz and for a Samsung DeX station giveaway at the end of the session!</p>\n","video":[],"audio":[],"slide":[],"nid":"3599"},{"updated_date":"2017-08-18T10:24:53+02:00","type":"session","uri":"http://droidcon.de/en/sessions/open-source-mobile-phone-dream-come-true","title":"Open Source mobile phone - a dream come true","label":"Open Source mobile phone - a dream come true","datetime":[{"value":"2017-09-05 10:30:00","value2":"2017-09-05 10:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T12:30:00+02:00"],"end_iso":["2017-09-05T12:55:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["451"],"speaker_names":["Alin Jerpelea"],"category_id":"174","category":"Android Architecture","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>\u201cOpen Devices is a Sony Developer Program initiative that provides a Base Platform built from Open Source Software,<br />\nusing new kernels (4.4) and minimal vendor binaries, with the goal to ensure privacy and security over proprietary features.<br />\nDuring the last 6 years of working within the Open Source community we've seen the pains involved in keeping a complete portfolio, not just the latest flagships, up to date. At the same time there has been a major shift from just features to privacy oriented custom software. The latter requiring fast releases and fast security updates.<br />\nIn this session we will go into detail on how to accomplish this, what obstacles we've encountered and the lessons learned from our work towards that goal. And something about the future.\u201d</p>\n","video":[],"audio":[],"slide":[],"nid":"3600"},{"updated_date":"2017-08-18T10:24:19+02:00","type":"session","uri":"http://droidcon.de/en/sessions/lessons-building-android-apps-poor-networks-and-low-end-devices","title":"Lessons from building Android apps for poor networks and low-end devices","label":"Lessons from building Android apps for poor networks and low-end devices","datetime":[{"value":"2017-09-05 13:30:00","value2":"2017-09-05 14:10:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T15:30:00+02:00"],"end_iso":["2017-09-05T16:10:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["1035","1036"],"speaker_names":["Alex Sourov","Daniel Colascione"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>This session will focus on how to build android apps designed for poor networks and low-end devices. We\u2019ll cover examples of innovations in this space that range from low-level improvements on the VM and system initialization level to clever product designs that make the app engaging even when offline.</p>\n","video":[],"audio":[],"slide":[],"nid":"3607"},{"updated_date":"2017-08-18T10:20:58+02:00","type":"session","uri":"http://droidcon.de/en/sessions/no-privacy-will-not-be-option-%E2%80%93-legal-insight-privacy-within-apps","title":"No-Privacy will not be an option \u2013 A legal insight on privacy within apps","label":"No-Privacy will not be an option \u2013 A legal insight on privacy within apps","datetime":[{"value":"2017-09-04 12:00:00","value2":"2017-09-04 12:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T14:00:00+02:00"],"end_iso":["2017-09-04T14:25:00+02:00"],"room_id":["3519"],"room":["Stage Lovelace"],"speaker_uids":["1038"],"speaker_names":["Hans-Christian Woger"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"184","level":"Intermediate","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Data protection has been one of the buzzwords within the last years. But the legal issues are just getting started. With the new General Data Protection Directive in effect and applicable from May next year the legal requirements for apps have already changed. But the additional new e-privacy-directive is on its way and will be a \"gamechanger\". Not to obey privacy by design and privacy by default will not be an option in the future.</p>\n","video":[],"audio":[],"slide":[],"nid":"3610"},{"updated_date":"2017-08-26T08:45:18+02:00","type":"session","uri":"http://droidcon.de/en/sessions/huawei-bridges-success-western-android-developers-china","title":" Huawei bridges the success of Western Android developers into China. ","label":" Huawei bridges the success of Western Android developers into China. ","datetime":[{"value":"2017-09-05 12:45:00","value2":"2017-09-05 13:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T14:45:00+02:00"],"end_iso":["2017-09-05T15:25:00+02:00"],"room_id":["3520"],"room":["Stage Turing"],"speaker_uids":["1045"],"speaker_names":["Dr. Jaime Gonzalo"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>China generates 30% of the Mobile Apps &amp; Games economy, but it remains an unexplored territory for the majority of Western developers.</p>\n<p>Huawei bridges that gap between China and the West, helping developers find success stories on both sides, representing one of the top Android distribution channels truly Global.</p>\n<p>Market insight, best practices &amp; useful tips, and the Huawei key that opens all the gates of the Great Wall.</p>\n","video":[],"audio":[],"slide":[],"nid":"3622"},{"updated_date":"2017-08-24T10:02:38+02:00","type":"session","uri":"http://droidcon.de/en/sessions/welcome","title":"Welcome!","label":"Welcome!","datetime":[{"value":"2017-09-04 07:45:00","value2":"2017-09-04 08:00:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T09:45:00+02:00"],"end_iso":["2017-09-04T10:00:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["1048"],"speaker_names":["Boris Jebsen"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Welcome everyone at droidcon Berlin 2017!</p>\n","video":[],"audio":[],"slide":[],"nid":"3629"},{"updated_date":"2017-08-24T15:34:55+02:00","type":"session","uri":"http://droidcon.de/en/sessions/volkswagen-digitallab-berlin-new-approaches-creation-digital-services-end-customers","title":"Volkswagen Digital:Lab Berlin - New approaches to the creation of digital services for end customers","label":"Volkswagen Digital:Lab Berlin - New approaches to the creation of digital services for end customers","datetime":[{"value":"2017-09-04 14:00:00","value2":"2017-09-04 14:25:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-04T16:00:00+02:00"],"end_iso":["2017-09-04T16:25:00+02:00"],"room_id":["3521"],"room":["Stage Zuse"],"speaker_uids":["1049"],"speaker_names":["Stefan Gotthardt"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Apart from its \"heavy metal\" automobile production business the Volkswagen group has established various labs and innovation teams as part of its future mobility and digital transformation approach - one of them being the Digital:Lab in Berlin. As data driven services and business models have become highly important for today\u2019s industry and society Stefan will give an introduction to the new approaches of collaboration in agile teams and the creation of digital services for the end customer.</p>\n","video":[],"audio":[],"slide":[],"nid":"3630"},{"updated_date":"2017-08-28T17:22:59+02:00","type":"session","uri":"http://droidcon.de/en/sessions/keynote-designing-trust-user-experience-privacy","title":"[Keynote] Designing for Trust: User Experience + Privacy ","label":"[Keynote] Designing for Trust: User Experience + Privacy ","datetime":[{"value":"2017-09-05 08:00:00","value2":"2017-09-05 08:45:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T10:00:00+02:00"],"end_iso":["2017-09-05T10:45:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["1050"],"speaker_names":["Ame Elliott"],"category_id":"179","category":"Design / UI/UX","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>As mobile apps move software into more areas of our lives, there are new privacy risks. Historically, security has\u00a0been treated as an engineering topic, with user experience separated from the technical implementation. The fast-changing landscape of mobile and IoT applications demand new approaches to the user experience of privacy. By exploring short-comings and\u00a0successful cross-platform experiences from a security point of view, this talk describes ways designers and developers can partner to create User\u00a0Experiences people trust. From messaging apps and chatbots, to connected homes, to drones, this an exciting era for UX design, and as a community\u00a0we\u2019re up to the challenge of privacy preservation.\u00a0</p>\n","video":[],"audio":[],"slide":[],"nid":"3641"},{"updated_date":"2017-08-30T14:11:36+02:00","type":"session","uri":"http://droidcon.de/en/sessions/dont-let-dream-automation-turn-your-biggest-nightmare","title":"Don&#039;t let the dream of automation turn into your biggest nightmare.","label":"Don&#039;t let the dream of automation turn into your biggest nightmare.","datetime":[{"value":"2017-09-05 15:30:00","value2":"2017-09-05 15:55:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T17:30:00+02:00"],"end_iso":["2017-09-05T17:55:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["1051"],"speaker_names":["Nina Wieczorek"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":["3640"],"partner_names":["Nativetap.io"],"abstract":"<p>I will talk about automation and that, like everything else in life, it should be introduced in the right place and at the right time. I've seen many companies thinking that automation will magically change everything, only to then realize that it consumes a lot of time and resources.\u00a0 Automation is great but in some (sometimes many) cases manual testing is illogically more effective</p>\n","video":[],"audio":[],"slide":[],"nid":"3643"},{"updated_date":"2017-08-31T13:12:32+02:00","type":"session","uri":"http://droidcon.de/en/sessions/farewell","title":"Farewell","label":"Farewell","datetime":[{"value":"2017-09-05 16:00:00","value2":"2017-09-05 16:30:00","timezone":"Europe/Berlin","timezone_db":"UTC","date_type":"datetime"}],"start_iso":["2017-09-05T18:00:00+02:00"],"end_iso":["2017-09-05T18:30:00+02:00"],"room_id":["3518"],"room":["Stage Lamarr"],"speaker_uids":["1048"],"speaker_names":["Boris Jebsen"],"category_id":"178","category":"Best Practices / Code Quality","format_id":"182","format":"Talk","level_id":"183","level":"Beginner","language_id":"186","language":"English","partner_ids":[],"partner_names":[],"abstract":"<p>Thanks for coming to droidcon Berlin 2017!</p>\n","video":[],"audio":[],"slide":[],"nid":"3644"}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment