Category: Design (page 1 of 3)

Apple Park Design

The Wall Street Journal: “A section of workspace in the circular, Norman Foster–designed building is finally move-in-ready: sliding-glass doors on the soundproof offices, a giant European white oak collaboration table, adjustable-height desks, and floors with aluminum-covered hinged panels, hiding cables and wires, and brushed-steel grating for air diffusion.”

Like so many people I couldn’t wait to see the inside of the new Apple Park building. From the outside it’s absolutely amazing. But the inside appears to be stark, cold. Of course this is my opinion and I haven’t actually been inside the building, which could change my mind because experiencing something for yourself can make a world of difference.

I hope you like white, stark, and cold?

I happen to have some recent experience moving into new digs. Agrian just completed construction on our new building and we moved in a couple months ago. By contrast our building is inviting, not stark. It has a design I’ve never experienced and I love it. Our building is basically split down the middle by common space. The main entrance is in the middle of the building, which is a rectangle, not a circle. That main entrance opens to a long hallway which ends in The Hub. It’s the heart of the building. It’s a reconfigurable space with a great kitchen on one side. The wall opposite the kitchen holds giant monitors stitched together. Yes you could play games on it, watch your favorite TV show, or whatever! It’s a great feature. Most of the time The Hub is configured with tables and booths so we have a place to eat together.

“Desks in the open-plan workspaces can be raised to standing level at the push of a button.”

Open workspaces? Ack.

Another feature of the new Apple Park space I’m not a fan of is open workspaces. I’ve worked at companies with open spaces and private offices, I prefer private offices. That allows me to make the space mine. The new Agrian building has a great layout, with private offices, fully adjustable desks, and big displays. Perfect.

I really need to take some pictures and share them. Another design choice I appreciate in our space is the use of texture throughout.

The only picture I’ve taken is of our exposed Server Room. It’s super easy for a server room to become messy. An exposed server room is a great way to embarrass folks into keeping it clean.

Our new server room. Nice and clean.

I’ve found over the years my environment affects my mood. I’d love to see Apple Park in person. It may be absolutely perfect, but from the article it doesn’t look like a place I’d fall in love with.

Does anyone else think it’s strange a design focused company like Apple didn’t locate in the middle of a city? I am. I don’t know why, but I am. Their new space is beautiful but was entirely too small for the company before it left the architects office. It only houses 12,000 people. For some reason I think Tony Stark when I think Apple. The Stark building in the Avengers seems Apple-like to me —with the exception of the big Stark lettering and it should be in San Francisco, not New York.

I could see the Apple logo in place of the Stark name.

I wonder if they’ll have tours at Apple Park? I’d like to check it out and see if my opinion changes.

Passion Project: Mixing C++, Objective-C++, and Swift

I know a lot of folks have had to go through the process of bridging to C++ so you can use it from Objective-C or Swift. In my case I’m using it from Swift, so I thought I’d share what the middle Objective-C++ layer looks like. If you’ve done any Objective-C it will look like straight Objective-C, until you look a little closer. That’s when you’ll notice a C++ namespace, new, and delete statement. This code is a straight passthrough to the underlying C++ code — it’s here so Swift code can communicate with the C++ code.

Here’s the code that bridges to our Creatinine Clearance calculation.

You’ll notice a class called PKMConvert that has a class method called genderFromPKMGender. I created a set of mirror enums. One on the iOS side the enums use NS_ENUM syntax, on the C++ side they’re straight C style enums, so this code converts between the two. It’s just a simple mapping.

Another thing you’ll notice is I’m still using “old” C++ syntax to create and destroy objects. I’ve been thinking about updating the syntax to C++11 so I’d use unique_ptr instead. We’ll see if that happens. It’s not a big deal.

Something I’ve been mulling over is releasing the entire PKMath C++ Library as an open source project once I have it working for iOS/Mac, Android, and Windows. I don’t know that it would be overly useful for anyone, but there you go.

Since I haven’t actually written any Swift code in the new RxCalc to use the Objective-C++ code I thought I’d share one of my unit tests for the Creatinine Clearance example above.

Here’s how the different layers look from 30,000 feet. I like pictures, don’t you?rxcalc2layers

Adobe’s Comet

Adobe Creative Cloud Blog: “Over the years, we’ve learned a lot about what you need and have created tools so you can deliver your best design work. As technology has changed, so has the way that you approach your work. Instead of one screen, you now have to think about multiple screens and how the experiences you’re creating relate to each other.”

This looks like an awesome new entry in the Adobe Creative Cloud Suite. I’m sure many designers would like the ability to create a design, hook it up, and demonstrate it in the correct context of the device.

The video below focuses on a mobile application and how a designer may use Comet to quickly try new transitions between views. It looks like a real winner.

Adobe has a great track record of providing cross platform tools. I wonder if Comet will run on Windows and Mac, or have they made a clean break and focused on one platform?

Six Colors Redesign

Six Colors 6C logoSix Colors: “Anyway, the goal of the design—other than, perhaps, to better reflect the site’s name—was to differentiate between the different kinds of posts we have on this site. There are regular posts, sure, but we found ourselves also posting off-site links, links to work we’ve written on other sites, links to podcasts, and posts from sponsors. Now those are all more clearly defined, and I think the site’s better for it.”

Absolutely beautiful. I love the treatment given to different post types.

Teehan+Lax+Facebook?

Teehan+Lax: “Ultimately, the things we would get to do at Facebook, the people we would get to work with, the problems we get to solve were too compelling to say no to.”

While I’m not a fan of Facebook I can’t blame anyone for “selling out” to them, but this deal is strange. Basically the Teehan+Lax principals just shuttered their company so they could go to work for Facebook.

In a nutshell “the people we get to work with” at Facebook are better than the people we hired and work with every day, so we’re just going to move to Menlo Park and enjoy the good life.

That, of course, is a bit harsh, but it sure reads like that’s what went down, doesn’t it?

From one of their employees, on Twitter.

Also, why wouldn’t Facebook offer everyone a position, or at least give them the opportunity to take a position in California? It all seems very slimy.

The one thing I learned while freelancing, people will try to get you to do work for nothing. Facebook obviously pulled off quite a coup, without having to purchase an entire company to get what they wanted.

It also sounds like they had reached an inflection point. They obviously didn’t like dealing with the day-to-day garbage (who can blame them) and they wanted to do the interesting stuff. Can’t fault them there.

In the end the Teehan+Lax partners did what was best for them. I just feel bad for the 40 folks left standing in the cold of a Toronto winter wondering what just happened, and what do they do next?

Mr. Fredricksen

Mr. Fredricksen, by Taylor Fahrni

iOS 7 Lowers the Bar

iOS 7

A gift for you!If you’re an iPhone or iPad user Apple had a shiny new gift for you this week; iOS 7. I know, I know, it’s a bit of a jolt. I won’t lie. I hated it for a few days, but it’s beginning to grow on me. I’ve heard this time and again “Give it a few days.” I’ve given it a few days and it still seems a bit stark, but overall I’m happy with it. My trusty iPhone 4 seems much faster than it did with iOS 6. Bonus.

Benefit to Developers

I’ve written a few iOS apps over the last few years. Some have been lovingly designed by professional designers, others, like our own RxCalc were kept intentionally simple. Why? Truth be told Jay and I don’t possess the ability to make beautiful imagery for our app, so the design has to be simple. We developed our app using plain old UIKit, it works really well, is fast, and the binary is tiny.

With iOS 7 the bar has been lowered. A generic looking application looked fresh when iOS hit the streets. There were developers that created their own style and look, and, in turn, third party developers began to define the look of the OS, not Apple. Think about developers like Iconfactory, Tapbots, and Path. They all introduced applications that took the look and feel of applications way beyond standard UIKit, and that’s great. They stood on the shoulders of giants and moved the bar higher so the rest of the app ecosystem had something to reach for.

Third party developers created Pull to Refresh, the Hamburger and the Basement, and alternatives to UITabBar. All were very good innovations and gave us beautiful, very functional, applications. But there is a downside.

If you go against the Apple playbook, which isn’t a bad thing, you may end up creating something that doesn’t feel at home on a future release of an OS. Since iOS 7 shipped I’ve seen numerous folks comment about how outdated forward thinking and innovative applications like Tweetbot look.

I’m sure we’ll see an update for Tweetbot soon, but the point is, if your app has a completely custom UI it may take a lot of time and effort to make it look right in iOS 7.

Back to RxCalc and our choice to use UIKit, without custom design elements. Here’s how RxCalc looks on iOS 6 and prior, and it looks this what on iOS 7 before being recompiled:

RxCalc, UIKit for iOS 6 and older.

It’s not flashy, but it looks similar to Apple’s own Settings app, or Mail, on iOS 6.

Making an app new again

If you created a simple UIKit application your road to iOS 7 is simple. Most of the hard work has been done. You can recompile and your application looks new again.

Here’s what RxCalc looks likes when it’s recompiled with the iOS 7 SDK. No additional work, just a simple rebuild.

RxCalc, UIKit for iOS 6 and older.

Can it be spruced up a bet? Sure it can, but I can put this in the store today and it will look like it belongs.

That’s why I tweeted this a few days back:

It is super easy to get a fresh UI if you stuck to generic UIKit.

Reset

The bar has been reset, time for a new generation of user interface innovation.

Thanks, Apple.

Facebook to buy Dropbox

That’s right, I’m calling it. Facebook will acquire Dropbox in the very near future. How do I know this? History is on my side.

Designer Tim Van Damme has a unique superpower. His companies are acquired by Facebook. He was with Gowalla when they were acquired by Facebook, so he left for Instagram. Not long after Van Damme arrived at Instagram, that’s right, you guessed it, they were acquired by Facebook.

The first thing I thought yesterday when I read Mr. Van Damme was leaving Instagram for Dropbox? “I wonder when Facebook will acquire them?”

Has anyone set the line?

Twitter Display Guidelines

A wonderful boquet of flowers.In the wake of the new Twitter 1.1 API changes announcement I thought I’d focus my attention on the Twitter Developer Display Guidelines so I can understand the changes I’ll see to my favorite Twitter client; Twitterrific.

The guidelines will make our Twitter experience more consistent, boy howdy. Basically every Twitter client will look pretty much the same or it won’t be allowed to use the Twitter API, and a client that can’t use the API is useless.

Please note, if you’re using a Twitter provided client, these rules don’t apply, so you have nothing to worry about.

How do the various clients display Tweets in the Timeline? See the Timelines section in Display Guidelines.

Twitterrific

Twitterrific is my favorite client because it’s darned simple, great UX and UI design. Twitterrific is unique amongst the three clients we’ll examine because it shows a reply icon in every tweet. Note the arrow in the lower right corner of the image. Tapping on that icon will display a menu of choices that includes Reply, Direct Message, Retweet, and Retweet with Comment. Not even Twitter’s native iOS client provides this functionality.

Twitterrific: What needs fixing?

I use the term fixing loosely. Here is a list of the rules Twitterrific breaks, according to the Display Guidelines.

  1. Tweet Author
    • The user’s name and @username should be displayed on one line, with the name first.
  2. Retweets
    • If the Tweet being displayed is a Retweet, the name of the user who Retweeted it and the Retweet icon must be displayed under the Tweet text. e.g. “Retweeted by Josh Brewer”. The name should link to the the Retweeting user’s profile [1].

The @username doesn’t appear in the tweet and the retweeted by text doesn’t show below the tweet. It’s not seen here, but the retweet text displays to the right of the users name. One of the great things about Twitterrific is how it displays tweets in different colors depending on the context of the tweet. I’m not sure how Twitter will feel about that, but the guideline doesn’t call it out.

That’s not so bad, but it does mean Iconfactory will need to fix some things.

Tweetbot

Tweetbot: What needs fixing?

  1. Tweet Author
    • The user’s name and @username should be displayed on one line, with the name first.
    • The avatar must be positioned to the left of the name, @username, and Tweet text.
  2. Timestamps
    • Tweet timestamp should be displayed in the top right corner.
  3. Retweets
    • If the Tweet being displayed is a Retweet, the name of the user who Retweeted it and the Retweet icon must be displayed under the Tweet text. e.g. “Retweeted by Josh Brewer”. The name should link to the the Retweeting user’s profile [1].

Tapbots has a bit of work. In most cases the users avatar is displayed in the proper position, unless its your tweet, then it’s on the right. That’s an easy fix for them. Once that is fixed the timestamp will move to the proper position in the upper right corner. The Retweets item is interesting. The rule states it should display the name of the user who retweeted it. Tweetbot does that, sort of. If the retweet was by you it displays “Retweeted by You”, which doesn’t fit the rule to the letter.

Twitter

Twitter: What needs fixing?

  1. Retweets
    • If the Tweet being displayed is a Retweet, the name of the user who Retweeted it and the Retweet icon must be displayed under the Tweet text. e.g. “Retweeted by Josh Brewer”. The name should link to the the Retweeting user’s profile [1].

Not surprisingly Twitter does the best job of following the rules, but they do break this one. In the Twitter iOS client a retweet icon is display in the upper right hand corner of the tweet and the user’s name isn’t displayed.

Random Note

In the Individual Tweet section under the Branding bullet point this is listed.

The Twitter logo or Follow button for the Tweet author must always be displayed in the top right corner.

Emphasis on the word Tweet is mine. Twitter didn’t coin the term “Tweet”, the fine folks at Iconfactory did.

EOL

What He Said

Dave Winer: “Working with computers isn’t conducive to a whirlwind approach. You really can’t do writing, design or development work inbetween crazy-busy-life tasks. Computers don’t lend themselves to that kind of thought. You often don’t find the problem till you have a chance to quietly and dispassionately go through the situation, asking all kinds of questions along the way. It’s been observed many times that the problem often turns out to be something dumb that you overlooked. That’s exactly the kind of thing you can’t see when you’re whirling around. “

When it comes to coding I tend to stare at the screen for a long time before writing a line of code. Often I create experiments and throw them away before doing the real version. It’s not always like that, I usually do that when I’m trying something new, but work like that takes uninterrupted time.

I think Dave really nailed it.

Older posts

© 2017 Rob Fahrni

Theme by Anders NorenUp ↑