Development:Summer of Code 2007:Tabspose:Proposal
Synopsis
I will add functionality and eye candy to Camino by implementing Tabosé. Tabosé will make it easier to switch between tabs and see all the sites you currently have open. At WWDC ’06 Bertrand Serlet, Vice President of Software Engineering at Apple stated that at first, software needed function, then ease of use, and now needs a “wow factor.” Tabosé will be the feature that adds the “wow factor” to Camino.
Project
I will initially need to gain a deeper understanding of how windows and tabs are handled in Camino. Essentially it would be implemented by having a view inside the main window that consisted of the tabs expanded out into smaller content views, much like IE7. This would be invoked by either a user pressing a button or a keystroke.
The effect could be something such as all the tabs expanding out into a grid in the current view. An example of this expansion can been seen in the SubEthaEdit and Adium when Tabs are dragged out of the window. However, ours would stay in the current bounds. This gives the user some visual feedback on to what is happening. Another good example of this is the slideshow feature in Finder. If you select a group of photos and select “Slideshow” then “Index Page”, you get a nice animation of objects sliding in and out from underneath one another. An affect as such could be used once a user selects an appropriate view. Core Animation would be a good tool to use for this, however for backwards compatibility this is not an option. So we would have to rely on something lower level like Core Graphics.
For the overall look and feel of the view I would make it cool, while still keeping it Mac-like. Some applications have features that cause eye candy result in a gaudy looking app. This feature would not be case, it would fit right in to the idea of having a Firefox that is Mac-like and HIG compliant wherever possible. I would have it look more like IE7’s tab view rather than foXpose’s view. I think the padding and a subtle drop shadow really distinguishes the different views. For example if you were to have a bunch of plain white pages open in the tabs, you would not be able to distinguish between them if they were flush up against one another. By having buffer zone around them allows you to see one page from another.
What’s in it for Camino?
* Makes users happy, can speed up productivity in switching tabs
* Helps Camino stand out from the rest
* Adds on the “Wow Factor”
Timeline
1. Get involved in Mozilla community and post ideas to current developers
2. Become more familiar with Camino architecture
3. Understand how windows and tabs are handled
4. Sketch out mockups and figure out what is most feasible
5. Start hacking away
6. Add smoke to Camino (just kidding)
7. Stay involved with Camino after GSoC
Biography
I am a 19 year old freshman at Northeastern University. I love programming for the Mac. Once I started using Objective-C and Cocoa, I knew I was hooked. The first application I developed was Corripio (which fetches album artwork, lyrics and song information from the web and adds it to your iTunes music). It has been mildly successful, appearing in Macworld, being featured on Apple.com’s Download section as well as a few other magazines and sites.
I am currently developing Quote Book, a free application for FreeMacWare.com that keeps track of quotations. I am nearing the end of development and hope to have it out in early April. Along with Quote Book I am also working on a small little app called HAL. HAL uses Apple’s speech synthesis and recognition framework to create a digital version of the HAL 9000 from 2001 : A Space Odyssey. Along with being able to talk to HAL you can actually see yourself in his camera/faceplate. I was able to leverage Quartz Composer and the users iSight to make it look like HAL was right in front of you. You can find early builds at http://nclasssoftware.com/build/macosx/.
All of my applications are free and open source. I strongly believe in the open source philosophy and really want to make a difference. I also have been looking to get involved in a open source project other than my own. My experience has mainly dealt with small applications; I really want to find out how large projects are managed and developed.
Over the past year I have been getting more involved in the Mac development community as a whole. This includes being a active member in the local Mac developer group Cocoa Heads that meets regularly at MIT. There I gain a wealth of knowledge from the the other talented members. Additionally, I attended Apple’s WWDC in 2006 and hope to attend in 2007 for my one week in geek heaven.