Categories
Reposts

Five simple steps to better typography

Five simple steps to better typography

Categories
Reposts

Choosing the Right Font: A Practical Guide to Typography on the Web

Choosing the Right Font: A Practical Guide to Typography on the Web

Categories
Articles

Walkthroughs and Tutorials

I personally think if something needs a walkthrough maybe its time to redesign the interaction. It generally means the app is over-designed, i.e. instead of solving the problem, we are trying to delight the user more. 

Ofcourse delighting the user is must, but it should come through better usability and interaction first, and then through UI. I feel by adding walkthrough we try to make user feel that its rocket science, when it really should not be.

Mailbox app gestures originated from app… Clear. Mailbox guys took it one step further. I loved the app at first look and kept it on my home screen but few weeks later, It was clearly failing to satisfy my needs as being ToDo app, I am back to default reminder app, and Clear app is not there on my iPhone anymore. Maybe being a developer, I was amazed with quality and process with which they executed the app, respect for that was the main reason for me to keep that app on home-screen. But it didn’t last long.

Categories
Reposts

Leave Them Weeping

Leave Them Weeping

Categories
Articles

Table

A table that I designed… Has a changeable textured cloth below the glass. Change it according to occasion!

Categories
Articles

Scratches, Dents and Design

Few days back, I had this awesome wallpaper on my iMac of Crysis 3 Hunter holding a gun, nicely made wallpaper with lot of thought given to detailing. Our graphic designer was passing by happen to see the wallpaper, He came towards the screen touched the screen where there were scratches on the gun, and admired the detailing…. “look at those scratches!”

The other day, I found my old iPod classic while cleaning a drawer, first ever Apple product I bought. It has a dent on the side. First thing I did was touching that dent and remembering how that dent was formed… It was nostalgic!

What do we see here, these dents and scratches are things that create negative feeling for an object but somehow they also generate positive emotions. There are numerous objects around us which are not perfect, faded old jeans with a impression near front pocket where we kept cellphones, favourite leather belt that gets better with the rough use, old tape recorder with aluminium body peeping out of the black paint through scratches. These all things generate emotions that certainly make us feel good if not happy all the time. We can identify our mobile device from similar looking other phones kept together. These imperfections make these mass produced products our personal product. Every dent has a story to tell!

Every object tells a story.

Henry Ford

We have objects in our house that are very old. As we keep using these objects, as we grow older, these objects grow older with wear and tear. They become a part of our lives. The nail-cutter we use at our home is actually older than me! I am proud of that nail cutter, I don’t keep it inside a drawer, I keep it on a table where people can see it. I tell this fact to every person who passes by it. I don’t even feel like buying a new ones that are available in market, specially designed with flowers graphics on it. Its old, doesn’t look very good but its been doing its job since very long time, It has become a part of our lives. Why do we feel great when we use or find our old stuff. We have a strong bonding with these things. It gets better with time as they grow older and older! This is the basic property which makes these objects very human. It makes non-living objects come alive. We exactly know each n every moment in this journey of that product, when it accidentally slipped of your hand and got a dent. These scratches and dents are like old photographs. They tell us a story same way as old photographs. It makes it our personal stuff as no one else knows how to read this story, with each dent and scratch it become more n more personal. It becomes an encrypted storybook full of pictures which only you can decode!

Emotional aspect is very important when you consider a design. Imagine two futuristic robots, one that never ages, and other one that grows older. Almost certainly everyone will say that the robot that ages and becomes older will generate considerable emotional response, that is the key aspect that makes a mass produced robot(futuristic!) a personal one. This is what makes every mass produced product more and more personal. One can argue that customisation will provide similar response in a design of a product. Customisations and Personalisations are very different processes. When you buy a car with some specific engine, colour etc. is a customisation and few people take this car and create an artwork on it, paint stripes, graphics, make it sound louder, tune its performance, this is what a personalisation is. Personalised products generate more emotional response than customised ones.

Every dent or scratch you have on your device tells a story, don’t curse it, you just have to try and read it for once.

Categories
Articles

Code to get total number of lines in project

Command to find out how many lines of code you wrote in a folder tree… Following example is for ObjC iOS projects.

find . -name "*.[h|m]" | xargs cat | wc -l
Categories
Articles

Coolest project that I worked on ever…

Everyone knows the application DrawSomething and the kind of quick success this application has seen is beyond imagination. This is the application where users can draw doodles and share with friends live. It is something very different and subtle the way you communicate with your friends live. There is human factor involved in this application. This is what i think is the key point of success. There are applications that allow you to create drawing on devices and also to share with your friends over various social networks. This just clears your table and puts a simple idea of sharing a drawing space live with friends. No hassle, no upload to server and sharing of links. Anyway you get my point!

Few events took place in last week, reminded me of my early work in around 2008 when I joined a technology company that used to focus on developing applications on handheld devices. There was no iPhone at that time. People were using ugly/sluggish windows mobile phones. The main key product for this company was a cross platform chatting application on mobile. If I am not wrong, this was the first company to introduce chatting on handheld devices. I was the very lucky one who got to work on this product. In around June 2008, I had completed almost one year working on this product and that is when an idea struck me. This product had ability to work as a platform that could allow developers to create applications (plug-ins) that can communicate over chatting network and allow users to play, share and create photos while chatting. This was a simple idea that allows developers to just ignore about how data will be communicated across devices and focus on making beautiful apps that would make use of this in-place network to share tasks.

My idea was that chatting could be considered as a simple plug-in that actually allows user to send and receive text messages. So we have a network that already does that, then why just limit ourselves on using simple text based communication? People were working on audio and video transfer using same network. Communicating does not only mean that you talk to other person, playing multiplayer game, drawing on a shared workspace etc. also are ways of communication.

I had created a proof of concept to support this fundamental idea. For almost for a month I was working on this idea, (Thanks to my TL and others who supported me while working on this RnD project). I decided to make a plug-in that would allow people chatting on any damn network to share a whiteboard for drawing live (as far as they were using same chatting application with same version plugin). I did not know if that was going to even work. After a month or so, lot of efforts on deciding a protocol of communication over IM networks, creating backend supporting engine to run plugins over the application, a time came when I was actually trying to make it run on two devices (windows mobile 5.0s), I drew a line on one device. I was looking at the other device to see something happening, I wasn’t even expecting to see line, just something on the screen to assume that something was working. I was looking at the screen, it seemed like a longest time span I had waited for something, everything moment I had spent during last one month ran through my mind like a movie. It wasn’t much time; just before 1 sec I saw something appearing on the other screen, I couldn’t believe it was the exact same line, with exact colours I chose on the other device. It was the sense of achievement I cant forget, it was the single best innovative project I worked on as a developer. Very soon it was completed I was able to draw whatever I wanted and share space, exactly the way DrawSomething app does!! (Now you get my point why I was talking about this app at the beginning of this!!)

Soon I created different plug-ins like, battleship, tic-tac-toe etc. I was happy, People were excited to see this kind of application running in reality. It was going to help third party developers create games for this chatting application. That was the main goal from business point of view. To get more visibility around the world and to allow users to play multiplayer games on handheld devices created by these third party developers. It was all going great and suddenly, the concept was killed by senior management (same management who were excited about this one).

Few days back while talking to my colleague who showed me DrawSomething application she was using, I was like “WOW” this is awesome, Finally the concept my company was hesitant to deliver was created by someone after 4 years! I am happy* its out there in the wild and people are loving it 🙂

* I have no relation with the creators of DrawSomething app. This is all there work what appears in the application. I have no intention of calling it my work. Also I don’t mean to be rude to company, whom I joined as a fresher, It was most creative period of my life. This all just needed to come out.

Categories
Articles

Appetizer

Another icon I am working on…

Categories
Articles

Stop abusing App Delegate

Stop abusing App Delegate

Categories
Articles

VCRequestHandler

VCRequestHandler

Categories
Articles

Words that changed my life… Stay hungry, Stay foolish.

This is the text of the commencement address by Steve Jobs, CEO of Apple Computer and of Pixar Animation Studios, delivered on June 12, 2005.

I am honored to be with you today at your commencement from one of the finest universities in the world. I never graduated from college. Truth to be told, this is the closest I’ve ever gotten to college graduation. Today I want to tell you three stories of my life. That’s it. No big deal, just three stories.

The first story is about connecting the dots

I dropped out of Reed College after the first six months, but then stayed around as a drop-in for another 18 months or so before I really quit. So why did I drop out?

It started before I was born. My biological mother was young, unwed college graduate student, and she decided to put me up for adoption. She felt very strongly that I should be adopted by college graduates, so everything was all set for me to be adopted at birth by a lawyer and his wife. Except that when I popped out they decided that they wanted a girl. So my parents, who were on a waiting list, got a call in the middle of the night asking: “We have an unexpected baby boy; do you want him?” They said: “of course.” My biological mother later found that my mother had never graduated from college and that my father had never graduate from high school. She refused to sign the final adoption papers. She only relented few months later when my parents promised that I would someday go to college. And 17 years later I did go to college. But I naively chose a college that was almost as expensive as Stanford, and all of my working-class parents’ savings were being spent on my college tuitions. After six months, I couldn’t see the value in it. I had no idea what I wanted to do with my life and no idea how college was going to help me figure it out. And here I was spending all of the money my parents had saved their entire life. So I decided to drop out and trust that it would all work out OK. It was pretty scary that time, but looking back it was one of the best decisions I ever made. The minute I dropped out I could stop talking the required classes that didn’t interest me, and begin dropping in on the once that looked interesting. It wasn’t all romantic. I didn’t have a dorm room, so I slept on the floor in friend’s rooms, I returned coke bottle for 5€ deposits to buy food with, and I would walk the 7 miles across town every Sunday night to get one good meal a week at the hare Krishna temple. I loved it. And much of what I stumbled into by following my curiosity and intuition turned out to be priceless later on. Let me give you one example:

Reed College at that time offered perhaps the best calligraphy instruction in the country. Throughout the campus every poster, every label on every drawer, was beautifully hand calligraphed. Because I had dropped out and didn’t have to take the normal classes, I decided to take a calligraphy class to learn how to do this. I learned about serif and san serif typefaces, about varying the amount of space between different letter combinations, about what makes great typography great. It was beautiful, historical, artistically subtle in a way that science can’t capture, and I found it fascinating.

None of this had even a hope of any practical application in my life. But 10 years later, when we designing the first Macintosh computer, it all came back to me. And we designed it all into the Mac. It was the first computer with beautiful typography. If I had never dropped in on that single course in college, the Mac would have never had multiple typefaces and proportionally spaced fonts. And since windows just copied Mac, it’s likely that no personal computer would have them. If I had never dropped out, I would have never dropped in on this calligraphy class, and personal computer might not have the wonderful typography that they do. Of course it was impossible to connect the dots looking forward when I was in college. But it was very, very clear looking backwards 10 years later.

Again, you can’t connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something- your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life.

My second story is about love and loss

I was lucky-I found what I loved to do early in life. Woz and I started Apple in my parent’s garage when I was 20. We worked hard, and in 10 years Apple had grown from just two of us in garage into a $2 billion company with over 4,000 employees. We had just released our finest creation-the Macintosh-a year earlier, and I had just turned 30. And then I got fired. How can you get fired from company you started? Well, as Apple grew we hired someone who I thought was very talented to run company with me, and for the first year or so things went well. But then our vision of the future began to diverge and eventually we had falling out. When we did, our Board of Directors sided with him. So at 30 I was out. And very publicly out. What had been the focus of my entire adult life was gone, and it was devastating.

I really didn’t know what to do for a few months. I felt that I had let the previous generation of entrepreneurs down-that I had dropped the baton as it was being passed to me. I met with David Packard and Bob Noyce and tried to apologize for screwing up so badly. I was a very public failure, and I even thought about running away from the valley. But something slowly began to down on me-I still loved what I did. The turn of events at Apple had not changed that one bit. I had been rejected, but I was still in love. And I decided to start over.

I didn’t see it then, but it turned out that getting fired from Apple was the best thing that could have ever happened to me. The heaviness of being successful was replaced by the lightness of being a beginner again, less sure about everything. It freed me to enter one of the most creative periods of my life.

During the next 5 years, I started a company named NeXT, another company named Pixar, fell in love with an amazing woman who would become my wife. Pixar went on to create the world’s first computer animated feature film, Toy Story, and is now the most successful animation studio in the world. In a remarkable turn of events, Apple bought NeXT, I returned to Apple, and the technology we developed at NeXT is at the heart of Apple’s current renaissance. And Laurene and I have a wonderful family together.

I’m pretty sure none of this would have happened if I hadn’t been fired from Apple. It awful tasted medicine, but I guess the patient needed it. Sometimes life hits you in the head with a brick. Don’t lose faith. I’m convinced that the only thing that kept me going was that I loved what I did. You’ve got to find what you love. And that is true for your work as it is your lovers. Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart. You will know when you find it. And, like any great relationship, it just gets better and better as the years roll on. So keep looking until you find it. Don’t settle.

My third story is about death

When I was 17. I read a quote that went something like: “if you live each day as if it was your last, someday you’ll most certainly be right.” It made an impression on me, and since then, for the past 33 years. I have looked in the mirror every morning and asked myself: “if today were last day of my life, would I want to do what I am about to do today?” and whenever the answer has been “No” for too many days in a row. I know I need to change something.

Remembering that ill be dead soon is the most important tool I’ve ever encountered to help me make the big choices in life. Because almost everything all external expectations, all pride, all fear of embarrassment or failure-these things just fall away in the face of death, leaving only what is truly important. Remembering you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart.

About a year ago I was diagnosed with cancer. I had scan in the 7.30 in the morning. And it clearly showed a tumor on my pancreas. I didn’t even know what a pancreas was. The doctors told me this was almost certainly a type of cancer that is incurable, and I should expect to live no longer than three to six months. My doctor advised me to go home and get my affaires in order, which is doctor’s code for prepare to die. It means try to tell your kids everything you thought you’d have next 10 years to tell them in just a few months. It means to make sure everything is buttoned up so that it will be as easy as possible for your family. It means to say your goodbyes.

I lived with that diagnosis all day. Later that evening I had biopsy. Where they stuck an endoscope down my throat, through my stomach and into my intestine, put a needle into my pancreas and got few cells from the tumor. I was sedated, but my wife, who was there, told me that when they viewed cells under a microscope the doctor started crying because it turned out to be a very curable with surgery. I had the surgery and I’m fine now.

This was closest I’ve been to facing death, and I hope it’s the closest I get for few more decades. Having lived through it, I can now say this to you with a bit more certainly than when death was a useful but purely intellectual concept.

No one wants to die. Even people who want to go to heaven don’t want to die to get there. And yet death is the destination we all share. No one has ever escaped it. And that is as it should be, because Death is very likely the single best invention of life. It is life’s change agent. It clears out the old to make way for new. Right now the new is you, but someday not too long from now, you will gradually become old and be cleared away. Sorry to be so dramatic, but it is quite true.

Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma-which is living with the results of other people’s thinking. Don’t let the noise of other’s opinions down out your own inner voice. And most important, have the courage to follow your heart and intuitions. They somehow already know what you truly want to become. Everything else is secondary.

When I was young, there was an amazing publication called The Whole Earth Catalog, which was one of the bibles of my generation. It was created by a fellow named Stevert Brand not far from here in Menlo Park, and brought it to life with his poetic touch. This was in the late 1960s, before personal computers and desktop publishing, so it was all made with typewriters, scissors, and Polaroid cameras. It was sort of like Google in paperback form, 35 years before Google came along: it was idealistic, and overwhelming with neat tools and great notions.

Stewart and his team put out several issues of The Whole Earth Catalog, and then when it had run its course, they put out final issue. It was the mid 1970s, and I was your age. On the back cover of their final issue was a photograph of an early morning country road, the kind you might find yourself hitchhiking on if you were so adventurous. Because it were the words: “Stay hungry, Stay foolish.” It was their farewell message as they signed off. And I have always wished that for myself. And now, as you graduate to begin anew, I wish that for you.

Stay hungry, Stay foolish.

Thank you all very much.

Thank you Steve.

Categories
Articles

Improve performance while using shadow/glow using layers

Whenever using layers to add shadow, add rounded corners, show border or anything, just remember to set “shouldRasterize” property of a layer object to YES, default value is NO.

self.layer.shouldRasterize = YES;

This is what header file says about “shouldRasterize” property.

When true, the layer is rendered as a bitmap in its local coordinate space (“rasterized”), then the bitmap is composited into the destination (with the minificationFilter and magnificationFilter properties of the layer applied if the bitmap needs scaling). Rasterization occurs after the layer’s filters and shadow effects are applied, but before the opacity modulation. As an implementation detail the rendering engine may attempt to cache and reuse the bitmap from one frame to the next. (Whether it does or not will have no affect on the rendered output.)

Categories
Articles

resourceURL equivalent before iOS 4

[[NSBundle mainBundle] resourceURL]

is same as

[NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]

I need to use it a lot while making local html pages to show in UIWebView. Just to remember. 🙂

Categories
Articles

Call iOS method for HTML button click

We can use custom urls for this purpose, Lets say we want to add a button1 into HTML page and we want to call “-didTapButton1” when user taps on button1.

We should have following code into HTML page that we are loading into UIWebView,

<a href="didTap://button1"><img src="button1.jpg" /></a>

Now next what we need to do is add methods from UIWebViewDelegate (To call this method the method owner needs to be the delegate for the UIWebView used),

- (BOOL)webView:(UIWebView*)aWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString *absoluteUrl = [[request URL] absoluteString];
    if ([absoluteUrl isEqualToString:@"didTap://button1"]) {
        [self didTapButton1];
        return NO;
    }
    return YES;
}

And it is done!!!

Categories
Articles

Why Service Providers should not get into retail app market

Gone are the days when individual developers or small companies used to make mobile apps, no one was really interested into mobile app system. And it all changed with iPhone App Store. People started thinking seriously about mobile apps as a business.

Still when iPhone App Store was just released very few developers and small companies were into the serious app making business. Small companies got good stardom, users and money making opportunity with it. Whats good about these indi developers and small organizations that they did not get stardom by selling apps, they got that stardom by selling those ideas that no other developers got or dared to implement. I remember when it had just started, apps like iBeer captured market very quickly and is still one of the most downloaded apps on mobiles. This lead to a huge wave of such mobile apps, but those were just replicas of what these guys implemented and copied apps just do not have that taste and originality. These few developers really did love what they did.

Now with that kind of tide in the mobile app market its not surprising that big shot service provider companies entered the platform, It wasn’t possible for these B-dudes to just ignore this kind of business opportunity. So most of the service based companies entered the field which was created by many indi developers with their creativity and love for the platform. Now this is where the problem lies.

Most Service Based Companies (SBC) Have No Taste

Service based companies provide services to the clients which actually wants to make mobile apps. Now these service based companies have brain for writing the code for the application. Clients have content to share. What about the taste and idea? SBCs have tight schedule for each app, so thinking out of the box is strictly prohibited at places like these and clients have no clue about standards and technical information required to make these apps. SBCs have designers, developers, they have all that needs to convert the app from “working app” to “gorgeous app”, but that conversion doesn’t really take place. Basically people who don’t know, want to make apps and people who know don’t really care about that.

It Doesn’t Help Developers Improve Skill Sets

Clients want their content to reach as many number of customers as it can. They do not care about the app, their primary concern is not the app but the content. So developers are forced to use older and outdated SDK version and support it.

eg. Still many SBCs keep the lowest deployment version as iOS 3.0, right now we have iOS 4.3.1 in the market.

As they are asked by client to do this ( clients too get scared of not reaching customers due to this), SBCs do not really have any say in this thing, or they don’t really care. So using new SDKs is again not advised because then the app would have the higher base version. This is not good for developers who work in these SBCs. They don’t really get to work on newest wonders added to the fresh versions of SDKs.

eg. NSRegularExpression from iOS 4.0 is not used, instead old third party code for regular expressions is added happily to the code (which btw has few potential leaks in the code).

No Happy Users and Harm to Platform

As a result of this, users like us don’t get to see apps which are truly amazing, which does more than just providing content, which makes users feel delightful. People want to see that added value into the apps, they want to see something new everyday(legitimate way), If they don’t see that extra thing into the apps for long time, Its the time when people start thinking about different platforms. This is really harmful for the whole platform.

People and developers working in these big shot companies should think about this. Apple WWDC contains very interesting session where presenter talks about how to go about app development, how to decide which app falls into which category, say Entertainment, Utility, Serious apps, this session also mentions the points that need to be consider while making different kind of applications. Consider that as a real challenge, making the app delightful while keeping it restricted to HIG provided.

Categories
Articles

Twitter should implement dialog based posting

I added this subject to the blog long time ago..some feb or something, I was gonna write a module that does the job but now…i dont think its required anymore ( this made me sad though :(, i didn get time to write that code ) since iOS5 has nice and beautiful tweet poster inbuilt into the OS. Its a delight!! ( Anyways i can write that code still! )

Categories
Articles

Read XML attributes in libxml SAX parser

Adding following lines in startElementSAXFunc method, and we can use attributes string keys and values as following.

for (int i = 0; i < nb_attributes; i++) {
    NSString *key = [[NSString alloc] initWithCString:(char*)attributes[0] 
                                             encoding:NSUTF8StringEncoding];
    NSString *value = [[NSString alloc] initWithCString:(char*)attributes[3] 
                                                 length:attributes[4] - attributes[3]]; 

    NSLog(@"%@ = %@", key, value);

    [key release];
    [value release];

    attributes += 5;
}
Categories
Articles

My latest work as a designer…

Categories
Articles

mundu IM Pro launched…

I was just too busy working on some cool iOS apps past few days. Adding some new UI tweaks, performance and other improvements to existing mundu IM Pro app.

And finally we have sent update to the apple, Should get approved in few days. ( mundu IM has never got rejected in the past. 🙂 )

http://twitter.com/#!/davinc/status/25094282717167616

For more info about “mundu IM Pro” on iPhone, please visit, http://itunes.apple.com/in/app/mundu-im-pro/id407228604?mt=8 or follow @munduIM

Follow @munduIM for free promo codes.