-
-
To understand the relationship between views and layers, it helps to look at an example. Figure 1-1 shows the view architecture from the ViewTransitions sample application along with the relationship to the underlying Core Animation layers. The views in the application include a window (which is also a view), a generic
UIViewobject that acts as a container view, an image view, a toolbar for displaying controls, and a bar button item (which is not a view itself but which manages a view internally). (The actual ViewTransitions sample application includes an additional image view that is used to implement transitions. For simplicity, and because that view is usually hidden, it is not included in Figure 1-1.) Every view has a corresponding layer object that can be accessed from that view’slayerproperty. (Because a bar button item is not a view, you cannot access its layer directly.) Behind those layer objects are Core Animation rendering objects and ultimately the hardware buffers used to manage the actual bits on the screen. -
The use of Core Animation layer objects has important implications for performance. The actual drawing code of a view object is called as little as possible, and when the code is called, the results are cached by Core Animation and reused as much as possible later. Reusing already-rendered content eliminates the expensive drawing cycle usually needed to update views. Reuse of this content is especially important during animations, where the existing content can be manipulated. Such reuse is much less expensive than creating new content.
-
Each superview stores its subviews in an ordered array and the order in that array also affects the visibility of each subview. If two sibling subviews overlap each other, the one that was added last (or was moved to the end of the subview array) appears on top of the other.
-
Archive for August, 2011
My daily readings 08/31/2011
August 31, 2011My daily readings 08/29/2011
August 29, 2011-
Objective-C Automatic Reference Counting (ARC)
-
The validity of conversions between object pointer types is not checked at runtime.
-
or a class method, in which case it can be invoked on objects of the metaclass
-
-
Objective-C – Wikipedia, the free encyclopedia
-
-
Cox was intrigued by problems of true reusability in software design and programming. He realized that a language like Smalltalk would be invaluable in building development environments for system developers at ITT. However, he and Tom Love also recognized that backward compatibility with C was critically important in ITT’s telecom engineering milieu.
-
In 1988, NeXT licensed Objective-C from StepStone (the owner of the Objective-C trademark) and extended the GCC compiler to support Objective-C, and developed the AppKit and Foundation Kit libraries on which the NeXTstep user interface and interface builder were based. While the NeXT workstations failed to make a great impact in the marketplace, the tools were widely lauded in the industry. This led NeXT to drop hardware production and focus on software tools, selling NeXTstep (and OpenStep) as a platform for custom programming.
-
After acquiring NeXT in 1996, Apple Computer used OpenStep in its new operating system, Mac OS X. This included Objective-C and NeXT’s Objective-C based developer tool, Project Builder (which had been expanded and is now called Xcode), as well as its interface design tool, Interface Builder. Most of Apple’s present-day Cocoa API is based on OpenStep interface objects, and is the most significant Objective-C environment being used for active development.
-
Object-oriented programming in the Simula style allows multiple inheritances and faster execution by using compile-time binding whenever possible, but it does not support dynamic binding by default. It also forces all methods to have a corresponding implementation unless they are virtual, meaning the method is a placeholder for methods with the same name to be defined in objects derived from the base object.
-
Smalltalk-style programming allows messages to go unimplemented, with the method resolved to its implementation at runtime. For example, a message may be sent to a collection of objects, to which only some will be expected to respond, without fear of producing runtime errors. Message passing also does not require that an object be defined at compile time. (See the dynamic typing section below for more advantages of dynamic (late) binding.)
-
During the design of Objective-C, one of the main concerns was the maintainability of large code bases. Experience from the structured programming world had shown that one of the main ways to improve code was to break it down into smaller pieces. Objective-C borrowed and extended the concept of categories from Smalltalk implementations to help with this process
-
- This eliminates the fragile binary interface problem – Superclasses can change sizes without affecting binary compatibility.
- This allows instance variables that provide the backing for properties to be synthesized at runtime without them being declared in the class’ interface.
-
My daily readings 08/28/2011
August 28, 2011-
Amazon.com: Cocoa Design Patterns (9780321535023): Erik M. Buck, Donald A. Yacktman: Books
-
“This long-needed book is a great resource for Cocoa newcomers and veterans who want to get the why behind the what. The list of patterns gives historical perspective and answers many developer questions and the last three chapters–covering Core Data, AppKit, and Bindings–are a must-read; they reveal insights that might otherwise require hours of discussion with Apple engineers or access to source code.”
-
In most subjects we learn by acquiring a little bit of knowledge and, once that bit has been understood, we move on to the next little bit, until the bigger topic is understood. First we learn A then we learn B. Unfortunately, this method of learning does not work well with application frameworks such as Cocoa. These frameworks usually consist of a number of complex idea that are strongly interrelated.
-
Cocoa Design Patters, on the other hand, presents, in a very professional manner, the most important Cocoa patterns, in depth, and how they are all inter-related.
-
-
A Day In The Life of John Lasseter – YouTube
Editor taste
-
-
Someone has to be CEO and for the long term is Tim Cook really the best person for the job ? Steve Job is an irreplaceable part of Apple’s lore, but that does not stop Jony Ive from making his own major mark. He already has a rich history of designing great products. To understand Aarons point better you have to watch Steve Jobs interview, see: http://www.youtube.com/watch?v=mOgOP_aqqtg . There he says the only problem with Microsoft is that they have no taste. Steve recognize some questions it’s importance, he says having good taste is important for Apple. According to Steve having good taste is key to Apple’s culture and success, Steve Jobs said it. A company can have great financial success without good taste, Steve Jobs said that about Microsoft. But as Aaron mentioned in the article that is not how Apple works. Tim Cook is great at operations, perhaps he should have stayed COO. The interesting move would be to appoint Jonathan Ive’s as CEO. Of course to many that would seem unconventional and perhaps even risky. But that would be authentic Apple, that would be thinking different.
-
But most importantly, Jony Ive is such a good designer that he’s needed in that role without the distractions of the CEO role. Tim as CEO can still do the COO job plus whatever additional duties come from being CEO. That’s what he’s done for over a year now, off and on as Steve has taken leave.
-
It’s amazing to me how so many people outside Apple think Jony Ive could be a credible candidate for CEO, when no one inside Apple would believe that for a second. The only product-focused executive who would even have had a chance is Scott Forstall.
To the naive observer, Apple seems like a hardware company. But it is really a software company monetized through hardware sales, just as Google is a software company monetized through advertising. As Steve himself said, differentiation through software is the key to all of Apple’s products. Ive doesn’t have much experience, credibility or interest in this area.
On the other hand, Scott Forstall is the most powerful and credible software executive at Apple. More specifically: the Human Interface team that does all the HI design for iOS and Mac OS X reports to Forstall, not Ive. Ive isn’t even one of the executives present at executive HI reviews, whereas Forstall is the one driving the decisions when SJ is not there. The HI team may get less outside visibility than Industrial Design but they make a much bigger difference to the experience of Apple products.
Furthermore, it’s clear from watching company politics that Forstall has the ambition to go to the top (as does Phil Schiller), and Ive just doesn’t have that kind of drive. Ive has the trust and affection of Steve for being an artist, and that’s the main reason he is on the executive team. He hasn’t had to fight for it like the other execs. Note for example that Eddy Cue (iTunes, iCloud) and Craig Federighi (Mac OS X) still aren’t on the executive team, despite heading critical product lines and much bigger departments than ID.
-
Operational depts have a natural tendency to answer “that’s not possible” when challenged very hard, and to try and negotiate compromises. You don’t need the top guy to be the tastemaster, but you need his arbitrages to be heavily biased in favor of designers, not operatives.
-
Also, Tim Cook is gay (sorry but for me, that counts as an asset in the taste department). He’s a creative guy (you have to be) and he’s a uncompromising. You can’t work as hard as he does and achieve what he has behind the scenes without a kind of ruthlessness that sets a very high bar.
Tim’s experience as COO is exactly what makes him the best man to fill Steve’s shoes, if ruthless focus on design is what Apple needs. After all, Steve isn’t a designer. Steve doesn’t even, by all accounts, have a lot of natural taste. He’s acquired the taste over many years. What Steve has always had, and what Tim seems to have, is an uncompromisingly high bar.
-
-
How Apple Works (Aaron Swartz’s Raw Thought)
-
In the same way that Google is a company driven by engineering or Amazon is driven by operations, Apple is driven by taste. Here’s how Apple products are created: a team of designers decide exactly what a product should do and how it should look and feel, their work is ruthlessly edited by Steve until he approves, and then the entire rest of the company is given the task of moving mountains to make that dream real.
-
The only reason it works for Cook to be in charge while Steve is away is because Steve is still around, doing ruthless critiques of yet-to-be-invented products from his sickbed.
-
But within that group, there’s only one person who makes any sense as tastemaker-in-chief: Jony Ive.
-
But even if Ive never designed a piece of software in his life, it’d be beside the point. I can’t imagine Jobs has either. What’s needed atop Apple is not creative brilliance — they have a design department full of that — but editorial taste. Like the director of a film, Apple’s CEO needs to go through the thousands of creative ideas developed within Apple and decide which ones should be approved for production and which ones need to sent back for more work.
-
It’s impossible to imagine Apple functioning without this role. (Would Apple splinter and start developing all sorts of random unapproved products like Google under Eric Schmidt?) It’s impossible to imagine Tim Cook filling this role. (How can he be tastemaker for the whole company if he can’t even pull off a decent keynote?) And it’s impossible to imagine this role being anywhere but at the top of the org chart. (It’d be like crediting a film to the producer instead of the director.)
-
-
苹果工程师:乔布斯的重要性在于否决大部分创意_业界_科技时代_新浪网
-
目前他所在的芯片部门因为新产品的需要,必须在8月底之前完成自己的任务,自己每天工作10-12小时,且没有周末,他表示苹果公司的工作强度和硅谷大部分公司比起来都要大:“和苹果比起来,Sun(已被甲骨文收购)的工作环境就像天堂一样。”
-
“有人担心苹果之后无法在未来推出iPhone和iPad之外的新产品,我想说公司内部永远不缺乏新的创意,但乔布斯在位时他做的重要工作之一是否决大家想出的绝大部分创意,而使公司集中力量专注于其中两三个创意并将之变成现实。库克上任后,我怀疑他是否有能力来否决大部分点子,如果他不行,那我很想知道会由谁来做这个决定。”他说。
-
“一些人在这里工作两三年之后就会选择离开,我认为他们在这里学到的最重要的东西便是责任感。有些公司一个任务可以拖六个月,但在苹果如果你比预定时间晚一个星期你就完蛋了。”他说。
-
My daily readings 08/27/2011
August 27, 2011My daily readings 08/26/2011
August 26, 2011My daily readings 08/25/2011
August 25, 2011-
bbum’s weblog-o-mat » Blog Archive » Class Extensions Explained
-
Class extensions were designed to solve two problems. The first was to enable to compiler to better validate the private interfaces a class might have and the second was to solve a subtle, but gnarly, problem with properties (another feature added to Objective-C 2.0).
-
The declarations found within the class extension directly extend the declarations found in the class’s primary
@interface. In a limited context, the declarations in a class extension can override declarations found in the primary interface.
-
My daily readings 08/23/2011
August 23, 2011My daily readings 08/20/2011
August 20, 2011-
Coding Horror: Skill Disparities in Programming
-

-
test sticky note
-
-
Wouldn’t you expect a truck driver with twenty years of driving experience to perform better than a rookie with less than a year of road time under his belt? Of course you would. And shouldn’t a grizzled ten year veteran of dozens of software projects– like, say, myself– perform better than some punk kid directly out of college? Well, you might think so, but in the bizarro world of software development, that logic doesn’t apply:
-
My daily readings 08/19/2011
August 19, 2011-
Android厂商忧心:谷歌或效仿亚马逊低价卖硬件_通讯与电讯_科技时代_新浪网
-
对此张文慧分析道,谷歌会不会这样做,将直接取决于其它厂商的表现,如果其它Android厂商表现强劲,那么谷歌一定会继续对它们的支持,但是一旦三星、HTC被苹果打得一塌糊涂,不排除谷歌利用摩托罗拉“棋子”大幅降价以攻城略地。
-