DROIDCON
BERLIN 2018
Bartosz Kosarzycki
@bkosarzycki
Michał Radtke
Jun 25-27, 2018
Summary 2018
- 1200+ Attendees
- 10th anniversary (started with 200 devs in 2009)
- 3 days, 5 tracks, 100+ sessions
- Android, Kotlin, Machine Learning, Flutter, AI, VR,
AR, Android-For-Business, Chromebooks,
Tensor-Flow, SAP and more
- Introduced Global Community Platform
Our summary
- ⅕ - Kotlin as a language, improvements, libraries, DSL
- ⅕ - Gradle performance improvements / tweaks
- ⅕ - Android for business / Chromebooks
- ⅕ - RxJava must die, get rid of Java style in Kotlin
- ⅕ - Commercial e.g. Huawei AI, Google Cloud etc.
Global Community
Platform - DroidCon
- Knowledge exchange platform
- “Online DroidCon”
- Videos/Tutorials/Presentations
- InVision project (not implemented yet)
Blurring the line between native and the web
- History: J2ObjC, GWT -> multi-platform frameworks
- Based on Kotlin
- Runs on Android/iOS/Linux/MacOS/Chromebook/Win
- Uses kotlin-native - platform independent code
- Chromebooks: run android apps and linux native apps (Android Studio)
- Webapps: background sync api, web notifications, getUserMedia (mic, cam), webVR,
webBluetooth, webUSB
Jake Wharthon
HERDING LLAMAS IN YOUR FLAT - A DEEP DIVE
INTO ARCORE AND SCENEFORM
- http://poly.google.com/ - Google polygon database
- ArFragment, ArSceneView
- CollisionDetection -> resolveOverlap()
- Renderable -> casting shadows
- SFAs Polygons, file formats
- Emulator support
- AndroidStudio SceneForm plugin
Steven Mohr
link
link
link
link
link
link
link
link
OLGA NAGATOVA - Polygon Artist
- http://www.nabatova.ca/ - Personal Website
AUGMENTED REALITY FOR EVERYONE,
EVERYWHERE WITH ARCORE
- ARCore utilization
Till Krempel
Gradle performance
- Min SDK 21 - 30% faster build
- Better hardware
- Project modularisation (module per feature)
- Parallel gradle task execution
- Offline gradle builds
BUILD A REACTIVE FLUTTER APP!
- How to write Reactive Flutter Apps
- Hired by google to write flutter cookbook
- layered, modular, testable, SOLID
- StatefulWidget
Brian Egan
Groupon - Showcase app
Tomek Polanski
- How he convinced Groupon to write Flutter app
- Started from scratch
- Success story
+
Chrome OS apps
ANDROID ENTERPRISE ON CHROME OS
- Target API 23+
- Prepare Android apps for Chromebooks
- Touchpad gestures
- Be ready for keyboard/mouse support (keyboard shortcuts, arrows, mouse right click)
- Stylus support
- Dynamic window management (resizing)
- ChromeOS emulator
- AndroidStudio for ChromeOS (works only
PixelBooks as of now)
- https://twitter.com/KennethFSWE/status/953766120502292480
- medium
Kenneth Ford
VIDEO: LINK
STATE OF KOTLIN LANG
- THE STATE OF THE KOTLIN ECOSYSTEM
Zan Markan
STATE OF KOTLIN LANG
SHARE CODE IN KOTLIN
- Alternative to C++
- Alternative to Xamarin common code
- Android / iOS
- “(CODE) SHARING IS CARING”
- inject platform specific logic into shared code
Tobias Heine Said Tahsin Dane
Rx… Does it need to die?
- Developers tend to use it even for simple event handling (e.g. on clicks) tasks or API request
- Rx should be used only for handling complex streams of data
- Rx introduces new kinds of issues if you don’t use it daily
- You can easily use coroutines instead of Rx
- Created in times of Java 6;
not-needed while Java 8/Kotlin is available
- proactively ask the question:
is this a reactive scenario?
- It’s harder to write unit tests when you use RX
If possible, use native tools, like
Coroutines in Kotlin, LiveData, etc.
Christof Vollrath - notes
link
GRAPHQL
- Apollo library - caching graphQL client for mobile
- developed by Facebook
- like SQL for data
- GraphSQL vs REST - you get only what you want
- single endpoint: /graphql
- Presentation about UFO sightings ;)
CHEATSHEET - link
Annyce Davis
KOIN
- Kotlin allows us to use DSL instead of Annotation Processors
- Annotation Processors are slow
- Annotation Processors (as of now) kill Gradle incremental compilation
- KOIN vs Dagger 2
Danny Preussler
FONTS, EMOJI AND TEXT USING SUPPORT
LIBRARIES
- Easily import fonts
- EmojiAppCompat usage
- EmojiTextViewHelper for customs views
- Downloadable fonts (from Google resources,
can be downloaded during app installation)
- TextView auto-sizing (width and height shouldn’t be
wrap_content)
Anita Singh
TENSOR FLOW - on mobile
- Machine Learning APIs - Google // IBM // Microsoft
- Deep neural network
- pix2pix tool
- cat model -> 680 MB -> SO OPTIMISE!
- Draw to pix sample app
Attila Blenesi
VIDEO: LINK
MOBIUS - LOOPY UI
- State management library
- Kotlin data classes represent events
- Events, inputs, Effects
- Presentation
Petter Mahlen
Kirin 970 first introduced a dedicated Neural Processing Unit (NPU) on the mobile AI computing platform
BUILDING A DECENTRALIZED
APP ON ANDROID
- “OPPORTUNITIES IN THE DECENTRALIZED APPS WORLD”
- you're told who the user is
- only the user can decrypt the data
- decentralized app: authentication & encryption & storage
- S3-like storage
- keys generated on device
- GDPR world in European Union
- Facebook “leaks”
Friedger Müffke
APPLICATION STORE:
https://app.co/
Data Binding on Android
Ash Davies
GITLAB - THE BEST APPS ARE BUILT IN
PYJAMA-PANTS
- GitLab team around the world
- Run a “daily”, not project related, to talk about personal life and get to know one another
- They run a blog - link
Job van der Voort
HOW TO RUN A COMPANY GUIDE:
HANDBOOK
Onboarding - link
Hiring - link
Spending company money - link
Fun
Links / References
- DroidCon Berlin YouTube channel - link
- DroidCon official website - link
- https://twitter.com/cvollrath
- Machine Learning - link, link, link
- https://medium.com/@sabag.ronen
- https://twitter.com/danlowlows/status/858754840419196929
QUESTIONS?
@bkosarzycki

DroidCon Berlin 2018 summary

  • 1.
  • 3.
    Summary 2018 - 1200+Attendees - 10th anniversary (started with 200 devs in 2009) - 3 days, 5 tracks, 100+ sessions - Android, Kotlin, Machine Learning, Flutter, AI, VR, AR, Android-For-Business, Chromebooks, Tensor-Flow, SAP and more - Introduced Global Community Platform
  • 5.
    Our summary - ⅕- Kotlin as a language, improvements, libraries, DSL - ⅕ - Gradle performance improvements / tweaks - ⅕ - Android for business / Chromebooks - ⅕ - RxJava must die, get rid of Java style in Kotlin - ⅕ - Commercial e.g. Huawei AI, Google Cloud etc.
  • 6.
    Global Community Platform -DroidCon - Knowledge exchange platform - “Online DroidCon” - Videos/Tutorials/Presentations - InVision project (not implemented yet)
  • 9.
    Blurring the linebetween native and the web - History: J2ObjC, GWT -> multi-platform frameworks - Based on Kotlin - Runs on Android/iOS/Linux/MacOS/Chromebook/Win - Uses kotlin-native - platform independent code - Chromebooks: run android apps and linux native apps (Android Studio) - Webapps: background sync api, web notifications, getUserMedia (mic, cam), webVR, webBluetooth, webUSB Jake Wharthon
  • 12.
    HERDING LLAMAS INYOUR FLAT - A DEEP DIVE INTO ARCORE AND SCENEFORM - http://poly.google.com/ - Google polygon database - ArFragment, ArSceneView - CollisionDetection -> resolveOverlap() - Renderable -> casting shadows - SFAs Polygons, file formats - Emulator support - AndroidStudio SceneForm plugin Steven Mohr
  • 13.
  • 14.
    OLGA NAGATOVA -Polygon Artist - http://www.nabatova.ca/ - Personal Website
  • 15.
    AUGMENTED REALITY FOREVERYONE, EVERYWHERE WITH ARCORE - ARCore utilization Till Krempel
  • 21.
    Gradle performance - MinSDK 21 - 30% faster build - Better hardware - Project modularisation (module per feature) - Parallel gradle task execution - Offline gradle builds
  • 28.
    BUILD A REACTIVEFLUTTER APP! - How to write Reactive Flutter Apps - Hired by google to write flutter cookbook - layered, modular, testable, SOLID - StatefulWidget Brian Egan Groupon - Showcase app Tomek Polanski - How he convinced Groupon to write Flutter app - Started from scratch - Success story
  • 30.
  • 31.
    ANDROID ENTERPRISE ONCHROME OS - Target API 23+ - Prepare Android apps for Chromebooks - Touchpad gestures - Be ready for keyboard/mouse support (keyboard shortcuts, arrows, mouse right click) - Stylus support - Dynamic window management (resizing) - ChromeOS emulator - AndroidStudio for ChromeOS (works only PixelBooks as of now) - https://twitter.com/KennethFSWE/status/953766120502292480 - medium Kenneth Ford
  • 32.
  • 34.
    STATE OF KOTLINLANG - THE STATE OF THE KOTLIN ECOSYSTEM Zan Markan
  • 35.
  • 36.
    SHARE CODE INKOTLIN - Alternative to C++ - Alternative to Xamarin common code - Android / iOS - “(CODE) SHARING IS CARING” - inject platform specific logic into shared code Tobias Heine Said Tahsin Dane
  • 41.
    Rx… Does itneed to die? - Developers tend to use it even for simple event handling (e.g. on clicks) tasks or API request - Rx should be used only for handling complex streams of data - Rx introduces new kinds of issues if you don’t use it daily - You can easily use coroutines instead of Rx - Created in times of Java 6; not-needed while Java 8/Kotlin is available - proactively ask the question: is this a reactive scenario? - It’s harder to write unit tests when you use RX If possible, use native tools, like Coroutines in Kotlin, LiveData, etc.
  • 42.
  • 45.
    GRAPHQL - Apollo library- caching graphQL client for mobile - developed by Facebook - like SQL for data - GraphSQL vs REST - you get only what you want - single endpoint: /graphql - Presentation about UFO sightings ;) CHEATSHEET - link Annyce Davis
  • 51.
    KOIN - Kotlin allowsus to use DSL instead of Annotation Processors - Annotation Processors are slow - Annotation Processors (as of now) kill Gradle incremental compilation - KOIN vs Dagger 2 Danny Preussler
  • 56.
    FONTS, EMOJI ANDTEXT USING SUPPORT LIBRARIES - Easily import fonts - EmojiAppCompat usage - EmojiTextViewHelper for customs views - Downloadable fonts (from Google resources, can be downloaded during app installation) - TextView auto-sizing (width and height shouldn’t be wrap_content) Anita Singh
  • 61.
    TENSOR FLOW -on mobile - Machine Learning APIs - Google // IBM // Microsoft - Deep neural network - pix2pix tool - cat model -> 680 MB -> SO OPTIMISE! - Draw to pix sample app Attila Blenesi
  • 62.
  • 68.
    MOBIUS - LOOPYUI - State management library - Kotlin data classes represent events - Events, inputs, Effects - Presentation Petter Mahlen
  • 70.
    Kirin 970 firstintroduced a dedicated Neural Processing Unit (NPU) on the mobile AI computing platform
  • 72.
    BUILDING A DECENTRALIZED APPON ANDROID - “OPPORTUNITIES IN THE DECENTRALIZED APPS WORLD” - you're told who the user is - only the user can decrypt the data - decentralized app: authentication & encryption & storage - S3-like storage - keys generated on device - GDPR world in European Union - Facebook “leaks” Friedger Müffke APPLICATION STORE: https://app.co/
  • 75.
    Data Binding onAndroid Ash Davies
  • 78.
    GITLAB - THEBEST APPS ARE BUILT IN PYJAMA-PANTS - GitLab team around the world - Run a “daily”, not project related, to talk about personal life and get to know one another - They run a blog - link Job van der Voort HOW TO RUN A COMPANY GUIDE: HANDBOOK Onboarding - link Hiring - link Spending company money - link
  • 81.
  • 85.
    Links / References -DroidCon Berlin YouTube channel - link - DroidCon official website - link - https://twitter.com/cvollrath - Machine Learning - link, link, link - https://medium.com/@sabag.ronen - https://twitter.com/danlowlows/status/858754840419196929
  • 86.