SlideShare a Scribd company logo
1 of 125
| CAPABILITIES
Getting Intimate
with Images on
Android
@james_halpern | james.halpern@xtremelabs.com
Pulse
Pulse
THE SITUATION…
Why Kittens are Awesome
What happened?
| CAPABILITIES
Introduction
@james_halpern | james.halpern@xtremelabs.com
MISSION
To become the leading provider of mobile
solutions to the world’s most important
companies as we help drive a revolution in
computing.
VALUES
Transparency
Opportunity
Meritocracy
Execution
Introduction
• 2+ years of Android
• 6 product launches
• 2 Google Play apps
• 3+ Android libraries
• 20+ Android projects impacted by tools
development, and counting
Why I Started
Why I Started
Performance Bugs
Design Time
My Library
Image Utilities
Open Source
https://github.com/xtremelabs/xl-image_utils_lib-android
Available under Apache 2.0
Objectives
Simple
Fast
Powerful
Goal
Problems
Tools
API
Debugging
Solve the images problem,
Build great apps
| CAPABILITIES
Production
Quality Software
Problems Tools API Debugging
@james_halpern | james.halpern@xtremelabs.com
Non-Production Quality
try {
// 5 BILLION lines of code!
} catch (Exception e) {
// Just in case there is a bug,
// let’s not crash.
}
Non-Production Quality
new AsyncTask<Void, Void, Bitmap>() {
public Bitmap doInBackground() {
Bitmap bitmap = fetchBitmap(url);
return bitmap;
}
public void onPostExecute(Bitmap result) {
imageView.setImageBitmap(result);
}
}
What Users Want
The app should just work.
Lists that just work
Resources that adapt to
screen size and resolution
Lazy loading that does not
interfere with list items
Optimizations for
ImageView size
Images that are available
before you scroll to them
Smooth, flawless
scrolling, across all devices
Anticipate the user’s next
action
Practices
1. Clean Code
2. Design Patterns
3. Unit Testing
4. Test Driven Development
| CAPABILITIES
Platform
Fragmentation
Problems Tools API Debugging
@james_halpern | james.halpern@xtremelabs.com
Fragmentation
Android vs. iOS
Android
• 16MB – 96MB
iOS
• 128MB – 512MB
Why Images are Tough
• Available memory differs by phone
16MB?
32MB?
64MB?
Why Images are Tough
• Screen Density/Resolution
Lower Density = Fewer Pixels = Less Memory Used
Higher Density = More Pixels = More Memory Used
| CAPABILITIES
Image Decoding
Problems Tools API Debugging
@james_halpern | james.halpern@xtremelabs.com
Bitmap Complexities
Bitmap Complexities
Encoded Decoded
Small File Size High Memory Usage
Effect of Decoding
This cute kitten is:
• ~20kB on disk
• ~500kB in memory
Effect of Decoding
• ~33kB on disk
• ~1.5MB in memory
Effect of Decoding
5 megapixel image
• ~1.8MB on disk
• ~20MB in memory!!!
Approximating Bitmap Sizes
Bit Depth * Number of Pixels = Approximate Size
Examples of bit depth:
ARGB-8888  4 bytes/pixel
RGB-565  2 bytes/pixel
Big Image, Big Problem
What happens if an image is too big?
Example: The 15x15dp Ad
Summary
• Images are big in memory
• Scaling can save memory
• The API may provide bad images
• Different image formats perform differently
| CAPABILITIES
Threads
Problems Tools API Debugging
@james_halpern | james.halpern@xtremelabs.com
Context Switching
Main
Thread 1
Thread 2
UI will not update here!
Context Switching
More Threads = Fewer UI Updates
Context Switching
Main
Network 1
Network 2
Network 3
Disk 1
Sources of Background Threads
• Network
• Disk access
• Heavy CPU tasks
– Renders
– Encoding
– Decoding
– etc.
Typical App – Threads
1. Analytics system? (1-X threads)
2. Ad system? (1-X threads)
3. Network library? (1-10 threads)
4. Content providers? (1-255 threads)
5. Disk/File access threads (1-X threads)
Network Threads
Network 1
Network 2
Network 3
Context Switching
Disk 1
Strict Mode
StrictMode.setThreadPolicy(
new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyDeath()
.build()
);
| CAPABILITIES
Communication
Problems Tools API Debugging
@james_halpern | james.halpern@xtremelabs.com
Communication
Product
Design
Engineering
The Density Independent Pixel
px = dp * (dpi / 160)
1dp ~= 1/160th of an inch (but not really)
1dp may be smaller than a pixel on low density
phones!
Forgetting Pixels
This is not iPhone!
Don’t think in pixels!
Pixels are different sizes on different phones
With that said…
Designers still need to consider pixels…
Talking to Designers
Break it down!
1. Understand how it works
2. Know what to build
Android for Designers
http://petrnohejl.github.io/Android-Cheatsheet-For-Graphic-Designers/
How it works
Heading R
Heading R
How it works
Heading R
Heading R
H WH W
How it works
Heading R
Heading R
H WH W
What to Build
Back to pixels…
Targeting Resolutions
Providing some Resolutions:
1. What devices?
2. Choose 2-4 resolutions.
3. Test ON DEVICE.
4. Alignment: Start? End? Center?
Targeting Resolutions
http://en.wikipedia.org/wiki/Comparison_of_Android_devices
(1080/1200) x 1920
(720/768/800) x 1280
480 x 800
320 x 480
Flexible Designs
Only scale down.
Don’t scale up!
Planning for the Small Screen
Heading R
Heading R
Communicate Performance
Larger Image = Slower Performance
Design With Small Images = Fast App
9-Patches > Images
Summary
• Memory limits
• Scrolling performance
• Multiple densities
• Multiple resolutions
• ImageView references
• Image Variety
• Pixel Formats
• Image Scaling
• Performance
• And on and on…
The problem is not limited
to engineering!
| CAPABILITIES
Decoding Images
Problems Tools API Debugging
@james_halpern | james.halpern@xtremelabs.com
The BitmapFactory
Bitmap
File
InputStream Resource
Byte[]
The BitmapFactory
Bitmap bitmap;
bitmap = BitmapFactory.decodeFile(filePath);
bitmap = BitmapFactory.decodeStream(inputStream);
etc.
Options
BitmapFactory.Options options;
options = new BitmapFactory.Options();
// Full sized image
options.inSampleSize = 1;
// 75% smaller
options.inSampleSize = 2;
Applying Scaling
What is the optimal sample size?
Applying Scaling
Applying Scaling
Calculating Scaling
Scaled Dimension = Image Dimension / Sample Size
Optimal Sample Size:
Sample Size = (Floor) Image Width / View Width
OR
Sample Size = (Floor) Image Height / View Height
Calculating Scaling
Which one? Height or Width?
Calculating Scaling
• Fit for largest size
– Crop
• Fit for smallest size
– Fit
• Always smaller than view
– Saves memory, drops quality
• Round to closest scaling
– May hurt quality
Applying Scaling
Use largest size -- Crop Use smallest size -- Fit
Summary
Build for the
kitten you want,
Not for the
kitten you have.
Scale.
| CAPABILITIES
API Design
Problems Tools API Debugging
@james_halpern | james.halpern@xtremelabs.com
The Learning Curve
0
10
20
30
40
50
60
70
80
90
Start Setup First Request Callbacks Placeholders
ImageLoader
Other
Objectives
Simple.
Setup Time
Get started in <5min:
onCreate:
mImageLoader = ImageLoader.buildImageLoaderForActivity(this);
onDestroy:
mImageLoader.destroy();
The First Call
imageLoader.loadImage(imageView, url);
Adding Complexity
• Pixel format
• Placeholders
• Scaling
• Memory safety
Adding Complexity
Options options = new Options();
options.autoDetectBounds = false;
Adding Complexity
imageLoader.loadImage(imageView, url, options);
Calling Back
ImageLoaderListener listener =
new ImageloaderListener() {
public void onSuccess(ImageResponse response) {}
public void onFailure(ImageError error) {}
}
imageLoader.loadImage(
imageView, url, options, listener);
Calling Back
public void onSuccess(
ImageResponse response) {
ImageView view;
Bitmap bitmap;
bitmap = response.getBitmap();
view = response.getImageView();
// Could have animated here!
view.setImageBitmap(bitmap);
}
Calling Back
public void onSuccess(
ImageResponse response) {
…
ReturnedFrom from;
from = response.getReturnedFrom();
switch (from) {
case MEMORY:
// Don’t animate!
default:
// Animate here!
}
…
}
Too Many Parameters…
imageLoader.loadImage(
imageView, url, options, listener);
Box the Request
ImageRequest imageRequest =
new ImageRequest(url);
imageRequest.setImageView(imageView);
imageRequest.setOptions(options);
imageRequest.setListener(listener);
imageLoader.loadImage(imageRequest);
Requests from File System
ImageRequest imageRequest =
new ImageRequest(URL);
ImageRequest imageRequest =
new ImageRequest(URI);
Requests from File System
String file =
new File(path).toUri().toString();
ImageRequest request =
new ImageRequest(file);
Why use the same system?
1. Image scaling
2. Memory cache
3. Pre-built adapter features
4. Will not retain Activities/Fragments
Precaching
ImageLoader.precacheToDisk(context, uri);
Additional APIs
• Custom Memory Caches
• Cache Settings
– Size, structure
• Manual Evictions
• Cancelling Requests
API Summary
Save time.
Keep it simple.
| CAPABILITIES
Stack Traces Tell
White Lies
Problems Tools API Debugging
@james_halpern | james.halpern@xtremelabs.com
Let’s start with a Stack Trace!
01-25 05:05:49.877: ERROR/dalvikvm-heap(3896): 6291456-byte external allocation too large for this
process.
01-25 05:05:49.877: ERROR/(3896): VM wont let us allocate 6291456 bytes
01-25 05:05:49.877: ERROR/AndroidRuntime(3896): Uncaught handler: thread main exiting due to
uncaught exception
01-25 05:05:49.917: ERROR/AndroidRuntime(3896): java.lang.OutOfMemoryError: bitmap size
exceeds VM budget
01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at
android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at
android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:304)
01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at
android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:149)
01-25 05:05:49.917: ERROR/AndroidRuntime(3896): at
android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:174)
Let’s start with a Stack Trace!
• java.lang.OutOfMemoryError: bitmap size
exceeds VM budget
• at:
android.graphics.BitmapFactory.decodeStream
Errors are Symptoms
Example
onCreate(…) {
foo = new Foo();
}
onStart() {
foo.bar();
}
onStop() {
foo = null;
}
Example – NullPointerException!
onCreate(…) {
foo = new Foo();
}
onStart() {
foo.bar(); // Crash!
}
onStop() {
foo = null; //  Probably not intended
}
Bitmap Factory - OOM
Maximum Heap Size
Maximum image
size in caching
system
Memory leak increasing heap size
Bitmap Factory - OOM
Maximum Heap Size
Example – Memory Leak App
• Timer leaking memory every 4ms
• Expected error:
09-13 10:51:14.401: E/AndroidRuntime(7170): java.lang.OutOfMemoryError
09-13 10:51:14.401: E/AndroidRuntime(7170): at
com.example.outofmemoryomg.OutOfMemoryActivity$1.run(OutOfMemoryActivity.java:40)
09-13 10:51:14.401: E/AndroidRuntime(7170): at java.util.Timer$TimerImpl.run(Timer.java:284)
• OutOfMemoryActivity.java:40
Example – Memory Leak App
• Actual Error:
09-13 10:52:38.159: E/dalvikvm-heap(7471): Out of memory on a 576016-byte allocation.
09-13 10:52:38.166: E/AndroidRuntime(7471): FATAL EXCEPTION: pool-1-thread-1
09-13 10:52:38.166: E/AndroidRuntime(7471): java.lang.OutOfMemoryError
09-13 10:52:38.166: E/AndroidRuntime(7471): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
09-13 10:52:38.166: E/AndroidRuntime(7471): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:527)
09-13 10:52:38.166: E/AndroidRuntime(7471): at
com.xtremelabs.imageutils.DiskLRUCacher.getBitmapSynchronouslyFromDisk(DiskLRUCacher.java:172)
09-13 10:52:38.166: E/AndroidRuntime(7471): at com.xtremelabs.imageutils.DiskLRUCacher.access$1(DiskLRUCacher.java:166)
09-13 10:52:38.166: E/AndroidRuntime(7471): at com.xtremelabs.imageutils.DiskLRUCacher$2.run(DiskLRUCacher.java:90)
09-13 10:52:38.166: E/AndroidRuntime(7471): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
09-13 10:52:38.166: E/AndroidRuntime(7471): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
09-13 10:52:38.166: E/AndroidRuntime(7471): at java.lang.Thread.run(Thread.java:856)
• BitmapFactory.decodeStream(BitmapFact
ory.java:527)
| CAPABILITIES
Debugging:
MAT & DDMS
Problems Tools API Debugging
@james_halpern | james.halpern@xtremelabs.com
Proving the Leak
Introducing MAT
• Memory Analyzer Tool
– http://www.eclipse.org/mat/
– http://download.eclipse.org/mat/1.2/update-site/
Link to Tutorial:
http://www.google.com/events/io/2011/sessions/memory-management-for-android-
apps.html
Leak proven!
What is DDMS?
Dalvik Debug Monitor Server
Provides massive amounts of debug information
What is DDMS?
• Helps with:
– Performance
– Profiling
– Memory
– File system access
– Emulator options
DDMS and Memory
DDMS and Memory
Tips for Hunting Leaks
• Reduce image quality significantly!
– Sample Size = 128
• Remove tested, big objects
• Repeat the offending action
• Use the “Leak Suspects Report”
DDMS – Threads and Performance
• Debug number of threads running
– Are you creating too many threads?
– Threads lingering beyond their lifetime?
– Threads eating up performance/hanging?
UI Thread -- Are we blocking it?
DDMS – Threads and Performance
DDMS – Threads and Performance
DDMS – Threads and Performance
Method-by-method breakdown of performance
| CAPABILITIES
Conclusion
https://github.com/xtremelabs/xl-image_utils_lib-android
@james_halpern | james.halpern@xtremelabs.com
Problems Tools API Debugging
| CAPABILITIES
Q&A
https://github.com/xtremelabs/xl-image_utils_lib-android
@james_halpern | james.halpern@xtremelabs.com
Problems Tools API Debugging
| CAPABILITIES
Thank you!
@james_halpern | james.halpern@xtremelabs.com

More Related Content

Viewers also liked

Glass w/o Glass: Developing native Glass applications without the hardware w...
 Glass w/o Glass: Developing native Glass applications without the hardware w... Glass w/o Glass: Developing native Glass applications without the hardware w...
Glass w/o Glass: Developing native Glass applications without the hardware w...FITC
 
Badass Motion Design for Front-end Developers
Badass Motion Design for Front-end DevelopersBadass Motion Design for Front-end Developers
Badass Motion Design for Front-end DevelopersFITC
 
Prolific Minded
Prolific MindedProlific Minded
Prolific MindedFITC
 
Learning from Science Fiction with Greg Borenstein
Learning from Science Fiction with Greg BorensteinLearning from Science Fiction with Greg Borenstein
Learning from Science Fiction with Greg BorensteinFITC
 
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane EcosystemDownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane EcosystemFITC
 
Making Mixed Reality Living Spaces
Making Mixed Reality Living SpacesMaking Mixed Reality Living Spaces
Making Mixed Reality Living SpacesFITC
 
! or ? with Chip Kidd
! or ? with Chip Kidd! or ? with Chip Kidd
! or ? with Chip KiddFITC
 
Our Once and Now Relationship with the Book with Pamela Hilborn
Our Once and Now Relationship with the Book with Pamela HilbornOur Once and Now Relationship with the Book with Pamela Hilborn
Our Once and Now Relationship with the Book with Pamela HilbornFITC
 
PageCloud Reimagines The Future of Website Creation with Craig Fitzpatrick
PageCloud Reimagines The Future of Website Creation with Craig FitzpatrickPageCloud Reimagines The Future of Website Creation with Craig Fitzpatrick
PageCloud Reimagines The Future of Website Creation with Craig FitzpatrickFITC
 
UX Lessons from the USSR: The Trouble with Manifestos with Erik von Stackelberg
 UX Lessons from the USSR: The Trouble with Manifestos with Erik von Stackelberg UX Lessons from the USSR: The Trouble with Manifestos with Erik von Stackelberg
UX Lessons from the USSR: The Trouble with Manifestos with Erik von StackelbergFITC
 
Design as a Means of Reflection
Design as a Means of ReflectionDesign as a Means of Reflection
Design as a Means of ReflectionFITC
 
Swaggy Layouts With Flexbox
Swaggy Layouts With FlexboxSwaggy Layouts With Flexbox
Swaggy Layouts With FlexboxFITC
 
Prolific Minded
Prolific MindedProlific Minded
Prolific MindedFITC
 
Goofy, Goodfellas and a Gardener: The Masters of Experience Design.
Goofy, Goodfellas and a Gardener: The Masters of Experience Design.Goofy, Goodfellas and a Gardener: The Masters of Experience Design.
Goofy, Goodfellas and a Gardener: The Masters of Experience Design.FITC
 
Empowering the “Mobile Web” with Chris Mills
Empowering the “Mobile Web” with Chris MillsEmpowering the “Mobile Web” with Chris Mills
Empowering the “Mobile Web” with Chris MillsFITC
 
From Box to Bots in Minutes
From Box to Bots in MinutesFrom Box to Bots in Minutes
From Box to Bots in MinutesFITC
 
Responsive Design, Past, Present and Future
Responsive Design, Past, Present and FutureResponsive Design, Past, Present and Future
Responsive Design, Past, Present and FutureFITC
 
10-Foot 2 Inches: Designing Apps for Up-Close & Afar with Jenna Marino, Patri...
10-Foot 2 Inches: Designing Apps for Up-Close & Afar with Jenna Marino, Patri...10-Foot 2 Inches: Designing Apps for Up-Close & Afar with Jenna Marino, Patri...
10-Foot 2 Inches: Designing Apps for Up-Close & Afar with Jenna Marino, Patri...FITC
 
Apps for the Multi-Device World
Apps for the Multi-Device WorldApps for the Multi-Device World
Apps for the Multi-Device WorldFITC
 

Viewers also liked (19)

Glass w/o Glass: Developing native Glass applications without the hardware w...
 Glass w/o Glass: Developing native Glass applications without the hardware w... Glass w/o Glass: Developing native Glass applications without the hardware w...
Glass w/o Glass: Developing native Glass applications without the hardware w...
 
Badass Motion Design for Front-end Developers
Badass Motion Design for Front-end DevelopersBadass Motion Design for Front-end Developers
Badass Motion Design for Front-end Developers
 
Prolific Minded
Prolific MindedProlific Minded
Prolific Minded
 
Learning from Science Fiction with Greg Borenstein
Learning from Science Fiction with Greg BorensteinLearning from Science Fiction with Greg Borenstein
Learning from Science Fiction with Greg Borenstein
 
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane EcosystemDownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
 
Making Mixed Reality Living Spaces
Making Mixed Reality Living SpacesMaking Mixed Reality Living Spaces
Making Mixed Reality Living Spaces
 
! or ? with Chip Kidd
! or ? with Chip Kidd! or ? with Chip Kidd
! or ? with Chip Kidd
 
Our Once and Now Relationship with the Book with Pamela Hilborn
Our Once and Now Relationship with the Book with Pamela HilbornOur Once and Now Relationship with the Book with Pamela Hilborn
Our Once and Now Relationship with the Book with Pamela Hilborn
 
PageCloud Reimagines The Future of Website Creation with Craig Fitzpatrick
PageCloud Reimagines The Future of Website Creation with Craig FitzpatrickPageCloud Reimagines The Future of Website Creation with Craig Fitzpatrick
PageCloud Reimagines The Future of Website Creation with Craig Fitzpatrick
 
UX Lessons from the USSR: The Trouble with Manifestos with Erik von Stackelberg
 UX Lessons from the USSR: The Trouble with Manifestos with Erik von Stackelberg UX Lessons from the USSR: The Trouble with Manifestos with Erik von Stackelberg
UX Lessons from the USSR: The Trouble with Manifestos with Erik von Stackelberg
 
Design as a Means of Reflection
Design as a Means of ReflectionDesign as a Means of Reflection
Design as a Means of Reflection
 
Swaggy Layouts With Flexbox
Swaggy Layouts With FlexboxSwaggy Layouts With Flexbox
Swaggy Layouts With Flexbox
 
Prolific Minded
Prolific MindedProlific Minded
Prolific Minded
 
Goofy, Goodfellas and a Gardener: The Masters of Experience Design.
Goofy, Goodfellas and a Gardener: The Masters of Experience Design.Goofy, Goodfellas and a Gardener: The Masters of Experience Design.
Goofy, Goodfellas and a Gardener: The Masters of Experience Design.
 
Empowering the “Mobile Web” with Chris Mills
Empowering the “Mobile Web” with Chris MillsEmpowering the “Mobile Web” with Chris Mills
Empowering the “Mobile Web” with Chris Mills
 
From Box to Bots in Minutes
From Box to Bots in MinutesFrom Box to Bots in Minutes
From Box to Bots in Minutes
 
Responsive Design, Past, Present and Future
Responsive Design, Past, Present and FutureResponsive Design, Past, Present and Future
Responsive Design, Past, Present and Future
 
10-Foot 2 Inches: Designing Apps for Up-Close & Afar with Jenna Marino, Patri...
10-Foot 2 Inches: Designing Apps for Up-Close & Afar with Jenna Marino, Patri...10-Foot 2 Inches: Designing Apps for Up-Close & Afar with Jenna Marino, Patri...
10-Foot 2 Inches: Designing Apps for Up-Close & Afar with Jenna Marino, Patri...
 
Apps for the Multi-Device World
Apps for the Multi-Device WorldApps for the Multi-Device World
Apps for the Multi-Device World
 

Similar to Getting Intimate with Images on Android with James Halpern

Mo devtablet johncromartie-graphicsperformance
Mo devtablet johncromartie-graphicsperformanceMo devtablet johncromartie-graphicsperformance
Mo devtablet johncromartie-graphicsperformancejohncromartie
 
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschiIasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschiCodecamp Romania
 
FITC - Exploring Art-Directed Responsive Images
FITC - Exploring Art-Directed Responsive ImagesFITC - Exploring Art-Directed Responsive Images
FITC - Exploring Art-Directed Responsive ImagesRami Sayar
 
Everything Goes Better With Bacon: Revisiting the Six Degrees Problem with a ...
Everything Goes Better With Bacon: Revisiting the Six Degrees Problem with a ...Everything Goes Better With Bacon: Revisiting the Six Degrees Problem with a ...
Everything Goes Better With Bacon: Revisiting the Six Degrees Problem with a ...InfiniteGraph
 
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....Aidan Foster
 
Better images for video - Jeremy Brown
Better images for video - Jeremy BrownBetter images for video - Jeremy Brown
Better images for video - Jeremy BrownJeremy Brown
 
Responsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesResponsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesVitaly Friedman
 
Revisiting the Six Degrees Problem with a Graph Database - Nick Quinn
Revisiting the Six Degrees Problem with a Graph Database - Nick QuinnRevisiting the Six Degrees Problem with a Graph Database - Nick Quinn
Revisiting the Six Degrees Problem with a Graph Database - Nick Quinnjaxconf
 
Strata London - Deep Learning 05-2015
Strata London - Deep Learning 05-2015Strata London - Deep Learning 05-2015
Strata London - Deep Learning 05-2015Turi, Inc.
 
Performance.now() fast but not furious
Performance.now()   fast but not furiousPerformance.now()   fast but not furious
Performance.now() fast but not furiousAnna Migas
 
Android design lecture #1
Android design   lecture #1Android design   lecture #1
Android design lecture #1Vitali Pekelis
 
Universal Image Loader: Story, Architecture, FAQ
Universal Image Loader: Story, Architecture, FAQUniversal Image Loader: Story, Architecture, FAQ
Universal Image Loader: Story, Architecture, FAQSergey Tarasevich
 
Dev tools rendering & memory profiling
Dev tools rendering & memory profilingDev tools rendering & memory profiling
Dev tools rendering & memory profilingOpen Academy
 
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013Máté Nádasdi
 
Performance and Memory Tuning - Part III - Transcript.pdf
Performance and Memory Tuning - Part III - Transcript.pdfPerformance and Memory Tuning - Part III - Transcript.pdf
Performance and Memory Tuning - Part III - Transcript.pdfShaiAlmog1
 
Drupalcon Asia - "Drupal 8 Mobile in its DNA"
Drupalcon Asia - "Drupal 8 Mobile in its DNA"Drupalcon Asia - "Drupal 8 Mobile in its DNA"
Drupalcon Asia - "Drupal 8 Mobile in its DNA"Ram Singh
 
Trouble with distribution
Trouble with distributionTrouble with distribution
Trouble with distributionJ On The Beach
 
Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Maksim Golivkin
 

Similar to Getting Intimate with Images on Android with James Halpern (20)

IMAGE PROCESSING
IMAGE PROCESSINGIMAGE PROCESSING
IMAGE PROCESSING
 
Mo devtablet johncromartie-graphicsperformance
Mo devtablet johncromartie-graphicsperformanceMo devtablet johncromartie-graphicsperformance
Mo devtablet johncromartie-graphicsperformance
 
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschiIasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
 
FITC - Exploring Art-Directed Responsive Images
FITC - Exploring Art-Directed Responsive ImagesFITC - Exploring Art-Directed Responsive Images
FITC - Exploring Art-Directed Responsive Images
 
Everything Goes Better With Bacon: Revisiting the Six Degrees Problem with a ...
Everything Goes Better With Bacon: Revisiting the Six Degrees Problem with a ...Everything Goes Better With Bacon: Revisiting the Six Degrees Problem with a ...
Everything Goes Better With Bacon: Revisiting the Six Degrees Problem with a ...
 
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
 
Better images for video - Jeremy Brown
Better images for video - Jeremy BrownBetter images for video - Jeremy Brown
Better images for video - Jeremy Brown
 
Responsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesResponsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and Techniques
 
Revisiting the Six Degrees Problem with a Graph Database - Nick Quinn
Revisiting the Six Degrees Problem with a Graph Database - Nick QuinnRevisiting the Six Degrees Problem with a Graph Database - Nick Quinn
Revisiting the Six Degrees Problem with a Graph Database - Nick Quinn
 
Strata London - Deep Learning 05-2015
Strata London - Deep Learning 05-2015Strata London - Deep Learning 05-2015
Strata London - Deep Learning 05-2015
 
Performance.now() fast but not furious
Performance.now()   fast but not furiousPerformance.now()   fast but not furious
Performance.now() fast but not furious
 
Android design lecture #1
Android design   lecture #1Android design   lecture #1
Android design lecture #1
 
Universal Image Loader: Story, Architecture, FAQ
Universal Image Loader: Story, Architecture, FAQUniversal Image Loader: Story, Architecture, FAQ
Universal Image Loader: Story, Architecture, FAQ
 
Dev tools rendering & memory profiling
Dev tools rendering & memory profilingDev tools rendering & memory profiling
Dev tools rendering & memory profiling
 
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
Google Chrome DevTools: Rendering & Memory profiling on Open Academy 2013
 
Performance and Memory Tuning - Part III - Transcript.pdf
Performance and Memory Tuning - Part III - Transcript.pdfPerformance and Memory Tuning - Part III - Transcript.pdf
Performance and Memory Tuning - Part III - Transcript.pdf
 
imgproxy is amazing
imgproxy is amazingimgproxy is amazing
imgproxy is amazing
 
Drupalcon Asia - "Drupal 8 Mobile in its DNA"
Drupalcon Asia - "Drupal 8 Mobile in its DNA"Drupalcon Asia - "Drupal 8 Mobile in its DNA"
Drupalcon Asia - "Drupal 8 Mobile in its DNA"
 
Trouble with distribution
Trouble with distributionTrouble with distribution
Trouble with distribution
 
Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids.
 

More from FITC

Cut it up
Cut it upCut it up
Cut it upFITC
 
Designing for Digital Health
Designing for Digital HealthDesigning for Digital Health
Designing for Digital HealthFITC
 
Profiling JavaScript Performance
Profiling JavaScript PerformanceProfiling JavaScript Performance
Profiling JavaScript PerformanceFITC
 
Surviving Your Tech Stack
Surviving Your Tech StackSurviving Your Tech Stack
Surviving Your Tech StackFITC
 
How to Pitch Your First AR Project
How to Pitch Your First AR ProjectHow to Pitch Your First AR Project
How to Pitch Your First AR ProjectFITC
 
Start by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the AnswerStart by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the AnswerFITC
 
Cocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s StoryCocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s StoryFITC
 
Everyday Innovation
Everyday InnovationEveryday Innovation
Everyday InnovationFITC
 
HyperLight Websites
HyperLight WebsitesHyperLight Websites
HyperLight WebsitesFITC
 
Everything is Terrifying
Everything is TerrifyingEverything is Terrifying
Everything is TerrifyingFITC
 
Post-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future HumanPost-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future HumanFITC
 
The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)FITC
 
East of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR GameEast of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR GameFITC
 
Creating a Proactive Healthcare System
Creating a Proactive Healthcare SystemCreating a Proactive Healthcare System
Creating a Proactive Healthcare SystemFITC
 
World Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product DesignWorld Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product DesignFITC
 
The Power of Now
The Power of NowThe Power of Now
The Power of NowFITC
 
High Performance PWAs
High Performance PWAsHigh Performance PWAs
High Performance PWAsFITC
 
Rise of the JAMstack
Rise of the JAMstackRise of the JAMstack
Rise of the JAMstackFITC
 
From Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self DiscoveryFrom Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self DiscoveryFITC
 
Projects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time ForProjects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time ForFITC
 

More from FITC (20)

Cut it up
Cut it upCut it up
Cut it up
 
Designing for Digital Health
Designing for Digital HealthDesigning for Digital Health
Designing for Digital Health
 
Profiling JavaScript Performance
Profiling JavaScript PerformanceProfiling JavaScript Performance
Profiling JavaScript Performance
 
Surviving Your Tech Stack
Surviving Your Tech StackSurviving Your Tech Stack
Surviving Your Tech Stack
 
How to Pitch Your First AR Project
How to Pitch Your First AR ProjectHow to Pitch Your First AR Project
How to Pitch Your First AR Project
 
Start by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the AnswerStart by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the Answer
 
Cocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s StoryCocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s Story
 
Everyday Innovation
Everyday InnovationEveryday Innovation
Everyday Innovation
 
HyperLight Websites
HyperLight WebsitesHyperLight Websites
HyperLight Websites
 
Everything is Terrifying
Everything is TerrifyingEverything is Terrifying
Everything is Terrifying
 
Post-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future HumanPost-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future Human
 
The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)
 
East of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR GameEast of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR Game
 
Creating a Proactive Healthcare System
Creating a Proactive Healthcare SystemCreating a Proactive Healthcare System
Creating a Proactive Healthcare System
 
World Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product DesignWorld Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product Design
 
The Power of Now
The Power of NowThe Power of Now
The Power of Now
 
High Performance PWAs
High Performance PWAsHigh Performance PWAs
High Performance PWAs
 
Rise of the JAMstack
Rise of the JAMstackRise of the JAMstack
Rise of the JAMstack
 
From Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self DiscoveryFrom Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self Discovery
 
Projects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time ForProjects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time For
 

Recently uploaded

Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Roomdivyansh0kumar0
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 

Recently uploaded (20)

Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 

Getting Intimate with Images on Android with James Halpern

Editor's Notes

  1. ----- Meeting Notes (2013-05-02 14:18) -----NameLead Engineer
  2. ----- Meeting Notes (2013-05-02 14:18) -----I&apos;m hear to talk about images!They&apos;re complex.Need to learn how to deal with them.
  3. ----- Meeting Notes (2013-05-02 14:18) -----How many devs? Android devs?Designers? Android designers?Product/management? Other?Dev focus. Good content for designers.
  4. ----- Meeting Notes (2013-05-02 14:18) -----At Xtreme Labswe strive to build the best mobile appsfor the biggest companies
  5. ----- Meeting Notes (2013-05-02 14:18) -----We hold a core set of values that help usToday, execution
  6. ----- Meeting Notes (2013-05-02 14:18) -----Passion for librariesReusable codeMaking lives simple
  7. ----- Meeting Notes (2013-05-02 14:18) -----HTC Status -- Challenging16MB of memorySlowWeird screen resolution
  8. ----- Meeting Notes (2013-05-02 14:18) -----Four key areas with problemsBugs -- Flickering, wrong view, OOMDesign -- Scaling, aspect ratio
  9. ----- Meeting Notes (2013-05-02 14:18) -----Available on github
  10. ----- Meeting Notes (2013-05-02 14:18) -----Designers -- How design impacts devDevelopers -- How to solveProduct -- Why it takes devs a whileWalk you through problem to solution
  11. ----- Meeting Notes (2013-05-02 14:18) -----Less of a problem on iOSStill a problem on iOSThis solution -- Relevant to iOS
  12. ----- Meeting Notes (2013-05-02 14:18) -----Less RAM than Disk!Yet bigger in RAM!
  13. ----- Meeting Notes (2013-05-02 14:18) -----Will crash the HTC Status &amp; replenish
  14. ----- Meeting Notes (2013-05-02 14:18) -----Same image fits in different views
  15. ----- Meeting Notes (2013-05-02 14:18) -----Same view can require different sizes