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
1/ Creating content on Twitter can be difficult. A thread on the stack of tools I use to make my life easier
2/ Thread writing
Chirr app
Price: Free
What I like: has a nice blank space for drafting and a good auto-numbering feature
What I don't: have to copy and paste tweets into Twitter after thread is drafted and can't add pics
https://t.co/YlljnF5eNd
3/ Video editing
Kapwing
Price: Free
What I like: great at pulling vids from youtube/twitter and overlaying captions + different audio on them
What I don't: Can't edit content older than 2 days on the free plan
https://t.co/bREsREkCSJ
4/ Meme making
Imgflip
Price: Free
What I like: easiest way to caption existing meme formats, quickly
What I don't: limited fonts
https://t.co/sUj13VlPiO
5/ Inspiration
iPhone notes app
Price: Free
What I like: no frills & easily accessible. every thread i write starts as an idea in notes
What I don't: difficult to organize
2/ Thread writing
Chirr app
Price: Free
What I like: has a nice blank space for drafting and a good auto-numbering feature
What I don't: have to copy and paste tweets into Twitter after thread is drafted and can't add pics
https://t.co/YlljnF5eNd

3/ Video editing
Kapwing
Price: Free
What I like: great at pulling vids from youtube/twitter and overlaying captions + different audio on them
What I don't: Can't edit content older than 2 days on the free plan
https://t.co/bREsREkCSJ

4/ Meme making
Imgflip
Price: Free
What I like: easiest way to caption existing meme formats, quickly
What I don't: limited fonts
https://t.co/sUj13VlPiO

5/ Inspiration
iPhone notes app
Price: Free
What I like: no frills & easily accessible. every thread i write starts as an idea in notes
What I don't: difficult to organize

THREAD ALT-COMM 🔄
I suggest @manyver_se as TW + FB replacement! It has no server, hence no shutdown! Everything reside on your + friends phone/or PC. You do posts as in TW/FB or private DM.
Generate an ID. Then share invite-codes with friends. See> https://t.co/2OMw7e0bUB ++>
Once you installed the app you can start post threads as "public". For the moment they will be stored on your device. Once you have contacts, they will share that. Is like offline blogging! ++>>
The huge advantage; no server can shutdown your communication! Friends share your posts, so it's resilient if not always online. Is an "off-grid" optimal solution. Is a bit tedious to share "invite-codes" but it's worth. Check>
The most obvious way to CONNECT, is to invite each friend with his special [DHL] generated code. https://t.co/ayurByEtmV Can be shared via mail, or any other means. Use a secure mail like @TutanotaTeam or @ProtonMail ++>>
If some group leader wants, he can do a pub-server where only contacts reside. You must get here an invite-code to to access that server. On digital ocean we can employ one:
I suggest @manyver_se as TW + FB replacement! It has no server, hence no shutdown! Everything reside on your + friends phone/or PC. You do posts as in TW/FB or private DM.
Generate an ID. Then share invite-codes with friends. See> https://t.co/2OMw7e0bUB ++>
Once you installed the app you can start post threads as "public". For the moment they will be stored on your device. Once you have contacts, they will share that. Is like offline blogging! ++>>
The huge advantage; no server can shutdown your communication! Friends share your posts, so it's resilient if not always online. Is an "off-grid" optimal solution. Is a bit tedious to share "invite-codes" but it's worth. Check>
The most obvious way to CONNECT, is to invite each friend with his special [DHL] generated code. https://t.co/ayurByEtmV Can be shared via mail, or any other means. Use a secure mail like @TutanotaTeam or @ProtonMail ++>>
If some group leader wants, he can do a pub-server where only contacts reside. You must get here an invite-code to to access that server. On digital ocean we can employ one: