background preloader

iPad Application Design » Matt Legend Gemmell

iPad Application Design » Matt Legend Gemmell
I held a 6-hour workshop at NSConference in both the UK and USA recently, focusing on software design and user experience. Predictably, an extremely popular topic was the iPad, and how to approach the design of iPad applications. I gave a 90-minute presentation on the subject to start each workshop, and I want to share some of my observations here. Please note: this is about the user interface conventions and considerations which apply to creating software for the iPad platform (and touch-screen tablet devices in general). It is not a technical discussion of iPad-related APIs (which remain under NDA at time of writing in early March 2010). As I watched the iPad introduction keynote, there was one thing above all which struck me: That’s iWork (Keynote, Pages and Numbers) for iPad. It’s not just a big iPhone The iPad may be a larger version of the iPhone in terms of the hardware and operating system, but treating it as the same device would be foolish. The Missing Link Master-Detail Two Hands

MacRuby, changing the Ruby ecosystem | Merbist What’s MacRuby? MacRuby is an Apple-sponsored, open source, full Ruby implementation on top of Objective-C runtime. In other words, whatever code runs on Ruby 1.9, should/will run on MacRuby. Yes, you read correctly, MacRuby can/will be able to run all your Ruby code. That means that eventually you will even be able to run your Rails/Sinatra/new-sexy-ruby-framework app on MacRuby. Unlike RubyCocoa, MacRuby is not a bridge, it is a full implementation of the Ruby language on top of Apple’s Objective-C runtime. On top of that, you have full access to the Obj-C API from your Ruby code. However, note that even though, the Cocoa support is almost complete and stable, MacRuby is still in development, especially on the Ruby side of things. What is it not? MacRuby is not a fork of Ruby. What’s coming up? The current version of MacRuby (today being the 27th of May 2009) is version 0.4. What this basically means is that you will be able to compile your Ruby code down to binary code.

Building a Company with Customer Data – Why Metrics Are Not Enou Gathering real-world feedback from customers is a core concept of Customer Development as well as the Lean Startup. But what information to collect? Only 57 QuestionsYesterday I got an email from an ex-student lamenting that only 2% of their selected early testers responded to their on-line survey. The survey has 57 questions, the last three of which are open ended, and should take about 20 minutes to complete. If it wasn’t so sad it would be funny. Continual Data FlowCustomer Development suggests that founders have continual and timely customer, channel and market information. Founders need three views of information to truly understand what is going on: First-hand knowledgeA “birds-eye” viewThe view from the eyes of customers and competitors First-hand knowledgeFirst-hand knowledge is “getting outside the building” and talking to potential or actual customers. Of course you need to collect metrics, do A/B testing and run online surveys. Think of this technique as playing chess.

Introducing HTTPRiot - Easily Consume REST Resources on the iPhone and OS X If you’ve ever tried to do networking with Foundation you know that wrestling with NSURLConnection and NSURLRequest can be painful. Thankfully, we’ve seen a few third party tools step up to alleviate some of this pain. I want to introduce you to a couple of those tools and show you what I’ve been working on as well. UPDATED: Fixed the permission issue on the download link The current crop of tools There are some excellent HTTP libraries available for the iPhone and OS X. ASIHTTPRequest ASIHTTPRequest is a highly flexible lower level tool (relative to HTTPRiot & ObjectiveResource). The tradeoff for ASIHTTPRequest is that it can’t automatically convert XML and JSON. ObjectiveResource If you’ve ever used ActiveResource with Rails you’ll probably be familiar with ObjectiveResource’s style. The tradeoff of ObjectiveResource is that it doesn’t handle XML and JSON that’s not produced by Rails well. One final thought about ObjectiveResource—there are a lot of methods added to NSObject . HTTPRiot

Find a Pattern Before Scaling Up Your Sales Team - ReadWriteStar The problem with hiring an arsenal of top sales and marketing executives when you don't have a proven customer model is that you're likely to burn through all that funding you worked so hard to get. Steve Blank's latest post entitled, It Must Be a Marketing Problem is a cautionary tale about a company that continued to scale up without knowing the needs of their customers. Customer Development at Startup2Startup View more presentations from steve blank. Blank describes being called into a company for "a marketing problem" only to find that neither the company's marketing department nor sales team had left the building to find out the needs of consumers. He writes, "Missing the sales numbers had nothing to do with marketing...Neither the CEO, VP of Sales or VP of Marketing had any idea what a repeatable sales model would look like before they scaled the sales force." For a more complete look at Blank's model for customer development check out this article.

Cocoa Is My Girlfriend > Cocoa Tutorial: Windows OOP vs Cocoa MVC Encapsulate everything! Right? Or not. I was watching the Cocoa developers email list today and saw a post asking for help getting two views to communicate between one another. In Windows, more specifically C# .NET, you would create a new window by adding a Windows Form object that you could then edit with the designer adding various controls pretty easily. Disclaimer I admit up front that there is more than one way to do this. I created a demo application in Visual Studio 2008 to see how this might work. Multi-View Communication Windows Take a look at the source code for the main window (view) here: Notice that I’ve declared a Panel object. Ok, so the code is fairly easy to understand, but it demonstrates my point that the MVC model is now broken. So, you may ask, how can I do MVC in C#? The Objective-C/Cocoa Way In Objective-C, you must explicitly create a controller that will handle the updates between the model and view. Some Sample Code Multiple View Communication App Ok. Conclusion

The Value of Design to Startups Design and marketing are way more important than engineering for consumer Internet companies, argues angel investor Dave McClure Over the past five years I've consulted with and/or invested in about 50 startups. I've gotten to know a lot of entrepreneurs and a fair number of the venture capital and angel investors who are backing these companies, most of which are in the consumer Internet field. Design and marketing aren't just as important as engineering: They are way more important. It's actually pretty easy to write a Web-friendly app or Web site these days. 2. OAuth Sign-in Controllers for iOS and Mac OS X Applications By Greg Robbins, Software Engineer (Editor's note: Long-time readers know we sometimes publish posts aimed at programmers, and this is one of those. If you're not a software developer, don't worry. Our usual non-technical stuff will return.) It’s rare today for any software to live in isolation. And often, applications want to connect to data in your Google Account. The fundamental problem is that giving your username and password to a program hands it access to all of your data. For example, if you want to use the new SuperAwesomeEditor application to trim your YouTube videos, the editing program can use OAuth to ask YouTube for permission to edit your videos, and then YouTube will ask you to verify your identify. OAuth offers another big advantage: it gives the data provider flexibility in how it authenticates you. Unfortunately, the rose of OAuth comes with thorns. To encourage adoption of OAuth by Mac and iOS apps, we have released the Google Toolbox for Mac OAuth Controllers.

Corpus Adamicum - BDD-style testing using Objective-C As we’ve grown our mobile practice at Pivotal we’ve tried to apply to it the same principles and disciplines that have made our Rails practice successful. Often the one that we have the most difficulty translating is testing. In my experience the testing tools for Objective-C in particular are significantly wanting; there are some out there, but they’re hard to find, often hard to use, and occasionally defective in frustrating ways. One of the things I found I miss most in testing Objective-C, Java, or C++, is the hierarchical structure for organizing tests that frameworks like RSpec or Jasmine provide. I find nested describes indispensable for managing orthogonal aspects of the classes under test, for handling preconditions, for eliminating redundant setup code, and for generally keeping my sanity. So, I wrote Cedar, a BDD-style framework for writing tests in Objective-C. A minimal spec in Cedar looks like this: A few things to note: Cedar has no matchers, other than the fail() method.

unlock iPhone 4 4S 5
by smyross Mar 20

Related: