April 10, 2012

PNG Compressor 1.1

An update 1.1 is available for downloading in the Mac App Store. Special thanks to the people who helped me with beta testing.

After analyzing all user feedback from the last release, I did my best to meet all possible requirements. There are quite a lot of new features, so I'm going to review some of them.

Compression Queue

Last version included only one compression tool embedded. OptiPNG is a great console utility, but its compression method could work not very good for particular PNG images. So you reasonably asked to include optional tools. Unfortunately, some of the best utilities use GPL license. In other words, it is hard to deal with embedding these tools into the commercial app.

So I decided to provide ability to build your own list of compression tools, be it pngcrush, advpng or any other binary that can be executed in Terminal. Everything you need to make your own decent PNG compressor is in Preferences. Open the Queue tab to configure any number of terminal apps in any preferred way.

By default, there is only one “standard” executable optipng. Click the Add button to append another binary and configure its command line arguments. You can duplicate and reorder items to play with compression results until you find the best combination. I know it's a bit geeky, but we get unlimited options and total control on compression workflow.

Automatic compression

When you work on a project, it may contain graphics that you have to compress all the time. Drag and drop is easy but may become annoying. Version 1.1 provides a better way to deal with this. In the Advanced preference pane, you can choose a folder that should be tracked by PNG Compressor. Once this feature is enabled, all new PNG images that appear in that chosen folder will be compressed automatically.

Select ~/Desktop/ if you often take snapshots auto-stored on the Desktop. The app will watch for new images and handle them immediately. Later, you can select any other directory while you work with it or reset selection to disable any folder tracking.

Silent compression

Drag and drop experience is very important. When you drag an image into the Dock icon, PNG Compressor will display its user interface and start compression automatically. However, you may prefer to not see any progress windows while dealing with something else.

Now there is an option to disable auto-popup. Just drag your pic into the Dock icon and continue working in the recent app. Moreover, there is another option: the app can clear completed images automatically. Now we all set to make compression unobtrusive.

Thanks for your support!

I know there are many competitor apps that wrap console tools for image compression. Most of them are free. So I much appreciate your support of PNG Compressor. Its popularity driven by your amazing feedback surprised me to say at least. I hope the new version will make your workflow even faster and your apps even lighter.

DOWNLOAD PNG COMPRESSOR

April 7, 2012

CodeBox 1.6

Hey guys, there is a new update of CodeBox available in the Mac App Store. Here is a brief overview of new features and one more thing.

Minimalistic View

This update brings support for displaying snippets in the table view as a list of plain items. Now it is much easier to manage snippets if you have hundreds of them. Check out the General preference pane.

External Editor

Previously CodeBox used a system default editor for each file type. However, it may be more convenient to edit snippets and source files in different apps. So, now CodeBox will remember which external editor you used last time.

Improved Tooltips

CodeBar always had an annoying drawback: it could cut snippet titles by ellipsis in the end. To make such long titles accessible, I improved tooltips for menu items. In addition, they include information about assets and notes.


CodeBox 2

I believe it's time to announce that the new version of CodeBox is already in development. An upcoming OS X Mountain Lion, new APIs and requirements i.e. Sandboxing push my app forward. Thanks to your amazing feedback and suggestions, I am sure CodeBox 2 will be the best app I have ever worked on.

If you enjoy CodeBox and want to take a participation in beta testing, please fill in the form. Thanks!

SIGN UP FOR CODEBOX 2

March 15, 2012

CodeBox 1.5

I'm happy to announce that the new version of CodeBox is available for downloading. It brings some great features that you have requested recently together with minor improvements and bug fixes. Here is a brief overview of what is new.

Search through Code

You were able to filter and search only through snippet names and tags. Now you can search snippets and assets through code and notes. This feature is available in a just released update 1.5.1.

Better OS X Lion integration

You could experience issues with Autosave and Versions previously. This update should fix all this stuff. In addition, a library window gets support for the Full Screen mode.

“Paste” button in the Edit Code panel

CodeBar supports very useful feature named Edit Code. You can edit placeholders before copying code into the Clipboard. With this new version, there is no more need to copy code manually. Now you can click the Paste button to insert code right into the active application automatically.

Social code sharing

It was one of the most requested features. In the new update, you are two clicks or one keyboard shortcut away from sharing snippets to Gist and Snipplr. Please check out the menu commands under “Library ▸ Share”.

Newcomers, meet CodeBox

If you use another snippet manager or plugin, it's really easy to get started with CodeBox. Go to the “File ▸ New Library From” submenu. I added support for importing snippets from the most popular apps. Please let me know if you miss some app.

Edit tags in many snippets

You might miss an option to assign the same tag to the multiple snippet selection. Now you can do this by dragging selected snippets into any tag in the Tags view.

Links in the Notes field

Since version 1.5, You can drag a file from Finder into the Asset Notes field to make a clickable link to that file or folder. If the file path contains spaces, they should be escaped i.e. “/Users/dev/Desktop/MyProject”.

Other improvements

Finally, the update brings other little improvements and fixes many small issues. In addition, there are some new advanced options. Take a look at the updated Hidden Preferences.


I hope you will enjoy new features. Thanks a lot for your bug reports and feature requests. Be sure, all suggestions are carefully sorted, analyzed and considered for the future development. iCloud sync and iOS version are on their way, stay tuned guys!

DOWNLOAD CODEBOX

July 5, 2011

Cocoa Popup window in the Status bar

My CodeBox app for Mac OS X has got an embedded helper app named CodeBar. It is a small utility resided in the system status bar. In this blog post, I'm going to share an open-source project demonstrating how to implement a custom status icon with a popup window. I hope it will be useful for those who are new to Cocoa and want to make their own utility living in the status bar.

First, we have to allocate a new NSStatusItem to place it into the menu bar. This task is managed by the controller class named MenubarController. To make status item more flexible, we use a custom StatusItemView to display its contents in the menu bar. The demo project provides the simplest implementation that draws a Star icon in that view. You can have even more advanced icon by adding handling of drag & drop or any other feature supported by regular views.

Next, we need a customized window to display it as a popover. In the demo project, this window is a panel managed by the PanelController class. It loads the panel component from NIB and manages its live cycle. Also, it configures popover appearance by removing title bar and standard window background.

Finally, once we have menu bar icon and popover, it is time to connect them. The top level controller class ApplicationDelegate is watching for clicks in the menu bar and passes them to the panel controller. Then, after panel controller is closed, application delegate asks menu bar icon to remove a blue highlight.

Popup project on GitHub has got all source files that you need to build a demo app in Xcode 4.

P. S. In Lion, Apple is adding a new class for popovers like in iOS. So, after OS X 10.7 is released, you would better to rely on native Cocoa classes where it is possible. In other cases, the Popup project should still be usable.

June 7, 2011

CodeBox 1.4

What a day! Keynote by Apple was so exciting. And this is only beginning of the magical WWDC week! I'm 2x happy because of Apple Review Team approved version 1.4 right during the Keynote. I cannot believe these guys were working while Steve was announcing iOS 5 and iCloud. Bravo Apple! So, what's new in CodeBox?

Drag snippets between libraries

There is no more need to copy code and attributes one-by-one to transfer snippets between different CodeBox libraries. Now you can copy and paste or drag and drop whole Snippets, Groups, Folders and Smart Groups between libraries. This makes code snippet management extremely easy.

Export to Finder

CodeBox 1.3 brought support for adding files and folders from Finder. CodeBox 1.4 continues Finder integration and adds support for dragging whole folders, groups and snippets into Finder. For example, you can drop the complete project template including subfolders and all nested files. Neat?

CodeBar Text Expander

If you are an advanced Mac user, you must have heard about text expanding tools like TextExpander. According to your feedback, CodeBox really missed text expanding feature. So why not have it at hand? Adding abbreviations is easy: just write some letters before the asset name and attach them using a symbol @.

Say, you have an asset.txt with your email signature. Click the Asset tab and edit its name by adding the shortcut like here: SIGN@asset.txt. Next, save the library and switch to another Mac application. Type ‘SIGN’, and CodeBar should automatically replace it with contents of the ‘asset.txt’.

Add to CodeBox

The new service named Add to CodeBox allows you to select a piece of text from any application and create a new snippet with this text. Please, do not forget that you can define a custom Keyboard Shortcut to call the service in System Preferences.

Also, you can bookmark the link Add to CodeBox to create new snippets right from your browser. The workflow is as follows: install that link into the Bookmark bar, then select a piece of text on a webpage and click the Add to CodeBox bookmarklet. CodeBox will create the new snippet containing current selection.

CodeBar Keyboard Modifiers

In addition to revamped user interface, new CodeBar added support for custom Keyboard modifiers. Before, you had only one option, Command-Click, to insert selected snippet immediately. However, many of you wanted other options like Copy and Edit Code.

Here we go! In CodeBox 1.4, you are free to configure any command as you wish. For instance, Command-Click to Insert Code, Option-Click to Copy, Shift-Click to Edit code and placeholders.

Thanks for using CodeBox

I think this is the best release of CodeBox ever, and I hope you will like and use it as much as I do. As always, I want to thank you for reporting bugs and issues, suggesting new features and leaving reviews in the Mac App Store. Go get an update guys!

P. S.

Tips and Tricks for CodeBox updated on the Hidden Preferences page.

May 16, 2011

PNG Compressor 1.0

After using console tools like OptiPNG and PNGCrush for a while, I decided to write a native application for Mac OS X to rule them all. This is how my new app was born.

Last week I launched PNG Compressor. This is a GUI client for compressing PNG images. Now you do not need to launch Terminal every time you want to shrink pictures in PNG format. Instead, you just drag & drop files or folders from Finder directly into the Dock icon. Simple and easy!

Using PNG Compressor, you can optimize website graphics for faster loading. Or you can compress image files to save the bandwidth and hosting costs. Developers can use this utility to shrink bitmaps in the Mac and iPhone application bundles. And all of this can be done in the sexy user interface without any clatter.

I would like to thank all the people who supported PNG Compressor and downloaded it from the Mac App Store. As usually, any feedback and suggestions are highly appreciated. I'm carefully listening to all your emails and comments. The next update will bring support for additional engines like AdvPNG and PNGOut. Please stay tuned!

It seems like PNG Compressor has been warmly accepted by designers and coders. These days I constantly meet really cool tweets and reviews all over the web: i.e. Mac Stories, Mac Generation, Mac Magazine, Pplware. Thank you very much guys! This really matters and inspires me :)

April 22, 2011

Preferences Windows in Cocoa

The most of applications in Mac OS X have the Preferences window. Unfortunately, there is no component like NSPreferencePane in the AppKit. Instead, we want to use NSToolbar with custom delegate and selectable items.

Cocoa community has made some great implementations of Preferences window. Probably, the most popular are SS_PrefsController by Matt Legend Gemmell and Selectable Toolbar by Brandon Walkin. It's interesting that Matt's solution is extremely powerful and more advanced: i.e. you can create and build preference panes as separate Xcode projects. While Brandon's component is all-in-one and easy to use: you do not need to read any documentation to get started with it.

I had used these components for development until I went into iPhone development. In CocoaTouch you must use UIViewController class everywhere, and soon or later it becomes your best friend. After returning back to Cocoa on Desktop I realized that I really miss “standard” view controllers, so I started looking for new Preferences implementation. The main criteria was using NSViewController class for preference panes.

Google did not offer anything interesting, but I found great research of Preferences windows by James Huddleston. After reading that brilliant article, I decided to develop my own component meeting two requirements. First, it should be based on modern NSWindowController and NSViewController classes. Second, it should load preference panes lazily.

After some iterations, I developed components that I use for Preferences windows in CodeBox and Hunting. Here I would like to share what I have. Maybe this code will be helpful to somebody. Please find the Demo project at GitHub:

I'm sorry for the lack of any documentation at the moment. Please consider this code as work in-progress.

About Us

Our Software:

CodeBox

The best Code Snippet Manager in the Mac App Store

PNG Compressor

Native Mac app for lossless PNG compression

Hunting

The menu bar app for tracking events, topics, products and people in Twitter

Translator Free

Google Translate client for Mac OS X located in the menu bar