background preloader

Starters Guide to iOS Design

Starters Guide to iOS Design
As someone who does work on both the development and design side of iOS apps I find that many designers struggle with the transition to UI work, or with the different processes involved in iPhone and iPad app design. In this guide I'll describe the deliverables you'll be expected to produce, outline the constraints of the medium and introduce fundamental iOS and UI design concepts. The Medium Knowing your medium and its quirks is an important part of being a good designer. iOS devices come in two main form factors, the iPhone and the iPad[…] For simplicity I'll be leaving the iPod Touch range out. Retina Most recent iPhones and iPads are fitted with Retina screens, a high resolution screen intended to make pixels invisible. Pixels A pixel (px) is the smallest unit of measurement on a screen. It is not possible to have a line that is smaller than "1px" in width. Points We use points (pt) as a resolution independent measure. Over time you'll learn to think in points rather than pixels. Segues

Prodota FactoryGirl Tips and Tricks by Arjan van der Gaag FactoryGirl is an awesome fixture replacement library that gives you a lot of power and flexibility, at the cost of more code to maintain and increased mental overhead. It pays get to know it, so you can wield its flexibility to improve your tests and your productivity. Get the most out of FactoryGirl 1. Traits are reusable pieces of attribute definitions that you can mix and match into your factories. For example, say you have a Post and a Page object that both have a publication date. FactoryGirl.define do factory :post do title 'New post' factory :draft_post do published_at nil end factory :published_post do published_at Date.new(2012, 12, 3) end end factory :page do title 'New page' factory :draft_page do published_at nil end factory :published_page do published_at Date.new(2012, 12, 3) end end end FactoryGirl.create :draft_page FactoryGirl.create :published_post The repetition should be obvious. 2. Consider an example of a blog post with comments: 3. 4. 1. 2. 3. 4. Further reading

Text Shadow Generator | CSS3 Generator | CSS3Gen Use this CSS3 text shadow generator to easily add text shadow styles into your web project. Your browser does not support the CSS3 text-shadow property. You can still use this tool to generate the CSS3 rule, but you won' be able to see the results. <div class="error_msg">Please enable Javascript to use this page.</div> Text Shadow Explained The CSS3 text-shadow property is one of the most popular techniques of progressively enhancing the design of a website. The text-shadow property is really simple to use. It takes four values: the first value defines the distance of the shadow in the x (horizontal) direction, the second value sets the distance in the y (vertical) direction, the third value defines the blur of the shadow and the last value sets the colour. Supporting Browsers At the time of writing the following browsers support the CSS3 text-shadow property:

Ctags and Taglist: Convert Vim Editor to Beautiful Source Code Browser for Any Programming Language This article is part of the on-going Vi / Vim Tips and Tricks series. As a programmer or system administrator, you will be constantly browsing source codes and shell scripts. Following are some typical activities that you may perform while browsing a source code file: Navigating to the function definition by specifying the function name. Navigating to the function definition from ‘function call’. In this article, let us review how to perform the above activities efficiently in Vim editor using ctags and taglist plugin. I. Step 1: Installing ctags Package # apt-get install exuberant-ctags (or) # rpm -ivh ctags-5.5.4-1.i386.rpm warning: ctags-5.5.4-1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### [100%] 1:ctags ########################################### [100%] Step 2: Generating ctags on your source code Go to the directory where your source code is located. # cd ~/src # ctags *.c II. 4 Powerful Ctags Usages inside Vim Editor 1.

W E B & A P P S One Assertion Per Test Shift Your Paradigm!One Assertion Per Testby Dave AstelsFebruary 23, 2004 Summary For some time I've been thinking about how TDD tests can be as simple, as expressive, and as elegant as possible. This article explores a bit about what it's like to make tests as simple and decomposed as possible: aiming for a single assertion in each test. A while ago there was a bit of fuss on the testdrivendevelopment Yahoo group about the idea of limiting yourself to one assertion per test method, which is a guideline that others and I offer for TDD work. An address parser was the example of a situation where it was argued that multiple assertions per test made sense. The poster went on to say: My first inclination is/was to write a test like this: a = CreateObject("Address") a.GetAddressParts("ADDR1$ADDR2$CITY IL 60563$COUNTRY") AssertEquals("ADDR1", a.Addr1) AssertEquals("ADDR2", a.Addr2) AssertEquals("CITY IL 60563", a.CityStatePostalCd) AssertEquals("Country", a.Country) So, where to start? Squeak:

The Nature of Code Hello! By browsing the table of contents on your left, you can read the entire text of this book online for free, licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License. Start reading the introduction now! If you like this book, please consider supporting it via the links below: Please submit corrections to the book on my Nature of Code GitHub repo. Bug reports for the site and online purchasing system can be reported on GitHub as well. Thanks everyone! Copyright © 2012 by Daniel Shiffman This work is licensed under the Creative Commons Attribution-NonCommercial 3.0 Unported License. All of the book’s source code is licensed under the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This book was generated by the Magic Book Project. Editor Shannon Fry Illustrations Zannah Marsh Cover Design David Wilson Interior Design Web Site Design Steve Klise Evan Emolo Index

Mocks Aren't Stubs The term 'Mock Objects' has become a popular one to describe special case objects that mimic real objects for testing. Most language environments now have frameworks that make it easy to create mock objects. What's often not realized, however, is that mock objects are but one form of special case test object, one that enables a different style of testing. In this article I'll explain how mock objects work, how they encourage testing based on behavior verification, and how the community around them uses them to develop a different style of testing. I first came across the term "mock object" a few years ago in the XP community. Since then I've run into mock objects more and more. But as often as not I see mock objects described poorly. This difference is actually two separate differences. (In the earlier version of this essay I had realized there was a difference, but combined the two differences together. Regular Tests I'll begin by illustrating the two styles with a simple example.

My app design workflow Start low-fi I always start with a non-Retina, 1× document size. For an iPad app, it’s 1024×768. For an Android app, it’s a common device size, in mdpi or dp (density-independent pixels). For a Mac app, it’s often 1280×768 (a frankenstein combination of the 13-inch MacBook Pro resolution horizontally, and the 11-inch MacBook Air resolution vertically, ensuring the app will fit on the smallest current Mac displays). For an iPhone app, it’s 320×568, or one of the sizes below. There’s many reasons for starting like this. I don’t see my strategy changing any time soon, even though I own a Retina MacBook Pro (most of my design work is still done on a non-Retina Cinema Display though). 1×, 2× and 3× at the same time However, I’m not suggesting anyone should only work at the non-Retina size — the present and future is high DPI, and there’s a good chance you’ll care about the bigger assets more. There’s quite a few techniques that allow elements to appear crisp and nicely rendered for all sizes.

Related: