Profile cover photo
Profile photo
Marcin Koziński
I'm happy
I'm happy
About
Posts

Post has attachment
Add a comment...

Post has attachment
I'm in the top 1% of readers on +Pocket! See the best of what I've read in 2014 
Add a comment...

Post has attachment

Post has shared content

Post has shared content
“We might take a card swipe for granted, but getting every detail right takes extreme care. You have to make the swipe feel satisfying; you have to make it read accurately enough that it works the first time, every time.”

http://www.wired.com/design/2013/12/the-new-square-reader-a-look-at-how-gadget-guts-are-designed/#slideid-362751
Animated Photo
Add a comment...

Post has shared content
Imagine if every time you swiped a credit card and it didn't work for whatever reason, the money was just lost. I think you would get angry pretty quick. I certainly would.

So why are we accepting applications where user input is dropped on the floor when there's a network problem. Drastic analogy with the money? Maybe. But when you type a paragraph or two into a tiny little phone, press send, and see "Request failed" with your hard-thought words abandoned I bet you get pretty angry.

I'm looking at you every Reddit app ever...

I don't care how you do it. I don't care what library you use. User input is gold. Treat it as such.

Square has Tape. Path has a priority job queue. The support library has AtomicFile. The OS has SharedPreferences and sqlite. Do it on the main thread for all I care. Just persist the damn data somewhere.

The state of affairs is so absolutely terrible that I actually don't even care if you persist it. Just pop the original dialog or text field with my data still in tact so that I can retry. Sure you look like a mediocre app, but at least you're not an abysmal app that hates its users. At this point, I'm happy to do your job and retry the request myself.

Publicly shame apps that discard user input.
Add a comment...

Post has shared content
The fruit of our two months of hard work is now live! Yay! Mirror 1.1!!!

All 1.0 features are now free, custom views, action bar preview and tons of bug fixes and minor features.

Also check out our brand new website and the new video. Hope you like them. Happy hacking!
Add a comment...

Post has shared content
I am excited about Andy Rubin's next project.  His last big bet, Android, started off as a crazy idea that ended up putting a supercomputer in hundreds of millions of pockets.  It is still very early days for this, but I can't wait to see the progress.
Add a comment...

Post has shared content
How to explain the role of Android Design Guidelines to developers

The Android design guidelines is the superclass of your app design. Don't use multiple inheritance. That'll just make things messy.

When thinking about overriding methods only override the parts you need to override. Don't do that just because you don't know how to use the superclass method override only if the superclass method doesn't fit your purpose. The superclass method is created and tested by people who thought that part through very carefully so it's most likely better than what the replacement would be (at least in circumstances you didn't even think of).

Feel free to add functionality on top of what you get from the superclass. But don't do this if the same functionality is already available (see overriding). Adding functionality to the superclass, when done right, is innovation.
Add a comment...
Wait while more posts are being loaded