I started learning programming recently, and I wanted to be able to store snippets of code from the lessons and exercises to review and re-use them.
For “normal” notes, people tends to use Evernote, OneNote, or even Apple Notes. The problem is that those note taking applications won’t allow you to keep the code format. When pasting code, you will lose the code indentation and the language syntax color. This make the code difficult to read.
After doing some research, here are the two best apps I found to store code snippets.
Bear, the New Kid on the Block
Bear is a note taking app that was released last year. It’s currently available on Mac and iOS, and they’re working on a web application. This app received a good feedback from the community, and many bloggers even compared Bear to Evernote. There’s even an option to import all your notes from Evernote. While I don’t think it’s as rich in features as Evernote, I think Bear is well-designed, and focuses on the essential.
Formatting Your Notes
Regarding the formatting of your notes, you can either use the Markdown markups or the keyboard shortcuts. I’ve been using Markdown for a long time as I found it easy to rapidly formal text by just adding a find symbol around the text. You can add picture to your note with a simple drag and drop.
The part that interest us the most is the code formatting. You have two solutions here. You can either create an inline code (⌥⌘C) or a code block (^⌘C) which use the GitHub Markdown Dialect.
You just have to insert the “`” at the beginning and the end of the line. Note that the syntax won’t be highlighted.
You can create a block code by adding ““`“. By default, no syntax will be highlighted in the code.
You have to add an abbreviation to highlight the syntax. Currently, 15 languages are supported. Unfortunately, Ruby isn’t supported. I’m using the Python syntax instead. The same code as above but with the Python syntax highlight.
You can create code block everywhere in your notes, and it’s very easy to create. I’m actually using a TextExpander snippet to make thing even faster. I just type “,py” or“,sql” and it’s autogenerating the code block for me!
Organizing Your Notes with Tags
Both Evernote and OneNote use a system of notebook (folder) to manage your notes. So, you could have one notebook for coding, one for marketing… or even one per specific language.
Bear doesn’t provide this notebook system. Instead, you can use a tag system (like Evernote) to manage your notes. But you can easily mimic the notebook format by using sub tag.
For example, you can tag your notes with “#ruby“. But all the notes tag with Ruby will show up. While you can add several tags to a note, you can also use sub-tags. Hence, to create subcategories, you could use a tag “#ruby/array“. This would allow you to easily find notes related to array.
Unfortunately, there’s no autocomplete when writing tags. So, be careful with the spelling to not create duplicate.
Creating Tasks and Todo List
The todo is one another nice features of Bear. You can create a task just by highlighting a line, and clicking on ⌘T. You can also move the task wherever you want in your notes. While it won’t replace a task manager like Todoist, Wunderlist, Trello, etc., it can be convenient to have this in your notes.
One detail I really like is that by adding a todo in your notes, it will show a small progression line at the bottom of you notes to show.
Capturing New Ideas
Bear is blazing fast. To make the note taking even more efficient, you can assign keyboard shortcut to open Bear on the main screen, or directly on the new note. No need to click on opening the app, navigating in a certain folder to start writing.
One other way to capture new ideas is through your web browser. The developers of Bear provide a Chrome and Safari extension that will also to either capture the page title and URL of they page you are visiting, or their entire article (with pictures and link) without all the distractions.
Each note has its own link. You can link a note within another notes. You could also use a note as an index to link several notes.
This means that you could also use this note link, and add it into your task manager if you need reference for a certain task.
Last Words About Bear
This app is a freemium. You can use it for free, but you won’t be able to access all the features. Bear Pro will allow you to export your notes in Markdown, PDF, HTML, Word or RTF file, sync your notes between Mac and iOS devices (using iCloud), and choose other themes. The Pro version cost $15/year and can be subscribed directly through the App Store.
Quiver, the Programmer’s Notebook
Quiver is made for programmer. While less polished than Bear, Quiver might be more capable than the former. Let’s dive into Quiver’s features.
Note Formatting: Markdown, Latex, Code, Diagram
Quiver offers various format for the note formatting. As for Bear, you can use both Markdown markups and keyboard shortcuts for note formatting. You also have the options of using LateX and Diagram. You can use all these different format within a same note.
Quiver is definitely made for programmers. Here, you can use the syntax from 120 programming languages. You’ll find any languages for sure. To change block format within the notes, you’ll have to use several shortcuts. Quiver will display the line number like an IDE would do. Bear won’t display it.
The organization style of Quiver looks more like Evernote than Bear. You have the Inbox, the favorites, recents, notebooks, and tags. The organization is more rigid, but depending on your mind, you mind prefer this rather than just searching and organizing by tags.
As for Bear, you can also set up keyboard shortcuts to create new notes from anywhere. You have more option on the app windows display like the possibility to preview the Markdown while editing you notes. You can also easily change its appearance (CSS) and download Quiver themes. You can export your notes in Markdown, HTML, text, or JSON.
Quiver is definitely more programmer oriented than Bear. It’s also more robust, and offer more ways to organized your notes. You can sync your notes on the cloud service of your choice: Dropbox, iCloud, or Google Drive. It’s also possible to use Quiver for team collaboration.
You can purchase Quiver for Mac on the App Store for $9.99 (one time fee), and a free trial is available. An iOS app is under development, and you can signup for the beta here. For Android, you can get Quaver, an unofficial app working with Quiver here.
Both Bear and Quiver are really good. But they are very different. While I like all the features offer by Quiver, I don’t find it very appealing design wise. On the other hand, Bear is a multipurpose note taking app, but more appealing design wise. I actually wrote this post on Bear.
You can try both Bear and Quiver for free before purchasing them. So, try both, and see which one is a better match for you! By the way, I’m planning to create a video soon to highlight the main features of Bear and Quiver.
Keep in mind that they aren’t the only solution available. An open source app like Boostnote (Mac, Linux, Windows) might be enough for you.