SlideShare a Scribd company logo
Android·Oreo·
Behind Scenes¬
What’s new in Android 8.0 for
developers?, October 2017
Erik Jhordan Rey
Android Software Engineer
erik.gonzalez@schibsted.com
@ErikJhordan_Rey
github.com/erikcaffrey
https://goo.gl/viyxDx
Android Platform
Summary¬
Official support
of Kotlin on
Android¬ Kotlin
Architecture
Components ¬
Proprietary + Confidential
Handling
lifecycles
Live Data
View Models
Rooms
Android Architecture
Components
Kotlin
Sample¬
Github
https://goo.gl/Wrd9qy
Android Architecture Components
Android Studio 3 ¬
Android Studio 3.0 ¬
What's New in
Android Oreo for
Developers?
dependencies {
implementation "com.android.support:appcompat-v7:27.0.0"
}
Fonts ¬
Light 112 sp
Regular 56 sp
Thin 45 sp
Bold 34 sp
Mono 24 sp
Black 20 sp
Fonts in·XML¬
Lets you use fonts as resources. You can add the font file in the res/font/ folder
to bundle fonts as resources.
These fonts are compiled in your R file and to access a font resource, use
@font/myfont, or R.font.myfont.
Downloadable·Fonts¬
Introduce support for APIs to request fonts from a provider application.
The Downloadable Fonts feature offers the following benefits:
● Reduces the APK size
● Increases the app installation success rate
● Improves the overall system health as multiple APKs can share the same
font through a provider.
A font provider is an application that retrieves fonts and
caches them locally.
private fun getFontRequest(query: String) = FontRequest(
Constants.PROVIDER_AUTHORITY,
Constants.PROVIDER_PACKAGE,
query,
R.array.com_google_android_gms_fonts_certs)
Font Request
Font Request Callback
private fun getFontRequestCallback() = object :
FontsContractCompat.FontRequestCallback() {
override fun onTypefaceRetrieved(typeface: Typeface?) {
super.onTypefaceRetrieved(typeface)
text_font_disclaimer.typeface = typeface
}
override fun onTypefaceRequestFailed(reason: Int) {
super.onTypefaceRequestFailed(reason)
Log.e(FontsFragment::class.java.simpleName, "An Error Occurred: " + reason)
}
}
private fun getHandler(): Handler {
val handlerThread = HandlerThread("fonts")
handlerThread.start()
return Handler(handlerThread.looper)
}
Handler
val fontRequest = getFontRequest(query)
val fontRequestCallback = getFontRequestCallback()
FontsContractCompat.requestFont(context!!, fontRequest, fontRequestCallback,
getHandler())
Downloadable Font
Fonts
● Downloadable Fonts XML
● Downloadable Fonts
Programmatically
Emoji · Compatibility ¬
EmojiCompat¬
The EmojiCompat support library aims to keep Android devices up to
date with the latest emoji.
● Prevents your app from showing missing emoji characters in the form of ☐
● Your app users do not need to wait for Android OS updates to get the latest
emoji
EmojiCompat identifies emoji for a given CharSequence, replaces them
with EmojiSpans, if required, and finally renders the emoji glyphs.
Note: backward-compatible emoji support on devices running Android 4.4 (API level 19) and higher
dependencies {
implementation "com.android.support:support-emoji:$version"
}
<android.support.text.emoji.widget.EmojiTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<android.support.text.emoji.widget.EmojiEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<android.support.text.emoji.widget.EmojiButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Support Emoji
dependencies {
implementation "com.android.support:support-emoji-appcompat:$version"
}
<android.support.text.emoji.widget.EmojiAppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<android.support.text.emoji.widget.EmojiAppCompatEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<android.support.text.emoji.widget.EmojiAppCompatButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Support Emoji AppCompat
EmojiCompat Regular Widgets
Use EmojiCompat.get().process(text) to add EmojiSpans if
any emoji are found.
The code above should be inside of an implementation of
InitCallback.
Listen the initialization of EmojiCompat
EmojiCompat.get().registerInitCallback(initCallback)
class EmojiTextViewCallback constructor(regularTextView: TextView, val text:
String) : EmojiCompat.InitCallback() {
private val regularTextViewReference: WeakReference<TextView> =
WeakReference(regularTextView)
override fun onInitialized() {
super.onInitialized()
val regularTextView = regularTextViewReference.get()
regularTextView!!.text = EmojiCompat.get().process(text)
}
override fun onFailed(throwable: Throwable?) {
super.onFailed(throwable)
throwable!!.printStackTrace()
}
}
EmojiTextViewCallback
val emojiTextViewCallback = EmojiTextViewCallback(text_emoji_regular,
getString(R.string.emoji_regular_text, MONKEYS_EMOJI))
EmojiCompat.get().registerInitCallback(emojiTextViewCallback)
Using EmojiTextViewCallback
Using EmojiCompat with custom
widgets
EmojiTextViewHelper
EmojiEditTextHelper
CustomEmojiTextView.kt
Emoji Bundled·
or downloadable¬
Downloadable fonts
The downloadable fonts configuration uses the Downloadable Fonts support
library feature to download an emoji font
Bundled fonts
This package includes the font with the embedded metadata
dependencies {
implementation "com.android.support:support-emoji-bundled:$version"
}
class YourApplication : Application() {
override fun onCreate() {
super.onCreate()
val config: EmojiCompat.Config
if (Constants.ENABLE_BUNDLED_EMOJI) {
// bundled
config = BundledEmojiCompatConfig(applicationContext)
} else {
// downloadable
val fontRequest = FontRequest(
Constants.PROVIDER_AUTHORITY,
Constants.PROVIDER_PACKAGE,
Constants.FONT_QUERY,
R.array.com_google_android_gms_fonts_certs)
config = FontRequestEmojiCompatConfig(this, fontRequest)
.setReplaceAll(true)
.setEmojiSpanIndicatorEnabled(false)
.setEmojiSpanIndicatorColor(Color.MAGENTA)
}
EmojiCompat.init(config)
}
}
Using EmojiCompat
Bundled or
Downloadable
EmojiCompat
● EmojiAppCompatEditText
● EmojiAppCompatTextView
● EmojiAppCompatButton
● EmojiRegular
● EmojiCustomView
TextVie
W auto-
sizing
TextView
regular
Autosizing
TextView ¬
Allows you to instruct a TextView to let the text size expand or contract
automatically to fill its layout based on the TextView's characteristics and
boundaries.
Autosizing
There are three ways you can set up the autosizing of TextView:
● Default
● Granularity
● Preset Sizes
Note: The library provides support to Android 4.0 (API level 14) and higher. The android.support.v4.widget package contains
the TextViewCompat.
Default¬
Default setting lets the autosizing of TextView scale uniformly on horizontal and
vertical axes.
<android.support.v7.widget.AppCompatTextView
android:id="@+id/text_default"
android:layout_width="match_parent"
android:layout_height="100dp"
android:text="@string/autosizing_default_disclaimer"
app:autoSizeTextType="uniform"/>
Default
Provide AUTO_SIZE_TEXT_TYPE_NONE to turn off the autosizing feature or AUTO_SIZE_TEXT_TYPE_UNIFORM to
scale the horizontal and the vertical axes uniformly.
Granularity¬
You can define a range of minimum and maximum text sizes and a dimension
that specifies the size of each step. The TextView scales uniformly in a range
between the minimum and maximum size attributes. Each increment occurs as
per the step size set in the granularity attribute.
<android.support.v7.widget.AppCompatTextView
android:id="@+id/text_default"
android:layout_width="match_parent"
android:layout_height="100dp"
android:text="@string/autosizing_granularity_disclaimer"
app:autoSizeMaxTextSize="34sp"
app:autoSizeMinTextSize="10sp"
app:autoSizeStepGranularity="2sp"
app:autoSizeTextType="uniform"/>
Granularity
Preset Sizes¬
Preset sizes lets you specify all the values that the TextView picks when
automatically auto-sizing text.
<android.support.v7.widget.AppCompatTextView
android:id="@+id/text_default"
android:layout_width="match_parent"
android:layout_height="100dp"
android:text="@string/autosizing_preset_sizes_disclaimer"
app:autoSizePresetSizes="@array/autosize_text_sizes"
app:autoSizeTextType="uniform"/>
Preset Sizes
<array name="autosize_text_sizes">
<item>10sp</item>
<item>12sp</item>
<item>20sp</item>
<item>40sp</item>
<item>100sp</item>
</array>
AutoSizingExt¬
Kotlin Extension to facilitate the usage of AutoSizing on
AppCompatTextView
AutoSizingExt.kt
Autosizing TextView
● Default
● Granularity
● Preset Size
Adaptive
Icons
Adaptive launcher icons, which can display a variety of shapes across
different device models.
You can control the look of your adaptive launcher icon by defining 2
layers, consisting of a background and a foreground. You must provide
icon layers as drawables without masks or background shadows around
the outline of the icon.
Adaptive Icons
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
</adaptive-icon>
<application…
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
…>
</application>
Adaptive Icons
res/mipmap-anydpi-v26
Adaptive Icon
Picture-in-Picture
Picture in Picture·
Support¬
As of Android O, activities can launch in Picture-in-Picture (PiP) mode. PiP is a
special type of multi-window mode
<activity
android:name=".home.HomeActivity"
android:label="@string/app_name"
android:supportsPictureInPicture="true"> … </activity>
Picture in Picture
private fun setPictureInPicture() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val pictureInPictureParamsBuilder = PictureInPictureParams.Builder()
val aspectRatio = Rational(1200, 600)
pictureInPictureParamsBuilder.setAspectRatio(aspectRatio).build()
enterPictureInPictureMode(pictureInPictureParamsBuilder.build())
}
}
Picture in Picture Mode
Handling UI during Picture in Picture
override fun onPictureInPictureModeChanged(isInPictureInPictureMode:
Boolean, newConfig: Configuration?) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
if (isInPictureInPictureMode) {
println("Picture-in-picture mode")
} else {
println("Restore the full-screen UI")
}
}
Picture-in-Picture
Publishing apps that
target API 27 ¬
● You want to target API level 27, you’ll need to support the behavior changes
introduced in Android 8.0 Oreo, such as background execution limits,
location limits, and others.
● Once you publish an app with targetSdkVersion set to 23 or higher, you can't
later publish a version of the app with a higher versionCode that targets 22
or lower.
Google Play that target API level 27
Android Oreo ¬https://developer.android.com/about/versions/oreo/index.html
Sample¬
Android Oreo Github https://goo.gl/4XSPGT
https://speakerdeck.com/erikcaffrey
Questions?
Find me
github.com/erikcaffrey
erik.gonzalez@schibsted.com
erikcaffrey.github.io
@ErikJhordan_Rey
+Erik Jhordan Rey
Thank You ·
Mobile Day ¬

More Related Content

What's hot

Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
neptunesol
 
Mobile Programming
Mobile Programming Mobile Programming
Mobile Programming
Mobile Programming LLC
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platform
i4consulting.org
 
Mobile Programming LLC sample Case Studies
Mobile Programming LLC sample Case StudiesMobile Programming LLC sample Case Studies
Mobile Programming LLC sample Case Studies
Mobile Programming LLC
 
Mobile app developers guide
Mobile app developers guideMobile app developers guide
Mobile app developers guide
Prayukth K V
 
Weekly news from 27 sept 2 oct
Weekly news from 27 sept 2 octWeekly news from 27 sept 2 oct
Weekly news from 27 sept 2 octnagender0707
 
Android application development
Android application developmentAndroid application development
Android application development
Soni Singh
 
Mobile Application Development Services and Why We Need It?
Mobile Application Development Services and Why We Need It?Mobile Application Development Services and Why We Need It?
Mobile Application Development Services and Why We Need It?
Mobile Application Development Company
 
Mobile Developer's Guide To The Galaxy 11th edition
Mobile Developer's Guide To The Galaxy 11th editionMobile Developer's Guide To The Galaxy 11th edition
Mobile Developer's Guide To The Galaxy 11th edition
Marco Tabor
 
History of mobile apps
History of mobile appsHistory of mobile apps
History of mobile apps
THINK IT Training
 
Wearables Landscape 2015 - Sample Report
Wearables Landscape 2015 - Sample ReportWearables Landscape 2015 - Sample Report
Wearables Landscape 2015 - Sample Report
SlashData
 
History of mobile apps
History of mobile apps History of mobile apps
History of mobile apps
Swathi Young
 
Mobile Application Development Course- Freelancers Academy
Mobile Application Development Course- Freelancers AcademyMobile Application Development Course- Freelancers Academy
Mobile Application Development Course- Freelancers Academy
anuvaa
 
Ios app development company in kuwait
Ios app development company in kuwaitIos app development company in kuwait
Ios app development company in kuwait
kuwaitbrillmindz
 
Mobile app development guide
Mobile app development guide Mobile app development guide
Mobile app development guide
Sphinx Solution
 
Mobile Development Overview
Mobile Development OverviewMobile Development Overview
Mobile Development Overview
Shawn Grimes
 
Mobile development-e mag-version3
Mobile development-e mag-version3Mobile development-e mag-version3
Mobile development-e mag-version3nesrine attia
 
Importance of Mobile Applications
Importance of Mobile ApplicationsImportance of Mobile Applications
Importance of Mobile ApplicationsFutuready Media
 
Developers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th editionDevelopers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th edition
Marco Tabor
 

What's hot (20)

Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
Mobile Programming
Mobile Programming Mobile Programming
Mobile Programming
 
Mobile application development platform
Mobile application development platformMobile application development platform
Mobile application development platform
 
Mobile Programming LLC sample Case Studies
Mobile Programming LLC sample Case StudiesMobile Programming LLC sample Case Studies
Mobile Programming LLC sample Case Studies
 
Mobile app developers guide
Mobile app developers guideMobile app developers guide
Mobile app developers guide
 
Weekly news from 27 sept 2 oct
Weekly news from 27 sept 2 octWeekly news from 27 sept 2 oct
Weekly news from 27 sept 2 oct
 
Anoriad
AnoriadAnoriad
Anoriad
 
Android application development
Android application developmentAndroid application development
Android application development
 
Mobile Application Development Services and Why We Need It?
Mobile Application Development Services and Why We Need It?Mobile Application Development Services and Why We Need It?
Mobile Application Development Services and Why We Need It?
 
Mobile Developer's Guide To The Galaxy 11th edition
Mobile Developer's Guide To The Galaxy 11th editionMobile Developer's Guide To The Galaxy 11th edition
Mobile Developer's Guide To The Galaxy 11th edition
 
History of mobile apps
History of mobile appsHistory of mobile apps
History of mobile apps
 
Wearables Landscape 2015 - Sample Report
Wearables Landscape 2015 - Sample ReportWearables Landscape 2015 - Sample Report
Wearables Landscape 2015 - Sample Report
 
History of mobile apps
History of mobile apps History of mobile apps
History of mobile apps
 
Mobile Application Development Course- Freelancers Academy
Mobile Application Development Course- Freelancers AcademyMobile Application Development Course- Freelancers Academy
Mobile Application Development Course- Freelancers Academy
 
Ios app development company in kuwait
Ios app development company in kuwaitIos app development company in kuwait
Ios app development company in kuwait
 
Mobile app development guide
Mobile app development guide Mobile app development guide
Mobile app development guide
 
Mobile Development Overview
Mobile Development OverviewMobile Development Overview
Mobile Development Overview
 
Mobile development-e mag-version3
Mobile development-e mag-version3Mobile development-e mag-version3
Mobile development-e mag-version3
 
Importance of Mobile Applications
Importance of Mobile ApplicationsImportance of Mobile Applications
Importance of Mobile Applications
 
Developers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th editionDevelopers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th edition
 

Similar to Mobile Day - Novedades en Android Oreo

Beginning Native Android Apps
Beginning Native Android AppsBeginning Native Android Apps
Beginning Native Android Apps
Gil Irizarry
 
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
Ted Chien
 
Ap quiz app
Ap quiz appAp quiz app
Ap quiz app
angelicaurio
 
Fragments: Why, How, What For?
Fragments: Why, How, What For?Fragments: Why, How, What For?
Fragments: Why, How, What For?
Brenda Cook
 
Android TCJUG
Android TCJUGAndroid TCJUG
Android TCJUG
Justin Grammens
 
android layouts
android layoutsandroid layouts
android layoutsDeepa Rani
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programming
PERKYTORIALS
 
Android Minnebar
Android MinnebarAndroid Minnebar
Android Minnebar
Justin Grammens
 
Rhomobile 5.5 Release Notes
Rhomobile 5.5 Release NotesRhomobile 5.5 Release Notes
Rhomobile 5.5 Release Notes
Konstantin Rybas
 
Cross platform-mobile-applications
Cross platform-mobile-applicationsCross platform-mobile-applications
Cross platform-mobile-applications
mailalamin
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using Cordova
Noam Kfir
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
Junda Ong
 
Chapter 5 - Layouts
Chapter 5 - LayoutsChapter 5 - Layouts
Chapter 5 - Layouts
Sittiphol Phanvilai
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011
sullis
 
Basic android development
Basic android developmentBasic android development
Basic android developmentUpanya Singh
 
Basic android development
Basic android developmentBasic android development
Basic android developmentUpanya Singh
 
Android Apps Development Basic
Android Apps Development BasicAndroid Apps Development Basic
Android Apps Development Basic
Monir Zzaman
 
Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15
sullis
 
Android Tutorial
Android TutorialAndroid Tutorial
Android Tutorial
Fun2Do Labs
 

Similar to Mobile Day - Novedades en Android Oreo (20)

Beginning Native Android Apps
Beginning Native Android AppsBeginning Native Android Apps
Beginning Native Android Apps
 
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
viWave Study Group - Introduction to Google Android Development - Chapter 23 ...
 
Ap quiz app
Ap quiz appAp quiz app
Ap quiz app
 
Fragments: Why, How, What For?
Fragments: Why, How, What For?Fragments: Why, How, What For?
Fragments: Why, How, What For?
 
Android TCJUG
Android TCJUGAndroid TCJUG
Android TCJUG
 
android layouts
android layoutsandroid layouts
android layouts
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programming
 
Android Minnebar
Android MinnebarAndroid Minnebar
Android Minnebar
 
Rhomobile 5.5 Release Notes
Rhomobile 5.5 Release NotesRhomobile 5.5 Release Notes
Rhomobile 5.5 Release Notes
 
mobicon_paper
mobicon_papermobicon_paper
mobicon_paper
 
Cross platform-mobile-applications
Cross platform-mobile-applicationsCross platform-mobile-applications
Cross platform-mobile-applications
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using Cordova
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
Chapter 5 - Layouts
Chapter 5 - LayoutsChapter 5 - Layouts
Chapter 5 - Layouts
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011
 
Basic android development
Basic android developmentBasic android development
Basic android development
 
Basic android development
Basic android developmentBasic android development
Basic android development
 
Android Apps Development Basic
Android Apps Development BasicAndroid Apps Development Basic
Android Apps Development Basic
 
Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15
 
Android Tutorial
Android TutorialAndroid Tutorial
Android Tutorial
 

More from Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
Software Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
Software Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
Software Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
Software Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
Software Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
Software Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
Software Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
Software Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
Software Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
Software Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Software Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
Software Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
Software Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
Software Guru
 

More from Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Recently uploaded

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 

Recently uploaded (20)

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 

Mobile Day - Novedades en Android Oreo