# Picasso

Published articles for Picasso.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Starting Android at Khan Academy

DevFeed: [Starting Android at Khan Academy](<https://devfeed.tech/articles/starting-android-at-khan-academy-27408.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/starting-android.htm>)

Author: Khan Academy

Published: 2016-02-29T23:00:00Z

Content type: article

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [android-development](<https://devfeed.tech/topics/android-development.md>), [Development](<https://devfeed.tech/topics/development.md>), [Library](<https://devfeed.tech/topics/library.md>), [modules](<https://devfeed.tech/topics/modules.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Mocking](<https://devfeed.tech/topics/mocking.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mocking](<https://devfeed.tech/tags/mocking.md>), [module](<https://devfeed.tech/tags/module.md>), [modules](<https://devfeed.tech/tags/modules.md>), [news](<https://devfeed.tech/tags/news.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [picasso](<https://devfeed.tech/tags/picasso.md>), [play-store](<https://devfeed.tech/tags/play-store.md>), [pre-commit](<https://devfeed.tech/tags/pre-commit.md>), [retrofit](<https://devfeed.tech/tags/retrofit.md>), [test](<https://devfeed.tech/tags/test.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

Khan Academy describes its first Android app, launched in August 2015, and the engineering practices used to build it. The team adopted established Android and open-source libraries, separated Android-independent core code from the app module, and used fast JVM tests and continuous integration.

### Source excerpt

By Ben Komalo The journey of a thousand miles... In March, 2015--almost 1 year ago to the day--we ... Read more

## Callback leaks: cancel your Picasso requests!

DevFeed: [Callback leaks: cancel your Picasso requests!](<https://devfeed.tech/articles/callback-leaks-cancel-your-picasso-requests-25620.md>)

Original publisher: [Read original article](<https://blog.p-y.wtf/callback-leaks-cancel-your-picasso-requests>)

Author: Pierre-Yves Ricau

Published: 2023-01-17T21:06:14Z

Content type: tutorial

Language: en

Sources: [Py's blog](<https://devfeed.tech/sources/py-s-blog.md>)

Topics: [Picasso](<https://devfeed.tech/topics/picasso.md>), [Android](<https://devfeed.tech/topics/android.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [leak](<https://devfeed.tech/tags/leak.md>), [leakcanary](<https://devfeed.tech/tags/leakcanary.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>), [performance](<https://devfeed.tech/tags/performance.md>), [picasso](<https://devfeed.tech/tags/picasso.md>)

### AI overview

This article investigates an Android memory leak caused by an in-flight Picasso image-loading request retaining a detached UI component through a custom callback. It explains how to read the leak trace and recommends canceling requests or using tags when the UI goes away.

### Source excerpt

👋 Hi, this is P.Y., I work as an Android Engineer at Block. Every month I organize an internal Ensemble Leak Hunting session where we look at the top leaks reported by LeakCanary to learn how to read

## Android Image Loading at SoundCloud

DevFeed: [Android Image Loading at SoundCloud](<https://devfeed.tech/articles/android-image-loading-at-soundcloud-1986.md>)

Original publisher: [Read original article](<https://developers.soundcloud.com/blog//android-images-at-soundcloud>)

Published: 2022-10-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [SoundCloud Backstage Blog](<https://devfeed.tech/sources/soundcloud-backstage-blog.md>)

Topics: [User interface design](<https://devfeed.tech/topics/ui-design.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [animation](<https://devfeed.tech/tags/animation.md>), [app](<https://devfeed.tech/tags/app.md>), [design](<https://devfeed.tech/tags/design.md>), [images](<https://devfeed.tech/tags/images.md>), [picasso](<https://devfeed.tech/tags/picasso.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

SoundCloud explains how its Android app redesign implements artwork stacks, overlays, color extraction, placeholders, fade-ins, and image loading with Picasso.

### Source excerpt

The SoundCloud Android app recently got a significant makeover: a "new year, new me" type of thing. Our remarkable design team and...

## Slope-intercept library design

DevFeed: [Slope-intercept library design](<https://devfeed.tech/articles/slope-intercept-library-design-20972.md>)

Original publisher: [Read original article](<https://jakewharton.com/slope-intercept-library-design/>)

Published: 2022-04-05T00:00:00Z

Content type: opinion

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>)

Topics: [Library](<https://devfeed.tech/topics/library.md>), [Picasso](<https://devfeed.tech/topics/picasso.md>), [Android](<https://devfeed.tech/topics/android.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Dependency injection](<https://devfeed.tech/topics/dependency-injection.md>), [Scala](<https://devfeed.tech/topics/scala.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dagger](<https://devfeed.tech/tags/dagger.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [http](<https://devfeed.tech/tags/http.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [library](<https://devfeed.tech/tags/library.md>), [picasso](<https://devfeed.tech/tags/picasso.md>)

### AI overview

The article proposes using slope-intercept form as a way to evaluate library design. The intercept represents the initial learning and setup cost, while the slope represents how complexity changes as requirements grow. It compares Picasso, Retrofit, and Dagger to show how libraries can trade a low initial barrier for steeper long-term complexity, or require more conceptual investment up front to remain easier to extend.

### Source excerpt

The equation y=mx+b defines a line in slope-intercept form. The line will intercept the y-axis at the value b and for each change in x its slope (the amount the line goes up or down) will change by m. Slope-intercept gives me a way to think about the design of libraries in relation to each other. The intercept is the initial cost of learning and setup for a library, and the slope is how the library's complexity changes over time. There's no real units here and the values are entirely subjective. Let's try it! Picasso Exactly 10 years ago today I introduced Picasso internally at Square. As an image loading library for Android, its primary selling point was a low intercept. It required no real configuration and only one line of code (even in a ListView adapter). Picasso.with(context).load("https://...").into(imageView); At the time this was a refreshing change from the existing libraries which required a lot of up-front and per-request configuration. The downside, however, was that as your needs grow the slope of complexity also grows faster than desired. Configuring the global instance, managing multiple instances, intercepting requests, and transforming images are all possible but more difficult than if the library was designed differently. Retrofit Retrofit is a declarative HTTP client abstraction for the JVM and Android. It requires configuration of a central object before you can use it to create instances of service interfaces. interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user); } var retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .addConverter(MoshiJsonConverter.create()) .build(); var service = retrofit.create(GitHubService.class); This up-front configuration gives Retrofit a higher intercept on the y-axis. Exposure to these APIs gives you an entrypoint to discover functionality and encourages you to manage their lifetimes in an efficient way for your usage allowing the slope of com

## Chrome extensions for quick site redesigns

DevFeed: [Chrome extensions for quick site redesigns](<https://devfeed.tech/articles/chrome-extensions-for-quick-site-redesigns-35518.md>)

Original publisher: [Read original article](<https://meowni.ca/posts/extensions/>)

Author: Monica Dinculescu

Published: 2017-09-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Monica Dinculescu](<https://devfeed.tech/sources/monica-dinculescu.md>)

Topics: [Chrome extension](<https://devfeed.tech/topics/chrome-extension.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [Extension](<https://devfeed.tech/topics/extension.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Google Calendar](<https://devfeed.tech/topics/google-calendar.md>), [Picasso](<https://devfeed.tech/topics/picasso.md>)

Tags: [chrome](<https://devfeed.tech/tags/chrome.md>), [chrome-extension](<https://devfeed.tech/tags/chrome-extension.md>), [css](<https://devfeed.tech/tags/css.md>), [extensions](<https://devfeed.tech/tags/extensions.md>), [html](<https://devfeed.tech/tags/html.md>), [picasso](<https://devfeed.tech/tags/picasso.md>)

### AI overview

The article explains how Chrome extensions can inject CSS into specific webpages, making them useful for quickly experimenting with site redesigns without changing the underlying project or build setup. It also discusses sharing extensions as ZIP files, CSS specificity considerations, and the Picasso Google Calendar theme as an example.

### Source excerpt

There's this thing I hate about the modern web which is that sites are rarely one giant html file filled with goodies. You can't just "run a site" locally. You need an npm or a gulp step or a docker if you're lucky. And probably a local server, but not the one you have installed. Which, I mean, makes sense, because modern web sites are big and powerful and have complicated front-ends and do more things than a giant html file would. But it also kind of sucks because the build ceremonial sacrifices can be a bit overwhelming. Maybe you just want to see what the links would look like if they didn't have underlines. Maybe you want to change the fonts. Maybe you're never even going to ship these changes, you just want to get a feel for them. Boy, have I got an idea for you: Chrome extensions. Hear me out. A Chrome extension is a bit of code that runs on a specific page (or set of pages). It can be anything you want. In particular, it can be a CSS stylesheet. Then, re-theming a site is just a matter of installing this Chrome extension. If you want to share it with people, you can just zip it up and send it around. It's obviously not production ready, but it's amaaaaazing for prototyping. I made a glitch project that gets you started with writing a Chrome extension that injects a CSS stylesheet. There's only one thing you need to know: this stylesheet is a User Agent stylesheet, which means it has the lowest specificity. So some of its styles won't get applied unless you slap some !importants on it (or have extra specific selectors). Or, if you have an ID, you can do my favourite CSS hack ever that I learnt from Surma and will take to the grave: #foo#foo { /* this is a really winner #foo selector */ color: red; } --- That's it! If you want to see an example of such an extension in the wild, I made picasso, which is just a pretty Google Calendar theme. Originally it was just a local extension I kept on my machine, but eventually I published it because I realized other people

## Extension functions in Kotlin: Extend the Android Framework (KAD 08)

DevFeed: [Extension functions in Kotlin: Extend the Android Framework (KAD 08)](<https://devfeed.tech/articles/extension-functions-in-kotlin-extend-the-android-framework-kad-08-27162.md>)

Original publisher: [Read original article](<https://antonioleiva.com/extension-functions-kotlin>)

Published: 2017-01-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Antonio Leiva](<https://devfeed.tech/sources/antonio-leiva.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Extension](<https://devfeed.tech/topics/extension.md>), [Android](<https://devfeed.tech/topics/android.md>), [Code](<https://devfeed.tech/topics/code.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-framework](<https://devfeed.tech/tags/android-framework.md>), [code](<https://devfeed.tech/tags/code.md>), [examples](<https://devfeed.tech/tags/examples.md>), [extension](<https://devfeed.tech/tags/extension.md>), [extension-function](<https://devfeed.tech/tags/extension-function.md>), [framework](<https://devfeed.tech/tags/framework.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [picasso](<https://devfeed.tech/tags/picasso.md>)

### AI overview

A tutorial explaining Kotlin extension functions and extension properties, with Android examples for views, Toasts, adapter view inflation, and Picasso image loading. It describes how extensions add functionality to existing classes without modifying their code and notes that extension properties cannot store state.

### Source excerpt

Everything Android, Kotlin and other random topics

## Combining Picasso with color matrices to transform images

DevFeed: [Combining Picasso with color matrices to transform images](<https://devfeed.tech/articles/welcome-to-the-color-matrix-15957.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/welcome-to-the-color-matrix>)

Author: P-Y Ricau

Published: 2015-12-09T17:10:00Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Picasso](<https://devfeed.tech/topics/picasso.md>), [Canvas](<https://devfeed.tech/topics/canvas.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [canvas](<https://devfeed.tech/tags/canvas.md>), [code](<https://devfeed.tech/tags/code.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [images](<https://devfeed.tech/tags/images.md>), [picasso](<https://devfeed.tech/tags/picasso.md>), [pixel](<https://devfeed.tech/tags/pixel.md>), [rgb](<https://devfeed.tech/tags/rgb.md>)

### AI overview

This tutorial explains how to tint downloaded images dynamically by converting them to grayscale and applying a ColorMatrix while drawing them on a canvas. It presents the approach as more generic and efficient than layering a translucent color or processing every pixel individually.

### Source excerpt

Combining Picasso with color matrices to transform images.

## Alert dialogs may cause memory leaks in Android apps before Lollipop

DevFeed: [Alert dialogs may cause memory leaks in Android apps before Lollipop](<https://devfeed.tech/articles/a-small-leak-will-sink-a-great-ship-15476.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/a-small-leak-will-sink-a-great-ship>)

Author: P-Y Ricau

Published: 2015-08-20T16:09:00Z

Content type: article

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [Android](<https://devfeed.tech/topics/android.md>), [bug](<https://devfeed.tech/topics/bug.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [leakcanary](<https://devfeed.tech/tags/leakcanary.md>), [memory-leaks](<https://devfeed.tech/tags/memory-leaks.md>), [picasso](<https://devfeed.tech/tags/picasso.md>)

### AI overview

This article investigates memory leaks in Android apps before Android Lollipop. It traces the issue to alert-dialog click listeners and references retained by worker threads processing messages through blocking queues.

### Source excerpt

Prior to Android Lollipop, alert dialogs may cause memory leaks in your Android apps.

## Interested in an Android Developer Podcast?

DevFeed: [Interested in an Android Developer Podcast?](<https://devfeed.tech/articles/interested-in-an-android-developer-podcast-25267.md>)

Original publisher: [Read original article](<https://kau.sh/blog/interested-in-an-android-developer-focused-podcast/>)

Author: Kaushik Gopal

Published: 2015-01-11T07:00:00Z

Content type: opinion

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Development](<https://devfeed.tech/topics/development.md>), [Picasso](<https://devfeed.tech/topics/picasso.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [developer](<https://devfeed.tech/tags/developer.md>), [picasso](<https://devfeed.tech/tags/picasso.md>), [podcast](<https://devfeed.tech/tags/podcast.md>)

### AI overview

The author discusses the limited availability of podcasts focused on Android development, praises Android Developers Backstage, and considers starting a developer-oriented Android podcast. The proposed show would cover libraries, development lessons, techniques, and high-quality Android apps.

### Source excerpt

i listen to a tonne of podcasts. i find activities such as doing my laundry, driving back home from work, doing the dishes ... all delightful because it gives me a chance to strap on some headphones and listen to a bunch of podcasts. in the time that i run those dreadfully boring chores i've found myself learning so much about technology and good software development. as i was driving back home today i was listening to an episode of Ruby Rogues and thought to myself: why aren't there more podcasts like this for Android? the iOS folks have some amazing podcasts focused for the developer audience. heck, i listen to two of them and i'm not an iOS developer (granted they're slightly more generic). as an android developer there is exactly one show today that is focused on android development called "Android Developers Backstage". it's hosted by google engineers Chet Hasse and Tor Norbye (both of them work directly with Android). they're funny and the podcast is amazing! if you're an android developer you should absolutely be listening to it. my only gripe with the show is that they live in their beautiful google bubble. on a recent show they interviewed Jake Wharton (a.k.a superman android dev) and i found it really interesting that they had genuinely not heard of some of the libraries that Jake works on (like Picasso, Retrofit and ButterKnife). i guess it makes sense though: they're google engineers working on android directly. if they really needed something, they would have had it baked in. but i don't think i'm alone when i say that for some of us android developers, those libraries are indispensable for pushing out quality android apps quickly. i want to hear more about such libraries. what are some of your learnings as an android developer that you would love to share? what are some tricks and techniques you have in your utility belt? can you tell me about some android apps that are top notch and push the boundary in terms of quality and design? what are some interes

## Coercing Picasso To Play With Palette

DevFeed: [Coercing Picasso To Play With Palette](<https://devfeed.tech/articles/coercing-picasso-to-play-with-palette-20923.md>)

Original publisher: [Read original article](<https://jakewharton.com/coercing-picasso-to-play-with-palette/>)

Published: 2014-10-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>)

Topics: [Picasso](<https://devfeed.tech/topics/picasso.md>), [Image](<https://devfeed.tech/topics/image.md>), [API](<https://devfeed.tech/topics/api.md>), [Library](<https://devfeed.tech/topics/library.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [image](<https://devfeed.tech/tags/image.md>), [library](<https://devfeed.tech/tags/library.md>), [main-thread](<https://devfeed.tech/tags/main-thread.md>), [picasso](<https://devfeed.tech/tags/picasso.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>)

### AI overview

This article explores how to adapt Picasso's existing APIs to work with the Palette library before direct support is available. It focuses on Bitmap handling, callback behavior, and Picasso's threading model for performing Palette computation without blocking the Android main thread.

### Source excerpt

Features feel how I imagine children would. They are relatively easy to spawn but require a lengthy committment and constant care. Picasso's API would be nothing short of a Greek tragedy if we humored every feature request that we received. Finding the right balance of what is appropriate to add and what isn't is a constant struggle. When the Palette library was teased the inevitable feature request came in to Picasso for a means of supporting it. This was certainly not an unreasonable request, and while we might not explicitly support it directly we will probably add something in the future to more easily facilitate its use. But what do we do in the interim? The API for proper support is many months if not a year away from actually being implemented. Let's walk through an attempt to adapt the existing APIs to allow Palette's use. The fundamental component of Picasso's data pipeline after the request has been fulfilled is a Bitmap. We use this in the return values and method parameters which traverse upwards to the main thread. Bitmap is a final class in Android so we will not get an opportunity to hang extra metadata on a subclass. There are two ways that Picasso can notify the caller of a successful image download: the Callback when loading directly into an ImageView or the more generalized Target. A Target is given direct access to the Bitmap object but the Callback is not (although you can get it indirectly with some cleverness). Regardless of Bitmap access is the problem that both of these are called on the main thread. Since Palette does a decent amount of computation we don't want to do it here anyways. Palette actually has an asynchronous mode of operation that we could leverage in these two callback locations but you wouldn't want to. The images are ready to be displayed when the callbacks are invoked so either delaying display until you can run Palette on another background thread or displaying the image right away and getting the Palette information later

## Picasso 2.3 Adds Request Replaying and New APIs

DevFeed: [Picasso 2.3 Adds Request Replaying and New APIs](<https://devfeed.tech/articles/hello-picasso-2-3-15672.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/hello-picasso-2-3>)

Author: Square Engineering

Published: 2014-05-30T16:06:00Z

Content type: release

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>), [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Picasso](<https://devfeed.tech/topics/picasso.md>), [Android](<https://devfeed.tech/topics/android.md>), [android-development](<https://devfeed.tech/topics/android-development.md>), [Caching](<https://devfeed.tech/topics/caching.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [apis](<https://devfeed.tech/tags/apis.md>), [caching](<https://devfeed.tech/tags/caching.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [picasso](<https://devfeed.tech/tags/picasso.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

Picasso 2.3 introduces request replaying and new APIs for image downloading and caching on Android. Its dispatcher can track failed image requests and automatically replay them when network connectivity returns.

### Source excerpt

Request replaying and new APIs

## Enhance Your Application Using Picasso

DevFeed: [Enhance Your Application Using Picasso](<https://devfeed.tech/articles/enhance-your-application-using-picasso-15627.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/enhance-your-application-using-picasso>)

Author: Square Engineering

Published: 2013-05-14T16:03:00Z

Content type: release

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>), [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Picasso](<https://devfeed.tech/topics/picasso.md>), [Android](<https://devfeed.tech/topics/android.md>), [Library](<https://devfeed.tech/topics/library.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Image](<https://devfeed.tech/topics/image.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [caching](<https://devfeed.tech/tags/caching.md>), [code](<https://devfeed.tech/tags/code.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [image](<https://devfeed.tech/tags/image.md>), [library](<https://devfeed.tech/tags/library.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [picasso](<https://devfeed.tech/tags/picasso.md>)

### AI overview

Square introduces Picasso, an open-source Android library for downloading, caching, displaying, and transforming images. The library is designed to be fast and simple to use, and it uses memory and disk caching to speed bitmap loading.

### Source excerpt

A fluent image downloading and caching library for Android.

## Bezier Curves and Picasso

DevFeed: [Bezier Curves and Picasso](<https://devfeed.tech/articles/bezier-curves-and-picasso-40317.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2013/05/11/bezier-curves-and-picasso/>)

Published: 2013-05-11T00:32:05Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [math](<https://devfeed.tech/topics/math.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Picasso](<https://devfeed.tech/topics/picasso.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [art](<https://devfeed.tech/tags/art.md>), [bezier-curves](<https://devfeed.tech/tags/bezier-curves.md>), [de-casteljau](<https://devfeed.tech/tags/de-casteljau.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [interactive](<https://devfeed.tech/tags/interactive.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [math](<https://devfeed.tech/tags/math.md>), [painting](<https://devfeed.tech/tags/painting.md>), [picasso](<https://devfeed.tech/tags/picasso.md>), [polynomials](<https://devfeed.tech/tags/polynomials.md>), [programming](<https://devfeed.tech/tags/programming.md>), [svg](<https://devfeed.tech/tags/svg.md>)

### AI overview

This tutorial explains Bezier curves through the mathematical ideas behind parameterized curves, then presents a simple algorithm and JavaScript implementation for drawing them. It applies the method to recreate one of Pablo Picasso's line drawings as a sequence of Bezier curves.

### Source excerpt

Pablo Picasso Simplicity and the Artist Some of my favorite of Pablo Picasso's works are his line drawings. He did a number of them about animals: an owl, a camel, a butterfly, etc. This piece called "Dog" is on my wall: Dachshund-Picasso-Sketch (Jump to interactive demo where we recreate "Dog" using the math in this post) These paintings are extremely simple but somehow strike the viewer as deeply profound. They give the impression of being quite simple to design and draw.