<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Kapeli Blog]]></title>
  <link href="https://blog.kapeli.com/atom.xml" rel="self"/>
  <link href="https://blog.kapeli.com/"/>
  <updated>2017-05-24T19:51:06+03:00</updated>
  <id>https://blog.kapeli.com/</id>
  <author>
    <name><![CDATA[Bogdan Popescu]]></name>
    <email><![CDATA[support@kapeli.com]]></email>
  </author>

  
  <entry>
    <title type="html"><![CDATA[Dash for iOS: Back on the App Store]]></title>
    <link href="https://blog.kapeli.com/dash-for-ios-back-on-the-app-store/"/>
    <updated>2017-05-24T18:56:00+03:00</updated>
    <id>https://blog.kapeli.com/dash-for-ios-back-on-the-app-store</id>
    <content type="html"><![CDATA[<p>TL;DR: Dash for iOS is <a href="https://itunes.apple.com/us/app/dash-offline-api-docs/id1239167694"><strong>back on the App Store</strong></a> and it&rsquo;s <strong>completely free</strong>.</p>

<p>Ever since I&rsquo;ve <a href="https://github.com/Kapeli/Dash-iOS">open-sourced</a> Dash for iOS there have been a lot of requests for Dash to get back on the App Store, as the process to install it from source isn&rsquo;t exactly user-friendly.</p>

<p><a href="https://blog.kapeli.com/100-days-without-the-app-store#ios">Quite a few</a> &ldquo;developers&rdquo; have even added it to the App Store themselves, violating the GNU GPL license in the process. Apple has been very responsive in removing these apps, but the developers kept adding it back in different shapes and forms and I got tired to fill the same copyright claim forms over and over.</p>

<p>I&rsquo;ve made a personal developer account which Apple accepted and the review for Dash for iOS went through without any issues. I hope this will somewhat stave off the pirated copies of Dash from appearing on the App Store. We&rsquo;ll see.</p>

<p>The macOS version of Dash will continue to be sold exclusively on <a href="https://kapeli.com/dash">kapeli.com</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash 4: Now Available!]]></title>
    <link href="https://blog.kapeli.com/dash-4/"/>
    <updated>2017-02-20T18:31:00+02:00</updated>
    <id>https://blog.kapeli.com/dash-4</id>
    <content type="html"><![CDATA[<p><strong>TL;DR:</strong> <a class="dynamic_download" href="https://kapeli.com/downloads/v4/Dash.zip">Download Dash 4 for macOS</a> and try it out!</p>

<p>Dash 4 is the latest and greatest Dash release. It incorporates the most popular feature requests in a new streamlined interface. Enjoy!</p>

<p>Dash 4 is a paid upgrade ($14.99) for existing Dash users. To upgrade, <a class="dynamic_download" href="https://kapeli.com/downloads/v4/Dash.zip">download Dash 4</a> and add your Dash 2 or Dash 3 license in Preferences > Purchase and you&rsquo;ll be prompted to upgrade.</p>

<p>Anyone that has purchased Dash after the 1st of December 2016 gets to upgrade for free.</p>

<h1>What&rsquo;s New</h1>

<br>


<ul>
<li><strong>New Interface</strong> &ndash; Clean, modern, with a focus on what matters most: the docs</li>
<li><strong>New Dark Mode</strong> &ndash; Night owls, rejoice! The entire Dash interface can now be turned dark</li>
<li><strong>Web Searches</strong> &ndash; You can now add/edit fallback web searches (e.g. Google or Stack Overflow) in Preferences</li>
<li><strong>Docset Playgrounds</strong> &ndash; Most docsets now show &ldquo;Play&rdquo; buttons which let you quickly test snippets of code</li>
<li><strong>Search Using Selected Text</strong> &ndash; This feature has been completely remade and is now more reliable, even in apps that don&rsquo;t support system services. Set a hotkey for it in Preferences > General</li>
<li><strong>Tab Improvements</strong> &ndash; You can now reopen the last closed tab, duplicate tabs and close all tabs except for the selected one</li>
</ul>


<p>Lots of other improvements:</p>

<ul>
<li>You can now easily manage docsets directly from the docset browser, using drag and drop, right click and/or the add button</li>
<li>You can now manage bookmarks from the top menu bar</li>
<li>Searching in Preferences > Downloads is now synchronised across all docset sources</li>
<li>You can now copy the external URL of documentation pages for easier sharing</li>
<li>The Add button in Preferences > Docsets now offers the option to download docsets</li>
<li>Installing a docset will now also add it to your currently active search profile (Note: can be disabled in Preferences > Docsets > Settings)</li>
<li>You can now manage the default profile settings from the search profiles popover</li>
<li>Dash&rsquo;s web browser is now a bit smarter</li>
</ul>


<h1>Download Dash 4</h1>

<p>Dash 4 is a paid upgrade ($14.99), but it&rsquo;s <a class="dynamic_download" href="https://kapeli.com/downloads/v4/Dash.zip">free to download and try out</a>. If you encounter any issues or need any help, <a href="https://kapeli.com/contact">contact me</a>.</p>

<script>
    beginsWith = function(needle, haystack) {
        return (haystack.substr(0, needle.length) == needle);
    }
    function latencyTest(url) {
        return $.ajax({
            url: "//"+url+".kapeli.com/feeds/latencyTest_v2.txt",
            cache: false,
            success: function(content){
                if(beginsWith("Just a latency test. Move along.", content))
                {
                    var links = document.getElementsByClassName("dynamic_download");
                    for(var j = 0; j < links.length; j++)
                    {
                        var link = links[j];
                        if(link.getAttribute("href") == "https://kapeli.com/downloads/v4/Dash.zip")
                        {
                            link.href = "//"+url+".kapeli.com/downloads/v4/Dash.zip";
                            for(var i = 0; i < window.loadingFeeds.length; i++)
                            {
                                window.loadingFeeds[i].abort();
                            }
                        }
                    }
                }
            }
        });
    }
    window.onload = function(e){
        window.loadingFeeds = [];
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('london');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('frankfurt');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('newyork');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('sanfrancisco');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('tokyo');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('sydney');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('singapore');
    };
</script>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[100 Days Without the App Store]]></title>
    <link href="https://blog.kapeli.com/100-days-without-the-app-store/"/>
    <updated>2017-01-12T14:56:00+02:00</updated>
    <id>https://blog.kapeli.com/100-days-without-the-app-store</id>
    <content type="html"><![CDATA[<p>A lot of users have expressed concerns about the future of <a href="https://kapeli.com/dash">Dash</a> after Apple removed it from the App Store. This post is meant to give some insight into how Dash is doing exactly, as well as some interesting tidbits.</p>

<h1>Revenue in 2016</h1>

<p style="text-align:center;"><img class="borderless optimize-contrast" src="https://blog.kapeli.com/images/revenue.png"></p>

<p>All of Dash&rsquo;s App Store revenue has migrated to direct sales, with a slight increase.</p>

<p>The downhill from Q1 to Q3 is due to saturation of the Dash 3 paid upgrade. I haven&rsquo;t had any sales or promotions for the entirety of 2016.</p>

<p><a href="https://kapeli.com/dash_ios">Dash for iOS</a> was never a significant part of my revenue and like most iOS apps it was never sustainable. I should have open-sourced it a long time ago, as it now brings in more revenue by promoting Dash for macOS.</p>

<h1>Users</h1>

<p style="text-align:center;"><img class="borderless optimize-contrast" src="https://blog.kapeli.com/images/users.png" width="577"></p>

<p>Most of the App Store users of Dash 3 have <a href="https://kapeli.com/app_store_migrate">migrated their license</a> to the direct version. I was able to use the in-app notification mechanism I had to let them know about what&rsquo;s going on so that they don&rsquo;t get cut off from the app they paid for.</p>

<p>Unfortunately I have no data on what happened to the App Store users of Dash 2 and I have no way of notifying them.</p>

<h1>Interesting Tidbits</h1>

<br/><a name="ios"></a>


<ul>
<li>Dash for iOS returned to the App Store just a few days after I open-sourced it, thanks to <a href="https://itunes.apple.com/us/app/dash-kapeli-free/id1176522123?mt=8">He Tiancong</a> and <a href="https://itunes.apple.com/us/app/dash-offline-api-documentation/id1176733938?mt=8">Jie Wang</a>. This is despite the fact that I specifically chose a <a href="https://github.com/Kapeli/Dash-iOS/blob/master/LICENSE">license</a> that&rsquo;s incompatible with the App Store. I highly recommend avoiding Dash on the iOS App Store, as I do not know what modifications they have made to my code.

<ul>
<li><strong>Later Update:</strong> Two more developers just released Dash on the iOS App Store as paid apps: <a href="https://itunes.apple.com/us/app/dash-api-docs/id1190815732?l=en&amp;mt=8">Cuilian Su</a> and <a href="https://itunes.apple.com/us/app/dash-documentation-browser/id1190519093?l=en&amp;mt=8">Zuogen Zhang</a>.</li>
<li><strong>Later Later Update:</strong> These apps have now been removed from the App Store.</li>
</ul>
</li>
<li>Dash continues to be used by a lot of Apple Engineers and I&rsquo;ve received great help from them in debugging issues and in supporting the new Xcode 8 documentation format.</li>
<li>It feels great to have full control over my business and to avoid App Store <a href="http://osxdaily.com/2015/11/12/fix-app-is-damaged-cant-be-opened-error-messages-in-mac-os-x/">installation</a>/<a href="https://forums.developer.apple.com/thread/70511">updating</a>/<a href="https://support.apple.com/en-us/HT203426">purchasing</a> issues.</li>
</ul>


<h1>Conclusion</h1>

<p>I was lucky to have setup a direct way of distributing Dash a while ago and as a result I&rsquo;ve been mostly unaffected by the removal from the App Store.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash for iOS 1.6.0]]></title>
    <link href="https://blog.kapeli.com/dash-for-ios-1-dot-6-0/"/>
    <updated>2016-11-30T15:31:00+02:00</updated>
    <id>https://blog.kapeli.com/dash-for-ios-1-dot-6-0</id>
    <content type="html"><![CDATA[<p><a href="https://github.com/Kapeli/Dash-iOS/releases/tag/v1.6.0">Dash for iOS 1.6.0</a> is now available.</p>

<h1>What&rsquo;s New</h1>

<br>


<ul>
<li>Added support for cheat sheets &ndash; <a href="https://github.com/Kapeli/Dash-iOS/pull/22">#22</a></li>
<li>Added support for user contributed docsets &ndash; <a href="https://github.com/Kapeli/Dash-iOS/pull/20">#20</a></li>
<li>Added state restoration support. Thanks to <a href="https://github.com/zhongwuzw">@zhongwuzw</a> for the great work on this &ndash; <a href="https://github.com/Kapeli/Dash-iOS/pull/18">#18</a></li>
<li>Fixed Unity 3D docset bug which caused it to not remember the selected language. Thanks to <a href="https://github.com/hantengx">@hantengx</a> for reporting the issue &ndash; <a href="https://github.com/Kapeli/Dash-iOS/issues/17">#17</a></li>
<li>Fixed a crash in the docset downloader. Thanks to <a href="https://github.com/zhongwuzw">@zhongwuzw</a> for the fix &ndash; <a href="https://github.com/Kapeli/Dash-iOS/pull/16">#16</a></li>
<li>Stopped an evil <code>if()</code> from taking over the world. Thanks to <a href="https://github.com/BalestraPatrick">@BalestraPatrick</a> for reporting the issue and <a href="https://github.com/flovilmart">@flovilmart</a> for fixing it &ndash; <a href="https://github.com/Kapeli/Dash-iOS/pull/4">#4</a></li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash for iOS is Now Open-Source]]></title>
    <link href="https://blog.kapeli.com/dash-for-ios-is-now-open-source/"/>
    <updated>2016-11-14T22:42:00+02:00</updated>
    <id>https://blog.kapeli.com/dash-for-ios-is-now-open-source</id>
    <content type="html"><![CDATA[<p>Dash for iOS can now be found on <a href="https://github.com/Kapeli/Dash-iOS">GitHub</a>.</p>

<p>Installation instructions can be found <a href="https://kapeli.com/dash_ios#install">here</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash 3.4]]></title>
    <link href="https://blog.kapeli.com/dash-3-dot-4/"/>
    <updated>2016-10-25T18:20:00+03:00</updated>
    <id>https://blog.kapeli.com/dash-3-dot-4</id>
    <content type="html"><![CDATA[<p><a href="https://blog.kapeli.com//kapeli.com/dash">Dash 3.4</a> is now available.</p>

<h1>What&rsquo;s New</h1>

<br>


<ul>
<li><strong>Apple API Reference Improvements:</strong>

<ul>
<li>The Apple API Reference docset now reads the docs from within Xcode 8. This reduces disk space usage while also allowing me to modify &amp; improve the docs at display-time. Thanks a lot to the Xcode team at Apple for helping me understand the new documentation format!</li>
<li>The doc pages of classes will now display full method/property docs inline (i.e. how the old docs used to be)</li>
<li>The parent class will now be shown at the top</li>
<li>For any other improvement ideas, please <a href="https://kapeli.com/contact">contact me</a></li>
</ul>
</li>
<li><strong>Angular for TypeScript Docset</strong>. An &ldquo;AngularTS&rdquo; docset is now available in Preferences > Downloads.</li>
<li>Lots of minor improvements and bug fixes.</li>
</ul>


<p>That&rsquo;s all. Thanks for using Dash!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dear Dash Users]]></title>
    <link href="https://blog.kapeli.com/dear-dash-users/"/>
    <updated>2016-10-11T11:18:00+03:00</updated>
    <id>https://blog.kapeli.com/dear-dash-users</id>
    <content type="html"><![CDATA[<p>It does not look like <a href="https://kapeli.com/dash">Dash</a> can return to the App Store anytime soon. Due to Dash&rsquo;s <a href="https://www.engadget.com/2016/10/10/apple-suspends-developer-account-over-review-fraud/">removal from the App Store</a>, please note that <strong>you can no longer download the apps you paid for</strong>.</p>

<h1>Dash for macOS</h1>

<p>App Store users of Dash <a href="https://kapeli.com/app_store_migrate">should migrate their license</a> immediately. If you lost access to the App Store version of Dash, please <a href="https://kapeli.com/contact">contact me</a> with your purchase receipt. If you&rsquo;d like a refund instead, please contact App Store support.</p>

<p>Non-App Store customers of Dash are unaffected. If you purchased directly, you don&rsquo;t need to do anything.</p>

<h1>Dash for iOS</h1>

<p><strong>Update:</strong> Dash for iOS is <a href="https://kapeli.com/dash_ios">now open-source</a>.</p>

<p>Dash for iOS can&rsquo;t be distributed outside of the App Store. My preferred solution would be for a fellow developer to get it back on the App Store, as a free app. Open sourcing doesn’t look like a good solution at this time, as most of my users are not iOS developers and are not familiar with compiling an app for their devices.</p>

<h1>Thank you for your support</h1>

<p>Thank you for your understanding and ongoing support. I will try to respond to support requests and migration issues as soon as I can, to make this process as easy as possible.</p>

<p>— Bogdan</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash and Apple: My Side of the Story]]></title>
    <link href="https://blog.kapeli.com/dash-and-apple-my-side-of-the-story/"/>
    <updated>2016-10-11T01:37:00+03:00</updated>
    <id>https://blog.kapeli.com/dash-and-apple-my-side-of-the-story</id>
    <content type="html"><![CDATA[<p>Since last week&rsquo;s post regarding <a href="https://blog.kapeli.com/apple-removed-dash-from-the-app-store">Dash&rsquo;s removal from the App Store</a> I&rsquo;ve been in contact with Apple.</p>

<p>What I&rsquo;ve done: 3-4 years ago I helped a relative get started by paying for her Apple&rsquo;s Developer Program Membership using my credit card. I also handed her test hardware that I no longer needed. From then on those accounts were linked in the eyes of Apple. Once that account was involved with review manipulation, my account was closed.</p>

<p>I was not aware my account was linked to another until Apple contacted me Friday, 2 days after closing my account. I was never notified of any kind of wrongdoing before my account was terminated.</p>

<p>What Apple has done: on Friday they told me they&rsquo;d reactivate my account if I&rsquo;d make a blog post admitting <em>some wrongdoing</em>. I told them I can&rsquo;t do that, because I did nothing wrong. On Saturday they told me that they are fine with me writing the truth about what happened, and that if I did that, my account would be restored. Saturday night I sent a blog post draft to Apple and have since waited for their approval.</p>

<p>Tonight Apple decided to accuse me of manipulating the App Store in public via a spokesperson.</p>

<h2>Last call from Saturday with Apple</h2>

<p>Apple insisted that all communication was through phone calls. Luckily, I recorded my last phone call with them, in which they admit that:</p>

<ul>
<li>They want me to write a blog post in order to restore my account</li>
<li>They never notified me beforehand about what was going on</li>
</ul>


<p><audio controls preload="none" style="width:280px;">
<source class="dynamic_download" src="https://kapeli.com/downloads/Apple_Call.m4a" type="audio/mp4" />
Your browser does not support the audio element.
</audio></p>

<p><strong>Update:</strong> Just to make it clear, I have complied with Apple’s request and have sent a <a href="https://kapeli.com/apple_draft">blog post draft</a> approximately 30 minutes after this phone call ended. I have since not received any contact from Apple in any way, and they did not respond to my calls. Their recent statements come as a shock as I thought we were working together to resolve this issue.</p>

<script>
    beginsWith = function(needle, haystack) {
        return (haystack.substr(0, needle.length) == needle);
    }

    function latencyTest(url) {
        return $.ajax({
            url: "//"+url+".kapeli.com/feeds/latencyTest_v2.txt",
            cache: false,
            success: function(content){
                if(beginsWith("Just a latency test. Move along.", content))
                {
                    var links = document.getElementsByClassName("dynamic_download");
                    for(var j = 0; j < links.length; j++)
                    {
                        var link = links[j];
                        if(link.getAttribute("src") == "https://kapeli.com/downloads/Apple_Call.m4a")
                        {
                            link.src = "https://"+url+".kapeli.com/downloads/Apple_Call.m4a";
                            for(var i = 0; i < window.loadingFeeds.length; i++)
                            {
                                window.loadingFeeds[i].abort();
                            }
                        }
                    }
                }
            }
        });
    }
    window.onload = function(e){
        window.loadingFeeds = [];
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('london');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('frankfurt');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('newyork');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('sanfrancisco');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('tokyo');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('sydney');
        window.loadingFeeds[window.loadingFeeds.length] = latencyTest('singapore');
    };
</script>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Apple Has Removed Dash from the App Store]]></title>
    <link href="https://blog.kapeli.com/apple-removed-dash-from-the-app-store/"/>
    <updated>2016-10-05T20:27:00+03:00</updated>
    <id>https://blog.kapeli.com/apple-removed-dash-from-the-app-store</id>
    <content type="html"><![CDATA[<p>Earlier today, Apple cancelled my developer account and has removed <a href="https://kapeli.com/dash">Dash</a> from the App Store.</p>

<p><a name="what-happened"></a></p>

<h1>What Happened?</h1>

<p>I don&rsquo;t know.</p>

<p>Yesterday I sent Apple a request to migrate my account from an individual one to a company one. Once I verified my company with its <a href="http://www.dnb.com/duns-number.html">D-U-N-S Number</a>, they notified me that some features in iTunes Connect won&rsquo;t be available during account migration.</p>

<p>A while later my iTunes Connect account started showing as &ldquo;CLOSED&rdquo; and my apps were removed from sale. I thought this was normal and part of the migration.</p>

<p>Today I called them and they confirmed my account migration went through and that everything is okay as far as they can tell. A few hours ago I received a &ldquo;Notice of Termination&rdquo; email, saying that my account was terminated due to fraudulent conduct. I called them again and they said they can&rsquo;t provide more information.</p>

<p><strong>Update</strong>: Apple contacted me and told me they found evidence of App Store review manipulation. This is something I&rsquo;ve never done.</p>

<p>Apple&rsquo;s decision is final and can&rsquo;t be appealed.</p>

<h1>Going Forward</h1>

<p>I can&rsquo;t update Dash for iOS anymore and I can&rsquo;t distribute it outside of the App Store.</p>

<p><a href="https://kapeli.com/dash">Dash for macOS</a> will continue to be supported outside of the App Store. If you purchased Dash on the Mac App Store, you should <a href="https://kapeli.com/app_store_migrate">migrate your license</a> as soon as possible. At the moment you are not able to download Dash from your App Store&rsquo;s Purchases tab anymore, so if you lose access to your currently activated version of Dash you won&rsquo;t be able to migrate your license anymore.</p>

<p>I don&rsquo;t know if/when things will go back to normal.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash 3.3]]></title>
    <link href="https://blog.kapeli.com/dash-3-dot-3/"/>
    <updated>2016-07-02T18:06:00+03:00</updated>
    <id>https://blog.kapeli.com/dash-3-dot-3</id>
    <content type="html"><![CDATA[<p><a href="https://blog.kapeli.com//kapeli.com/dash">Dash 3.3</a> is now available.</p>

<h1>What&rsquo;s New</h1>

<br>


<ul>
<li><strong>macOS Sierra Support</strong>. Dash should work fine with macOS Sierra. If you notice any bugs, <a href="https://blog.kapeli.com//kapeli.com/contact">let me know</a>.</li>
<li><strong>Apple API Reference Support</strong>. Apple has <a href="https://developer.apple.com/reference">new API docs</a>. You can use them in Dash by installing the Apple API Reference docset.</li>
<li><strong>GitHub Docsets Repo</strong>. You can now generate docsets from any GitHub repo&rsquo;s markdown files and wiki pages. Check out Preferences > Downloads > GitHub Docsets.</li>
<li>Lots of minor improvements and bug fixes.</li>
</ul>


<p>That&rsquo;s all. Thanks for using Dash!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash, Xcode 8 and macOS Sierra]]></title>
    <link href="https://blog.kapeli.com/dash-xcode-8-and-macos-sierra/"/>
    <updated>2016-06-14T13:03:00+03:00</updated>
    <id>https://blog.kapeli.com/dash-xcode-8-and-macos-sierra</id>
    <content type="html"><![CDATA[<p>Apple released previews of Xcode 8 and macOS Sierra yesterday and some changes need to be made to get Dash up to speed:</p>

<ul>
<li><strong>New Apple docs and new doc format</strong>. Xcode 8 doesn&rsquo;t come with docsets anymore and that means Dash won&rsquo;t automatically support the iOS 10, macOS 10.12, watchOS 3 and tvOS 10 docs. I&rsquo;m working on a version of Dash that supports the new docs and will release an update as soon as possible.</li>
<li><strong>New Xcode 8 extensions</strong>. The current Dash Xcode extension doesn&rsquo;t work in Xcode 8. I&rsquo;m working on a Xcode 8 extension and will release it as soon as possible.</li>
<li><strong>macOS Sierra</strong>. I&rsquo;ve briefly tested Dash in macOS Sierra and everything seems to be working fine. If you notice any bugs please <a href="https://kapeli.com/contact">contact me</a>.</li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash 3: Now Available!]]></title>
    <link href="https://blog.kapeli.com/dash-3/"/>
    <updated>2015-06-29T17:29:00+03:00</updated>
    <id>https://blog.kapeli.com/dash-3</id>
    <content type="html"><![CDATA[<p><strong>TL;DR:</strong> <a class="dynamic_download" href="https://kapeli.com/dash">Download Dash 3 for macOS</a> and try it out!</p>

<p>Dash 3 for macOS is the biggest update I&rsquo;ve ever worked on and I&rsquo;m happy to announce it&rsquo;s finally available. It comes with a lot of features that you, the users, have requested and some features which I&rsquo;ve always wanted to add but never had the time until now.</p>

<p>Dash 3 is a paid upgrade. To upgrade, <a class="dynamic_download" href="https://kapeli.com/dash">download Dash 3</a> and follow the instructions in Preferences > Purchase.</p>

<h1>New: Archived Docsets</h1>

<p>Dash will now use a lot less disk space by keeping docsets archived. Files will only be unarchived on-the-fly when they&rsquo;re needed. Docsets take up to 10x less disk space while archived.</p>

<p>This feature has no significant performance impact. Most of the page load time is spent during rendering and the time it takes to load the files either from archives or directly from disk is insignificant.</p>

<p>Reinstall your docsets from Preferences > Downloads to benefit from this feature.</p>

<h1>New: Tab Restoration</h1>

<p>Dash will now restore all your open tabs between launches, so that you can continue from where you left off.</p>

<h1>New: Settings Sync</h1>

<p>Dash can now sync your settings across Macs, including installed docsets, search profiles and bookmarks.</p>

<p style="text-align:center;"><img class="borderless optimize-contrast" src="https://blog.kapeli.com/images/v3_sync.png" width="650"></p>

<h1>New: Open Online Page</h1>

<p>The &ldquo;Open in Browser&rdquo; feature now lets you choose between opening the local or online page.</p>

<h1>New: Annotations</h1>

<p>Use Annotations to extend any documentation page by adding comments, examples, warnings or bug reports. Annotations are stored online and can be public or private. You can also set up teams to share annotations with your coworkers or friends.</p>

<p>The <a href="https://github.com/Kapeli/Dash-Annotations#readme">Annotations Server</a> is open-source so you can set up your own server if you want, for ultimate privacy.</p>

<p style="text-align:center;"><img class="borderless optimize-contrast" src="https://blog.kapeli.com/images/v3_annotations.png" width="650"></p>

<h1>New: iOS Remotes</h1>

<p>Dash can now connect to <a href="https://blog.kapeli.com/dash-for-ios-now-available">Dash for iOS</a> and display documentation pages on your iOS device. Keep your iPad or iPhone next to you while coding and use them as a second display just for docs.</p>

<p>Clipboard syncing makes sure that when you copy something in Dash for iOS it gets synced to macOS. iOS Remotes also support integration plugin redirection, so that you can initiate searches from your favorite <a href="https://kapeli.com/dash#integration">integration plugin</a> directly to iOS.</p>

<p style="text-align:center;"><img class="borderless optimize-contrast" src="https://blog.kapeli.com/images/v3_remotes.png" width="650"></p>

<h1>New: Dark Mode</h1>

<p>Documentation pages can now be set to dark mode.</p>

<p style="text-align:center;"><img class="borderless optimize-contrast" src="https://blog.kapeli.com/images/v3_dark.png" width="650"></p>

<h1>Download Dash 3</h1>

<p>Dash 3 is a paid upgrade, but it&rsquo;s <a class="dynamic_download" href="https://kapeli.com/dash">free to download and try out</a>. If you encounter any issues or need any help, <a href="https://kapeli.com/contact">contact me</a>.</p>

<script>
    beginsWith = function(needle, haystack) {
        return (haystack.substr(0, needle.length) == needle);
    }
    function latencyTest(url) {
        return $.ajax({
            url: "//"+url+".kapeli.com/feeds/latencyTest_v2.txt",
            cache: false,
            success: function(content){
                if(beginsWith("Just a latency test. Move along.", content))
                {
                    var links = document.getElementsByClassName("dynamic_download");
                    for(var j = 0; j < links.length; j++)
                    {
                        var link = links[j];
                        if(link.getAttribute("href") == "https://kapeli.com/dash")
                        {
                            link.href = "//"+url+".kapeli.com/downloads/v3/Dash.zip";
                            for(var i = 0; i < window.loadingFeeds.length; i++)
                            {
                                window.loadingFeeds[i].abort();
                            }
                        }
                    }
                }
            }
        });
    }
    window.onload = function(e){
        if(window.location.href.match(/ref=appstore_disabled/i))
        {
            var links = document.getElementsByClassName("dynamic_download");
            for(var j = 0; j < links.length; j++)
            {
                var link = links[j];
                link.href = "https://itunes.apple.com/us/app/dash/id449589707?ls=1&mt=12";
            }
        }
        else
        {
            window.loadingFeeds = [];
            window.loadingFeeds[window.loadingFeeds.length] = latencyTest('london');
            window.loadingFeeds[window.loadingFeeds.length] = latencyTest('frankfurt');
            window.loadingFeeds[window.loadingFeeds.length] = latencyTest('newyork');
            window.loadingFeeds[window.loadingFeeds.length] = latencyTest('sanfrancisco');
            window.loadingFeeds[window.loadingFeeds.length] = latencyTest('tokyo');
            window.loadingFeeds[window.loadingFeeds.length] = latencyTest('sydney');
            window.loadingFeeds[window.loadingFeeds.length] = latencyTest('singapore');
        }
    };
</script>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash for iOS Now Available]]></title>
    <link href="https://blog.kapeli.com/dash-for-ios-now-available/"/>
    <updated>2014-11-14T21:32:00+02:00</updated>
    <id>https://blog.kapeli.com/dash-for-ios-now-available</id>
    <content type="html"><![CDATA[<p>What are you still doing here? <a href="https://kapeli.com/dash_ios">Go get it</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Sneak Peek: Dash for iOS]]></title>
    <link href="https://blog.kapeli.com/sneak-peek-dash-for-ios/"/>
    <updated>2014-10-14T15:38:00+03:00</updated>
    <id>https://blog.kapeli.com/sneak-peek-dash-for-ios</id>
    <content type="html"><![CDATA[<p>For the past few months I&rsquo;ve been working on bringing Dash to iOS. I&rsquo;ve finally reached a point where I can share what Dash will and won&rsquo;t be like on iOS.</p>

<p>If all goes well, a beta of Dash for iOS will be released sometime in November, followed by an App Store release in December, hopefully 2014.</p>

<p><strong>The boring news</strong></p>

<ul>
<li>It&rsquo;s going to be an universal app and will support both iPhone and iPad.</li>
<li>It will probably cost around $9.99.</li>
<li>No snippets at all. Only documentation. I might add snippets later on depending on demand.</li>
</ul>


<p><strong>The good news</strong></p>

<ul>
<li>Searching will be the same as on macOS. Same <strong>instant speed</strong>, same results.</li>
<li>Docsets that are downloaded by the app will be kept archived and documentation pages will be unarchived in-memory only when they need to be displayed. <strong>This means 4-10x less disk space usage compared to Dash for macOS.</strong></li>
</ul>


<p><strong>The bad news</strong></p>

<ul>
<li>There are a lot of limitations when dealing with WebViews in iOS. This means that some docsets might not be as awesome as they are on macOS, but I&rsquo;ll do my best to fix any issues.</li>
<li>You&rsquo;ll only be able to install the <a href="https://blog.kapeli.com//kapeli.com/dash#docsets">main 150+ documentation sets</a> and nothing else (i.e. no support for Ruby Gems, CocoaPods and others). However, you&rsquo;ll be able to <strong>transfer docsets</strong> from your Mac/PC using iTunes File Sharing.</li>
</ul>


<p><strong>Screenshots</strong></p>

<p>Note: This is a work in progress. Some things (e.g. icons) will be changed.</p>

<p style="text-align:center;"><a href="https://blog.kapeli.com/images/dash_ios_screen_1.png"><img src="https://blog.kapeli.com/images/dash_ios_screen_1.png" width="600" title="Dash for iOS Download Docsets" ></a></p>

<p style="text-align:center;"><a href="https://blog.kapeli.com/images/dash_ios_screen_2.png"><img src="https://blog.kapeli.com/images/dash_ios_screen_2.png" width="600" title="Dash for iOS Browse Docsets" ></a></p>

<p style="text-align:center;"><a href="https://blog.kapeli.com/images/dash_ios_screen_3.png"><img src="https://blog.kapeli.com/images/dash_ios_screen_3.png" width="600" title="Dash for iOS Search" ></a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Meet Velocity for Windows]]></title>
    <link href="https://blog.kapeli.com/meet-velocity-for-windows/"/>
    <updated>2014-08-04T19:30:00+03:00</updated>
    <id>https://blog.kapeli.com/meet-velocity-for-windows</id>
    <content type="html"><![CDATA[<p>At the beginning of 2014 I&rsquo;ve started looking for other developers to bring <a href="https://blog.kapeli.com//kapeli.com/dash">Dash</a> to other platforms.</p>

<p>A few days ago, <a href="http://velocity.silverlakesoftware.com/">Velocity</a> for Windows was released. Just like <a href="https://blog.kapeli.com//kapeli.com/dash">Dash</a> on macOS, Velocity gives your PC instant offline access to 150+ API documentation sets, so you can get to the programming docs you need as quickly as possible.</p>

<p>Velocity is made by <a href="http://efficientbits.com/">Jamie da Silva</a> and not by me. I&rsquo;ve just helped Jamie get access to all of Dash&rsquo;s docsets. As far as I can tell, Velocity has a bright future ahead and more features are in the works. I really hope it will become at least as popular as Dash is with Mac users.</p>

<p>If you ever have to use Windows for your programming needs, please check out <a href="http://velocity.silverlakesoftware.com/">Velocity</a> now, it will help speed up your development process.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash, Swift and Yosemite]]></title>
    <link href="https://blog.kapeli.com/dash-and-swift/"/>
    <updated>2014-06-03T16:38:00+03:00</updated>
    <id>https://blog.kapeli.com/dash-and-swift</id>
    <content type="html"><![CDATA[<p>I&rsquo;m getting lots of requests to add support for Swift. This post is to assure everyone that I&rsquo;m working on it.</p>

<p>The good news is that the macOS 10.10 and iOS 8 docsets already include Swift alongside Objective-C. For example, check out the <a href="https://developer.apple.com/library/prerelease/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/index.html">NSString Class Reference in macOS 10.10</a>.</p>

<p>The bad news is that Apple changed the look and feel of their docsets and there are a few changes required in Dash to get everything to work. I don&rsquo;t expect these changes to take a lot of time, but I can&rsquo;t give an ETA.</p>

<p>I know that some of you would like to use Dash inside Yosemite as soon as possible, so I&rsquo;m also going to support it in the upcoming update. By support, I just mean fixing any bugs that might have come up (no redesign yet). If you&rsquo;re using Dash in Yosemite already, please <a href="https://blog.kapeli.com//kapeli.com/contact">contact me</a> and let me know whether or not you found any bugs.</p>

<p>Thanks for using Dash!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash 2.1]]></title>
    <link href="https://blog.kapeli.com/dash-2-dot-1/"/>
    <updated>2014-05-23T20:49:00+03:00</updated>
    <id>https://blog.kapeli.com/dash-2-dot-1</id>
    <content type="html"><![CDATA[<p><a href="https://blog.kapeli.com//kapeli.com/dash">Dash 2.1</a> is now available.</p>

<h1>What&rsquo;s New</h1>

<br>


<ul>
<li><strong>Offline Stack Overflow Access</strong>. I couldn&rsquo;t wait to brag that Dash is the only app that does this, but it looks like <a href="https://itunes.apple.com/en/app/stackstash-stackoverflow-offline/id602112351?l=en&amp;mt=8">it&rsquo;s not</a>. Online access is also supported, if you want to save some disk space.</li>
<li><strong>PHP Docsets Repo</strong>. You can now install docsets for any PHP Package you can find on <a href="http://packagist.org">Packagist</a>.</li>
<li><strong>Go Docsets Repo</strong>. You can now install docsets for any Go Package you can find on <a href="http://godoc.org">GoDoc.org</a>.</li>
<li><strong>User Contributed Repo</strong>. Users can now contribute docsets to Dash. If you made a docset other users would find useful, please contribute it!</li>
<li><strong>Older Docsets</strong>. You can now download older versions of the main Dash docsets. If you want a docset for a specific version or if you find any bugs in an old docset, please let me know!</li>
<li><strong>Brackets Integration</strong>, thanks to <a href="http://www.raymondcamden.com/">Raymond Camden</a>.</li>
<li><strong>22 New Docsets:</strong>

<ul>
<li>AngularDart</li>
<li>Apache HTTP Server</li>
<li>AppleScript</li>
<li>AWS JavaScript</li>
<li>CMake</li>
<li>Dart</li>
<li>ElasticSearch</li>
<li>Font Awesome</li>
<li>Groovy JDK</li>
<li>Jasmine</li>
<li>MATLAB</li>
<li>MomentJS</li>
<li>NumPy</li>
<li>PHPUnit</li>
<li>Polymer.dart</li>
<li>RequireJS</li>
<li>SaltStack</li>
<li>SciPy</li>
<li>Sinon</li>
<li>SQLAlchemy</li>
<li>Statamic</li>
<li>Tornado</li>
</ul>
</li>
<li>Lots of minor improvements and bug fixes.</li>
</ul>


<p>That&rsquo;s all. Thanks for using Dash!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Offline Stack Overflow Access]]></title>
    <link href="https://blog.kapeli.com/offline-stack-overflow/"/>
    <updated>2014-04-01T21:48:00+03:00</updated>
    <id>https://blog.kapeli.com/offline-stack-overflow</id>
    <content type="html"><![CDATA[<p>I&rsquo;m proud to announce that I&rsquo;m working on bringing offline Stack Overflow access to <a href="https://blog.kapeli.com//kapeli.com/dash">Dash</a>, based on the <a href="https://archive.org/details/stackexchange">Stack Exchange Data Dump</a>.</p>

<p>The upcoming Stack Overflow docset will let you:</p>

<ul>
<li>Search all questions directly from within Dash, just like any other docset</li>
<li>View comments and answers for any question, without any Internet access</li>
<li>Waste around 20GB of disk space</li>
</ul>


<p>If you&rsquo;re short on disk space, don&rsquo;t worry! I&rsquo;m also working on an online-only version of the docset. This version will let you search Stack Overflow using Dash&rsquo;s blazing fast search engine, but the content will come from <a href="http://stackoverflow.com/">stackoverflow.com</a> instead of your drive.</p>

<p><strong>Beyond Stack Overflow:</strong> I&rsquo;m also working on bringing support for all of the <a href="http://stackexchange.com/sites">Stack Exchange</a> sites, especially my personal favorite &ndash; <a href="http://cooking.stackexchange.com/">cooking.stackexchange.com</a>.</p>

<p>This is <strong>NOT</strong> an April Fools&#8217; joke. If all goes well this will come with the next update of Dash.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash 2 Now Available]]></title>
    <link href="https://blog.kapeli.com/dash-2-now-available/"/>
    <updated>2014-03-07T18:08:00+02:00</updated>
    <id>https://blog.kapeli.com/dash-2-now-available</id>
    <content type="html"><![CDATA[<p><a href="https://blog.kapeli.com//kapeli.com/dash">Dash 2</a> has been released and is now available for <strong>free</strong> to all Dash users.</p>

<h1>What&rsquo;s New?</h1>

<br>


<ul>
<li>Make awesome cheat sheets and contribute them to the <a href="https://github.com/Kapeli/cheatsheets">cheat sheet repo</a></li>
<li>Install docsets from package managers:

<ul>
<li><a href="http://cocoapods.org">CocoaPods.org</a></li>
<li><a href="http://rubygems.org">RubyGems.org</a></li>
<li><a href="http://search.maven.org/">Maven.org</a></li>
<li>Support for other package managers will be added in future updates:

<ul>
<li>Python (PyPI) will be added as soon as a reliable source for docs will be found. ReadTheDocs has <a href="https://github.com/rtfd/readthedocs.org/issues/662">been considered</a>, but couldn&rsquo;t be used</li>
<li>Node.js (npm) has <a href="https://github.com/npm/npm-www/issues/632">no documentation generator</a></li>
<li>Go (godoc) will be added as soon as the <a href="https://github.com/golang/gddo/issues/151">search API is improved</a></li>
<li>Perl (CPAN) will be added as soon as the <a href="https://github.com/CPAN-API/metacpan-web/issues/1114#issuecomment-36417530">search API is improved</a></li>
<li>Did I miss anything? Let me know!</li>
</ul>
</li>
</ul>
</li>
<li>Lovely new icon, thanks to <a href="https://twitter.com/kaishin">Reda Lemeden</a></li>
<li>Dash will modify the Alfred workflow on-the-fly so that it includes docset and search profile keywords. This means you can now type <code>php {query}</code> in Alfred instead of <code>dash php:{query}</code></li>
<li>Added Grunt, Mongoose and Rust docsets</li>
<li>Lots of minor bug fixes and lots of new bugs!</li>
</ul>


<h1>What&rsquo;s next?</h1>

<br>


<ul>
<li>Short term: A few updates to fix any bugs that might come up and add a few new docsets.

<ul>
<li>Note: I&rsquo;m not currently aware of any unfixed bugs, so if you find any please <a href="https://blog.kapeli.com//kapeli.com/contact">contact me</a>.</li>
</ul>
</li>
<li>Long term: <a href="http://blog.kapeli.com/a-sneak-peek-at-dashs-future#annotations">Annotations</a>!</li>
</ul>


<h1>Thank you!</h1>

<p>A very warm thank you to all Dash users. Your support is highly appreciated and have helped make Dash awesome!</p>

<p>Please do not hesitate to <a href="https://blog.kapeli.com//kapeli.com/dash">contact me</a> regarding anything, I reply to all emails as soon as I get them.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Dash for iOS, Android, Windows or Linux]]></title>
    <link href="https://blog.kapeli.com/dash-for-ios-android-windows-or-linux/"/>
    <updated>2014-01-09T03:42:00+02:00</updated>
    <id>https://blog.kapeli.com/dash-for-ios-android-windows-or-linux</id>
    <content type="html"><![CDATA[<p><em><strong>TL;DR</strong>: Dash-like apps for other platforms have been released. Check out <a href="https://blog.kapeli.com//kapeli.com/dash_ios">Dash</a> for iOS, <a href="http://velocity.silverlakesoftware.com/">Velocity</a> for Windows, <a href="http://zealdocs.org">Zeal</a> for Linux and <a href="http://lovelydocs.io/">LovelyDocs</a> for Android.</em></p>

<p>I get asked a lot to bring <a href="https://blog.kapeli.com//kapeli.com/dash">Dash</a> to other platforms. That won&rsquo;t happen, because:</p>

<ul>
<li>I&rsquo;ve got a lot to add to Dash on macOS and I can&rsquo;t focus on any other platform</li>
<li>I&rsquo;m a complete novice when it comes to developing for any other platform, so I wouldn&rsquo;t do a great job</li>
</ul>


<h1>Looking for devs to bring Dash to other platforms</h1>

<p>I am actively looking for developers of other platforms (<strike>iOS</strike>, <strike>Android</strike>, <strike>Windows</strike> or <strike>Linux</strike>) that would like to work on a Dash-like app, as their own project and for their own profit.</p>

<p><em>Later edit: I have found iOS, Windows, Linux and Android devs and Dash-like apps for these platforms should be released sometime in 2014.</em></p>

<h3><strong>What you&rsquo;ll make:</strong></h3>

<ul>
<li>An API documentation browser app for your favourite platform</li>
<li>You can give it your own personal twist or base it on Dash as much as you want</li>
<li>Release it as commercial, free or keep it for personal use, I don&rsquo;t care</li>
</ul>


<h3><strong>What you get:</strong></h3>

<ul>
<li>My help, as much as I can</li>
<li>Free access to <a href="https://blog.kapeli.com//kapeli.com/docset_links">all of Dash&rsquo;s docsets</a> to be used by your app

<ul>
<li>This includes docset updates and I&rsquo;m also covering the hosting costs</li>
</ul>
</li>
</ul>


<h3><strong>What you won&rsquo;t get:</strong></h3>

<ul>
<li>Access to Dash&rsquo;s source code</li>
</ul>


<h3><strong>What I want in return:</strong></h3>

<ul>
<li>A link to Dash, on your app&rsquo;s presentation website and inside the app</li>
</ul>


<h3><strong>Some notes:</strong></h3>

<ul>
<li>Don&rsquo;t start working on this without <a href="https://blog.kapeli.com//kapeli.com/contact">contacting me</a> first</li>
<li>I&rsquo;ll give exclusivity to Dash&rsquo;s docsets to whoever looks most promising</li>
<li>This is not a weekend project</li>
<li>Making an awesome documentation browser takes time</li>
</ul>


<h3><strong>In case you&rsquo;re considering making this a commercial project:</strong></h3>

<ul>
<li>You really should. Dash is my only source of income</li>
<li>I really think this is a huge opportunity for indie devs</li>
<li>I have no idea how much money you&rsquo;ll make</li>
</ul>

]]></content>
  </entry>
  
</feed>
