SlideShare a Scribd company logo
1 of 86
Download to read offline
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

More Related Content

What's hot

Cross platform technologies explained better!
Cross platform technologies explained better!Cross platform technologies explained better!
Cross platform technologies explained better!Master Software Solutions
 
Adobe Max 2009 - Learnings
Adobe Max 2009 -  LearningsAdobe Max 2009 -  Learnings
Adobe Max 2009 - Learningsziblu
 
Technology Application Development Trends For IT Students
Technology Application Development Trends For IT StudentsTechnology Application Development Trends For IT Students
Technology Application Development Trends For IT StudentsKMS Technology
 
20141216 멜팅팟 부산 세션 ii - cross platform 개발
20141216 멜팅팟 부산   세션 ii - cross platform 개발20141216 멜팅팟 부산   세션 ii - cross platform 개발
20141216 멜팅팟 부산 세션 ii - cross platform 개발영욱 김
 
Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App DevelopmentAnnmarie Lanesey
 
A Glimpse On MeeGo
A Glimpse On MeeGoA Glimpse On MeeGo
A Glimpse On MeeGoAmanda Lam
 
Building a Cross-Platform Mobile App Backend in the Cloud with Node.js
Building a Cross-Platform Mobile App Backend in the Cloud with Node.jsBuilding a Cross-Platform Mobile App Backend in the Cloud with Node.js
Building a Cross-Platform Mobile App Backend in the Cloud with Node.jsNick Landry
 
B feigin mobileapplicationdevelopment
B feigin mobileapplicationdevelopmentB feigin mobileapplicationdevelopment
B feigin mobileapplicationdevelopmentsathesh leo
 
Devoxx 2010: Develop mobile applications with Flex
Devoxx 2010: Develop mobile applications with FlexDevoxx 2010: Develop mobile applications with Flex
Devoxx 2010: Develop mobile applications with FlexMichael Chaize
 
Adobe gaming flash gamm michael
Adobe gaming flash gamm michaelAdobe gaming flash gamm michael
Adobe gaming flash gamm michaelMichael Chaize
 
TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013Jeff Haynie
 
The future of the Adobe Flash platform
The future of the Adobe Flash platformThe future of the Adobe Flash platform
The future of the Adobe Flash platformMichael Chaize
 
HTML5 App Dev on BlackBerry 10
HTML5 App Dev on BlackBerry 10HTML5 App Dev on BlackBerry 10
HTML5 App Dev on BlackBerry 10Larry McDonough
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Jeff Haynie
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile DevelopmentIntergen
 

What's hot (20)

Cross platform technologies explained better!
Cross platform technologies explained better!Cross platform technologies explained better!
Cross platform technologies explained better!
 
Android
AndroidAndroid
Android
 
Adobe Max 2009 - Learnings
Adobe Max 2009 -  LearningsAdobe Max 2009 -  Learnings
Adobe Max 2009 - Learnings
 
Technology Application Development Trends For IT Students
Technology Application Development Trends For IT StudentsTechnology Application Development Trends For IT Students
Technology Application Development Trends For IT Students
 
Adobe AIR & Printing
Adobe AIR & PrintingAdobe AIR & Printing
Adobe AIR & Printing
 
W-JAX Keynote 2010
W-JAX Keynote 2010W-JAX Keynote 2010
W-JAX Keynote 2010
 
20141216 멜팅팟 부산 세션 ii - cross platform 개발
20141216 멜팅팟 부산   세션 ii - cross platform 개발20141216 멜팅팟 부산   세션 ii - cross platform 개발
20141216 멜팅팟 부산 세션 ii - cross platform 개발
 
Firefox os
Firefox osFirefox os
Firefox os
 
Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App Development
 
A Glimpse On MeeGo
A Glimpse On MeeGoA Glimpse On MeeGo
A Glimpse On MeeGo
 
Silverlight
SilverlightSilverlight
Silverlight
 
Building a Cross-Platform Mobile App Backend in the Cloud with Node.js
Building a Cross-Platform Mobile App Backend in the Cloud with Node.jsBuilding a Cross-Platform Mobile App Backend in the Cloud with Node.js
Building a Cross-Platform Mobile App Backend in the Cloud with Node.js
 
B feigin mobileapplicationdevelopment
B feigin mobileapplicationdevelopmentB feigin mobileapplicationdevelopment
B feigin mobileapplicationdevelopment
 
Devoxx 2010: Develop mobile applications with Flex
Devoxx 2010: Develop mobile applications with FlexDevoxx 2010: Develop mobile applications with Flex
Devoxx 2010: Develop mobile applications with Flex
 
Adobe gaming flash gamm michael
Adobe gaming flash gamm michaelAdobe gaming flash gamm michael
Adobe gaming flash gamm michael
 
TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013
 
The future of the Adobe Flash platform
The future of the Adobe Flash platformThe future of the Adobe Flash platform
The future of the Adobe Flash platform
 
HTML5 App Dev on BlackBerry 10
HTML5 App Dev on BlackBerry 10HTML5 App Dev on BlackBerry 10
HTML5 App Dev on BlackBerry 10
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 

Similar to Top takeaways from DroidCon Berlin 2018

Minko - Creating cross-platform 3D apps with Minko
Minko - Creating cross-platform 3D apps with MinkoMinko - Creating cross-platform 3D apps with Minko
Minko - Creating cross-platform 3D apps with MinkoMinko3D
 
Paris Android LiveCode - Creating cross-platform 3D apps with Minko
Paris Android LiveCode - Creating cross-platform 3D apps with MinkoParis Android LiveCode - Creating cross-platform 3D apps with Minko
Paris Android LiveCode - Creating cross-platform 3D apps with MinkoMinko3D
 
Cross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual StudioCross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual Studiobryan costanich
 
The Magic of flutter Comex oman 2019
The Magic of flutter Comex oman 2019The Magic of flutter Comex oman 2019
The Magic of flutter Comex oman 2019Ahmed Abu Eldahab
 
X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)
X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)
X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)Mark Radacz
 
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019UA Mobile
 
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019Eugene Kurko
 
IBM Connect 2014 - KEY108: IBM Collaboration Solutions Application Developmen...
IBM Connect 2014 - KEY108: IBM Collaboration Solutions Application Developmen...IBM Connect 2014 - KEY108: IBM Collaboration Solutions Application Developmen...
IBM Connect 2014 - KEY108: IBM Collaboration Solutions Application Developmen...IBM Connections Developers
 
Connect 2014 - Key108 - Application Development Strategy
Connect 2014 - Key108  - Application Development StrategyConnect 2014 - Key108  - Application Development Strategy
Connect 2014 - Key108 - Application Development StrategyPhilippe Riand
 
WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014Minko3D
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchJonas Follesø
 
Open Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run AnywhereOpen Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run Anywhereguest991eb3
 
Mobile Cross-Platform Development in C++
Mobile Cross-Platform Development in C++Mobile Cross-Platform Development in C++
Mobile Cross-Platform Development in C++Ragi Burhum Espinoza
 
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For Gnome
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For GnomeRao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For Gnome
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For GnomeMario B.
 
Mobility today & what's next. Application ecosystems.
Mobility today & what's next.Application ecosystems.Mobility today & what's next.Application ecosystems.
Mobility today & what's next. Application ecosystems.Petru Jucovschi
 
Minko - Windows App Meetup Nov. 2013
Minko - Windows App Meetup Nov. 2013Minko - Windows App Meetup Nov. 2013
Minko - Windows App Meetup Nov. 2013Minko3D
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009Tom Deryckere
 
201507_NeoHsu_Portfolio
201507_NeoHsu_Portfolio201507_NeoHsu_Portfolio
201507_NeoHsu_PortfolioNeo Hsu
 
NET !!! A must have tool under your belt
NET !!! A must have tool under your beltNET !!! A must have tool under your belt
NET !!! A must have tool under your beltHansamali Gamage
 

Similar to Top takeaways from DroidCon Berlin 2018 (20)

Minko - Creating cross-platform 3D apps with Minko
Minko - Creating cross-platform 3D apps with MinkoMinko - Creating cross-platform 3D apps with Minko
Minko - Creating cross-platform 3D apps with Minko
 
Paris Android LiveCode - Creating cross-platform 3D apps with Minko
Paris Android LiveCode - Creating cross-platform 3D apps with MinkoParis Android LiveCode - Creating cross-platform 3D apps with Minko
Paris Android LiveCode - Creating cross-platform 3D apps with Minko
 
Cross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual StudioCross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual Studio
 
The Magic of flutter Comex oman 2019
The Magic of flutter Comex oman 2019The Magic of flutter Comex oman 2019
The Magic of flutter Comex oman 2019
 
X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)
X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)
X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)
 
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
 
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
 
IBM Connect 2014 - KEY108: IBM Collaboration Solutions Application Developmen...
IBM Connect 2014 - KEY108: IBM Collaboration Solutions Application Developmen...IBM Connect 2014 - KEY108: IBM Collaboration Solutions Application Developmen...
IBM Connect 2014 - KEY108: IBM Collaboration Solutions Application Developmen...
 
Connect 2014 - Key108 - Application Development Strategy
Connect 2014 - Key108  - Application Development StrategyConnect 2014 - Key108  - Application Development Strategy
Connect 2014 - Key108 - Application Development Strategy
 
Mobile Application development
Mobile Application developmentMobile Application development
Mobile Application development
 
WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014WebGL games with Minko - Next Game Frontier 2014
WebGL games with Minko - Next Game Frontier 2014
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
Open Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run AnywhereOpen Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run Anywhere
 
Mobile Cross-Platform Development in C++
Mobile Cross-Platform Development in C++Mobile Cross-Platform Development in C++
Mobile Cross-Platform Development in C++
 
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For Gnome
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For GnomeRao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For Gnome
Rao Yeleswarapu - Moblin Overview Apac Roadshow 2009 For Gnome
 
Mobility today & what's next. Application ecosystems.
Mobility today & what's next.Application ecosystems.Mobility today & what's next.Application ecosystems.
Mobility today & what's next. Application ecosystems.
 
Minko - Windows App Meetup Nov. 2013
Minko - Windows App Meetup Nov. 2013Minko - Windows App Meetup Nov. 2013
Minko - Windows App Meetup Nov. 2013
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009
 
201507_NeoHsu_Portfolio
201507_NeoHsu_Portfolio201507_NeoHsu_Portfolio
201507_NeoHsu_Portfolio
 
NET !!! A must have tool under your belt
NET !!! A must have tool under your beltNET !!! A must have tool under your belt
NET !!! A must have tool under your belt
 

More from Bartosz Kosarzycki

Droidcon Online 2020 quick summary
Droidcon Online 2020 quick summaryDroidcon Online 2020 quick summary
Droidcon Online 2020 quick summaryBartosz Kosarzycki
 
Flutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessFlutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessBartosz Kosarzycki
 
Flutter CI & Device Farms for Flutter
Flutter CI & Device Farms for FlutterFlutter CI & Device Farms for Flutter
Flutter CI & Device Farms for FlutterBartosz Kosarzycki
 
Drone racing - beginner's guide
Drone racing - beginner's guideDrone racing - beginner's guide
Drone racing - beginner's guideBartosz Kosarzycki
 
Optimize apps for Chromebooks - Meet.Intive Oct, 2018
Optimize apps for Chromebooks - Meet.Intive Oct, 2018Optimize apps for Chromebooks - Meet.Intive Oct, 2018
Optimize apps for Chromebooks - Meet.Intive Oct, 2018Bartosz Kosarzycki
 
Android - Gradle build optimisation 3d83f31339d239abcc55f869e5f30348?s=47
Android - Gradle build optimisation  3d83f31339d239abcc55f869e5f30348?s=47Android - Gradle build optimisation  3d83f31339d239abcc55f869e5f30348?s=47
Android - Gradle build optimisation 3d83f31339d239abcc55f869e5f30348?s=47Bartosz Kosarzycki
 
Android things introduction - Development for IoT
Android things introduction - Development for IoTAndroid things introduction - Development for IoT
Android things introduction - Development for IoTBartosz Kosarzycki
 
Daggerate your code - Write your own annotation processor
Daggerate your code - Write your own annotation processorDaggerate your code - Write your own annotation processor
Daggerate your code - Write your own annotation processorBartosz Kosarzycki
 
Introduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fastIntroduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fastBartosz Kosarzycki
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requestsBartosz Kosarzycki
 
ADG Poznań - Kotlin for Android developers
ADG Poznań - Kotlin for Android developersADG Poznań - Kotlin for Android developers
ADG Poznań - Kotlin for Android developersBartosz Kosarzycki
 
Kotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developersKotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developersBartosz Kosarzycki
 
Kotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projectsKotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projectsBartosz Kosarzycki
 

More from Bartosz Kosarzycki (18)

Droidcon Summary 2021
Droidcon Summary 2021Droidcon Summary 2021
Droidcon Summary 2021
 
Droidcon Online 2020 quick summary
Droidcon Online 2020 quick summaryDroidcon Online 2020 quick summary
Droidcon Online 2020 quick summary
 
Provider vs BLoC vs Redux
Provider vs BLoC vs ReduxProvider vs BLoC vs Redux
Provider vs BLoC vs Redux
 
Animations in Flutter
Animations in FlutterAnimations in Flutter
Animations in Flutter
 
Flutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for businessFlutter overview - advantages & disadvantages for business
Flutter overview - advantages & disadvantages for business
 
Flutter CI & Device Farms for Flutter
Flutter CI & Device Farms for FlutterFlutter CI & Device Farms for Flutter
Flutter CI & Device Farms for Flutter
 
Drone racing - beginner's guide
Drone racing - beginner's guideDrone racing - beginner's guide
Drone racing - beginner's guide
 
Optimize apps for Chromebooks - Meet.Intive Oct, 2018
Optimize apps for Chromebooks - Meet.Intive Oct, 2018Optimize apps for Chromebooks - Meet.Intive Oct, 2018
Optimize apps for Chromebooks - Meet.Intive Oct, 2018
 
Android - Gradle build optimisation 3d83f31339d239abcc55f869e5f30348?s=47
Android - Gradle build optimisation  3d83f31339d239abcc55f869e5f30348?s=47Android - Gradle build optimisation  3d83f31339d239abcc55f869e5f30348?s=47
Android - Gradle build optimisation 3d83f31339d239abcc55f869e5f30348?s=47
 
SCALA - Functional domain
SCALA -  Functional domainSCALA -  Functional domain
SCALA - Functional domain
 
Android things introduction - Development for IoT
Android things introduction - Development for IoTAndroid things introduction - Development for IoT
Android things introduction - Development for IoT
 
Daggerate your code - Write your own annotation processor
Daggerate your code - Write your own annotation processorDaggerate your code - Write your own annotation processor
Daggerate your code - Write your own annotation processor
 
Android antipatterns
Android antipatternsAndroid antipatterns
Android antipatterns
 
Introduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fastIntroduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fast
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requests
 
ADG Poznań - Kotlin for Android developers
ADG Poznań - Kotlin for Android developersADG Poznań - Kotlin for Android developers
ADG Poznań - Kotlin for Android developers
 
Kotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developersKotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developers
 
Kotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projectsKotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projects
 

Recently uploaded

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 

Recently uploaded (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 

Top takeaways from DroidCon Berlin 2018

  • 2.
  • 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
  • 4.
  • 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)
  • 7.
  • 8.
  • 9. 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
  • 10.
  • 11.
  • 12. 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
  • 14. OLGA NAGATOVA - Polygon Artist - http://www.nabatova.ca/ - Personal Website
  • 15. AUGMENTED REALITY FOR EVERYONE, EVERYWHERE WITH ARCORE - ARCore utilization Till Krempel
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Gradle performance - Min SDK 21 - 30% faster build - Better hardware - Project modularisation (module per feature) - Parallel gradle task execution - Offline gradle builds
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. 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
  • 29.
  • 31. 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
  • 33.
  • 34. STATE OF KOTLIN LANG - THE STATE OF THE KOTLIN ECOSYSTEM Zan Markan
  • 36. 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
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. 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.
  • 42. Christof Vollrath - notes link
  • 43.
  • 44.
  • 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
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51. 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
  • 52.
  • 53.
  • 54.
  • 55.
  • 56. 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
  • 57.
  • 58.
  • 59.
  • 60.
  • 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
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68. MOBIUS - LOOPY UI - State management library - Kotlin data classes represent events - Events, inputs, Effects - Presentation Petter Mahlen
  • 69.
  • 70. Kirin 970 first introduced a dedicated Neural Processing Unit (NPU) on the mobile AI computing platform
  • 71.
  • 72. 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/
  • 73.
  • 74.
  • 75. Data Binding on Android Ash Davies
  • 76.
  • 77.
  • 78. 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
  • 79.
  • 80.
  • 81. Fun
  • 82.
  • 83.
  • 84.
  • 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