Under the hood: Rebuilding Facebook for iOS
facebook.com
facebook.com
You could have the image decompressor look up every millisecond or so to see if there are any UI events to process, but that leads to the sort of spaghetti code that multithreading/multitasking was built to address.
Who here thinks that Facebook should have stayed with HTML 5?
It could be that they could never get true native speed without writing it natively. However, in my experience their HTML version was so awful that I suspect a lot of it was from bad decisions on how to use HTML5. That may be the problem though: that it takes deep knowledge to know how to leverage it correctly and speedily.
I read the story on FB newsroom. I see that site is built on OLD asp.net webforms. Not even asp.net MVC. If their devs are constantly using the oldest of tech to create their site, it's no wonder their shit performs so badly.
Now I have no idea or backstory to why they choose these routes, they most probably simply didn't have any developers with enough experience or skill set to use newer better performing tech (I hear it's hard to find good developers).
Do you work on an HTML5 cross platform app everyday like FB engineers did? Guess what. That's when shit gets really tricky and hard.
That said, my greater concern isn't performance on HTML5, it's interface. iOS, Android and (particularly) Windows Phone have very defined UI metaphors and design styles that vary a lot- if you have to replicate all of them then it removes a great deal of the benefit of a cross-platform app.
The answer may be, weirdly, in C#, using MonoTouch and MonoDroid. You'll always have to tailor UI to each OS, but having an entirely consistent backend to that UI is an attractive option. I just haven't managed to convince myself to drop the cash on a license yet, though.
Still waiting for the Sparrow rebranded Gmail app for iOS
> While we’ll be working on new things at Google, we will continue to make Sparrow available and provide support for our users.
Maybe I was to brief on my reply, but... What I mean, was more of the know-how generated on Sparrow making its way in to Gmail app.
I still can't send messages with return, though, which is a huge pain in the ass.
That doesn't seem to be the case, I have no facebook account and I got in just fine.
Between blocks and NSOperationQueue this all feels pretty natural in iOS development. You're not explicitly managing thread creation, etc.
The blocks themselves don't, no, they're just anonymous functions.
I'd hope NSOperationQueue[0] and maybe GCD composes most of what they mean by "use background threads".
And as sandyarmstrong notes, using things like operation queues will still impact your performances more than separate threads, as the main thread's runloop will still have to go through them, stuff like that.
[0] Which can take a block if an NSOperation is too much overhead for the work, see addOperationWithBlock:
Were you not aware that Facebook is a PHP shop? Or are you just questioning its inclusion in the app's credits?
https://gist.github.com/3441055
Appirater AQGridView AutoHyperlinks Boost Chromium CocoaLumberjack CoreTextHyperlinkView EGODatabase EGOTableViewPullRefresh HPGrowingTextView jQuery JSONKit libphonenumber mosquitto OpenUDID PLCrashReporter protobuf QSUtilities Google Toolbox for the Mac Base64 library from PHP re2 SDWebImage UIImage+Alpha UIImage+Resize UIImage+RoundedCorner
They have a ton of repos on their github https://github.com/facebook
http://ycombinator.com/newsguidelines.html
It's also that link in the footer called "Guidelines". Read them.
Consider not.