We recently dropped iOS 5 so we could use the new 6+ APIs without backwards compatibility.
It makes me smile every time I notice IGListKit at work in Instagram. We put a lot of work into making and improving it. Proud to see it holding up 4 years later.
🧵 with some memories on how it was built:
We recently dropped iOS 5 so we could use the new 6+ APIs without backwards compatibility.
Except two things bugged the hell out of me:
1. No animated changes (duh)
2. Images could flicker and the like animation could cancel
If something triggered another reload after the animation started, the cell cancelled the animation (thus the UI bug)
When an image cell is reused set the background to grey, async load the image (cache or network), set the image. The async time between reuse and fetch/set from cache is where the flicker came from.
Enter UICV performBatchUpdates
So how the hell do I write a diffing algorithm? I literally had never done this.
I settled on Paul Heckel’s https://t.co/jpxuHNlpXg
Why?
1. It’s output matched UICV’s APIs: inserts, deletes, updates, and moves
2. There were example implementations I could actually understand
Foundation hashes can collide
https://t.co/h9eVHO342U
Or are too basic for diffing
https://t.co/Pp0eVFRS5e https://t.co/ZNPJnXlXa4
https://t.co/BACvyI2l08+
With profile done, I submitted a -12k change to remove the old infra.
Throughout this the eng team 10x’d and users 4x’d, we launched tons of products (Stories!), IG opened a NY office, UICV got diffable data sources, and more.
More from Social media
Is WhatsApp already the Super App of India?
Thread 🧵
Below are a few insights I gathered while researching on how Gen-X use WhatsApp as a part of @10kdesigners Cohort!
Okay, let's go!
1/x
Gen-X? Who are they?
Gen-X (short for Generation X) are basically people with birth years around 1960–1980. That’s basically our (millennials’) parents!
2/x
Check out this detailed case study by @zainab_delawala
📮 Communication/Community
This is the primary feature of WhatsApp.
This feature is the entry point for most of the Gen-X, they come to WhatsApp to communicate and engage with small
- WhatsApp group is one of the most used features by Gen-X. Most of the message more on groups than on private chats.
- Forward messages received mostly are written in vernacular languages. They are all well scripted.
4/x
Thread 🧵
Below are a few insights I gathered while researching on how Gen-X use WhatsApp as a part of @10kdesigners Cohort!
Okay, let's go!
1/x
Gen-X? Who are they?
Gen-X (short for Generation X) are basically people with birth years around 1960–1980. That’s basically our (millennials’) parents!
2/x
Check out this detailed case study by @zainab_delawala
📮 Communication/Community
This is the primary feature of WhatsApp.
This feature is the entry point for most of the Gen-X, they come to WhatsApp to communicate and engage with small
Can a movie (96') change how people use an app (Whatsapp)?
— Rajesh Raghavan (@rajeshraghavan_) October 1, 2020
YES. It can.
Let's see how\U0001f440 pic.twitter.com/BV0scQ2KEc
- WhatsApp group is one of the most used features by Gen-X. Most of the message more on groups than on private chats.
- Forward messages received mostly are written in vernacular languages. They are all well scripted.
4/x
✨📱 iOS 12.1 📱✨
🗓 Release date: October 30, 2018
📝 New Emojis: 158
https://t.co/bx8XjhiCiB
New in iOS 12.1: 🥰 Smiling Face With 3 Hearts https://t.co/6eajdvueip
New in iOS 12.1: 🥵 Hot Face https://t.co/jhTv1elltB
New in iOS 12.1: 🥶 Cold Face https://t.co/EIjyl6yZrF
New in iOS 12.1: 🥳 Partying Face https://t.co/p8FDNEQ3LJ
🗓 Release date: October 30, 2018
📝 New Emojis: 158
https://t.co/bx8XjhiCiB
New in iOS 12.1: 🥰 Smiling Face With 3 Hearts https://t.co/6eajdvueip
New in iOS 12.1: 🥵 Hot Face https://t.co/jhTv1elltB
New in iOS 12.1: 🥶 Cold Face https://t.co/EIjyl6yZrF
New in iOS 12.1: 🥳 Partying Face https://t.co/p8FDNEQ3LJ
So let's check in on "Newsguard," one of the Orwellian groups (e.g., The Atlantic Council) that totally reliable sites like @voxdotcom and @axios use to decide what is "Unreliable" and "fight disinformation."
One example:
OK, so "The Daily Wire" and "https://t.co/oEa89coNak" are unreliable. Fair enough, maybe they are (I don't use either one of them).
So let's look into one of our new official arbiters of "reliability," Newsguard!
What's their advisory board look like?
https://t.co/5N8op70VE1
OK, so maybe a few names jumped out at you immediately, like, oh I don't know, (Ret.) General Michael Hayden, former Director of the CIA AND former Director of the National Security Agency in the run-up to the Iraq War in 2003! Google him, he's famous!
Newsguard is all about "seeing who's behind each site," (like how Michael Hayden is behind Newsguard?)
All they want to do is fight "misinformation." That's laudable, right?
Also, Newsguard has a "24/7 rapid response SWAT TEAM!!"
So cool!
https://t.co/EDN3UXvBR9
Ok, I'm not a journalist or a former CIA director, so I have no idea what's true or not unless someone tells me, so hey, Columbia Journalism Review - what do you think of Newsguard Advisory Board Member Michael Hayden?
One example:
OK, so "The Daily Wire" and "https://t.co/oEa89coNak" are unreliable. Fair enough, maybe they are (I don't use either one of them).
So let's look into one of our new official arbiters of "reliability," Newsguard!
What's their advisory board look like?
https://t.co/5N8op70VE1
OK, so maybe a few names jumped out at you immediately, like, oh I don't know, (Ret.) General Michael Hayden, former Director of the CIA AND former Director of the National Security Agency in the run-up to the Iraq War in 2003! Google him, he's famous!
Newsguard is all about "seeing who's behind each site," (like how Michael Hayden is behind Newsguard?)
All they want to do is fight "misinformation." That's laudable, right?
Also, Newsguard has a "24/7 rapid response SWAT TEAM!!"
So cool!
https://t.co/EDN3UXvBR9
Ok, I'm not a journalist or a former CIA director, so I have no idea what's true or not unless someone tells me, so hey, Columbia Journalism Review - what do you think of Newsguard Advisory Board Member Michael Hayden?
You May Also Like
1/“What would need to be true for you to….X”
Why is this the most powerful question you can ask when attempting to reach an agreement with another human being or organization?
A thread, co-written by @deanmbrody:
2/ First, “X” could be lots of things. Examples: What would need to be true for you to
- “Feel it's in our best interest for me to be CMO"
- “Feel that we’re in a good place as a company”
- “Feel that we’re on the same page”
- “Feel that we both got what we wanted from this deal
3/ Normally, we aren’t that direct. Example from startup/VC land:
Founders leave VC meetings thinking that every VC will invest, but they rarely do.
Worse over, the founders don’t know what they need to do in order to be fundable.
4/ So why should you ask the magic Q?
To get clarity.
You want to know where you stand, and what it takes to get what you want in a way that also gets them what they want.
It also holds them (mentally) accountable once the thing they need becomes true.
5/ Staying in the context of soliciting investors, the question is “what would need to be true for you to want to invest (or partner with us on this journey, etc)?”
Multiple responses to this question are likely to deliver a positive result.
Why is this the most powerful question you can ask when attempting to reach an agreement with another human being or organization?
A thread, co-written by @deanmbrody:
Next level tactic when closing a sale, candidate, or investment:
— Erik Torenberg (@eriktorenberg) February 27, 2018
Ask: \u201cWhat needs to be true for you to be all in?\u201d
You'll usually get an explicit answer that you might not get otherwise. It also holds them accountable once the thing they need becomes true.
2/ First, “X” could be lots of things. Examples: What would need to be true for you to
- “Feel it's in our best interest for me to be CMO"
- “Feel that we’re in a good place as a company”
- “Feel that we’re on the same page”
- “Feel that we both got what we wanted from this deal
3/ Normally, we aren’t that direct. Example from startup/VC land:
Founders leave VC meetings thinking that every VC will invest, but they rarely do.
Worse over, the founders don’t know what they need to do in order to be fundable.
4/ So why should you ask the magic Q?
To get clarity.
You want to know where you stand, and what it takes to get what you want in a way that also gets them what they want.
It also holds them (mentally) accountable once the thing they need becomes true.
5/ Staying in the context of soliciting investors, the question is “what would need to be true for you to want to invest (or partner with us on this journey, etc)?”
Multiple responses to this question are likely to deliver a positive result.