{"componentChunkName":"component---src-modules-datocms-post-page-page-tsx","path":"/posts/59","result":{"data":{"post":{"title":"Nativefierでどんなウェブアプリも一撃Macアプリ化！ブラウザとアプリの用途を分けて仕事を効率化しよう","author":{"name":"suin","images":{"r32":{"src":"https://www.datocms-assets.com/29850/1591833290-avatar512.jpg?auto=format&fm=png&h=32&mask=ellipse&w=32","srcSet":"https://www.datocms-assets.com/29850/1591833290-avatar512.jpg?auto=format&dpr=1&fm=png&h=32&mask=ellipse&w=32 1x,\nhttps://www.datocms-assets.com/29850/1591833290-avatar512.jpg?auto=format&dpr=1.5&fm=png&h=32&mask=ellipse&w=32 1.5x,\nhttps://www.datocms-assets.com/29850/1591833290-avatar512.jpg?auto=format&dpr=2&fm=png&h=32&mask=ellipse&w=32 2x,\nhttps://www.datocms-assets.com/29850/1591833290-avatar512.jpg?auto=format&dpr=3&fm=png&h=32&mask=ellipse&w=32 3x"},"r48":{"src":"https://www.datocms-assets.com/29850/1591833290-avatar512.jpg?auto=format&fm=png&h=48&mask=ellipse&w=48","srcSet":"https://www.datocms-assets.com/29850/1591833290-avatar512.jpg?auto=format&dpr=1&fm=png&h=48&mask=ellipse&w=48 1x,\nhttps://www.datocms-assets.com/29850/1591833290-avatar512.jpg?auto=format&dpr=1.5&fm=png&h=48&mask=ellipse&w=48 1.5x,\nhttps://www.datocms-assets.com/29850/1591833290-avatar512.jpg?auto=format&dpr=2&fm=png&h=48&mask=ellipse&w=48 2x,\nhttps://www.datocms-assets.com/29850/1591833290-avatar512.jpg?auto=format&dpr=3&fm=png&h=48&mask=ellipse&w=48 3x"}},"bio":"好き: TypeScript, DDD, OOP／#YYTypeScript の主催者／Qiita 4位／株式会社クラフトマンソフトウェア取締役／『実践ドメイン駆動設計』邦訳レビュア／#分報 考案者／Web自動テストShouldBeeを開発"},"date":"2015年11月16日","tags":[],"category":"プログラミング","body":"<a href=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/dd19b257-7111-456a-a28b-ee33ae0200d6.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img width=\"1200\" alt=\"image.png (240.9 kB)\" src=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/dd19b257-7111-456a-a28b-ee33ae0200d6.png\"></a>\n<p data-sourcepos=\"3:1-3:289\">HTML5やJavaScriptでの表現力が非常に高くなった昨今、アプリをウェブだけで提供しているサービスは少なくない。今回はそうしたアプリをあたかもネイティブMacアプリのように変換できるNativefierについて紹介したい。</p>\n<h1 data-sourcepos=\"5:1-5:50\" id=\"1-0-0\" name=\"1-0-0\">\n<a class=\"anchor\" id=\"アプリとブラウザを分けるメリット\" name=\"%E3%82%A2%E3%83%97%E3%83%AA%E3%81%A8%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%82%92%E5%88%86%E3%81%91%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88\" href=\"#%E3%82%A2%E3%83%97%E3%83%AA%E3%81%A8%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%82%92%E5%88%86%E3%81%91%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88\" data-position=\"1-0-0\"><i class=\"fa fa-link\"></i><span class=\"hidden\" data-text=\"アプリとブラウザを分けるメリット\"> &gt; アプリとブラウザを分けるメリット</span></a>アプリとブラウザを分けるメリット</h1>\n<p data-sourcepos=\"7:1-7:79\">仕事をする上で、昨今のブラウザは2つの目的で使われる。</p>\n<ul data-sourcepos=\"9:1-11:0\">\n<li data-sourcepos=\"9:1-9:14\">情報収集</li>\n<li data-sourcepos=\"10:1-11:0\">特定業務の遂行</li>\n</ul>\n<p data-sourcepos=\"12:1-12:422\">1つ目は、情報収集のツールとしてブラウザを使う。知りたいこと分からないことなどをGoogleなどの検索エンジンで検索し、調べ、業務の課題を解決するために使う。2つ目は、特定業務の遂行を目的に使う。例えばチャットツールのChatWorkやチケット管理のRedmineといったツールを動かすためにブラウザが使われる。</p>\n<p data-sourcepos=\"14:1-14:660\">ブラウザにこの2つの役割があるせいで、僕はたまに仕事のやりにくさを感じる。僕はGoogle Chromeを使って、今この記事を書くというタスクをやっているが、ブラウザのタブには、記事を書くタスクを管理するTrello、記事の下書きエディタとしてQiita Team、関連する情報を収集するためにウェブページが何タブも開いている。情報収集しているうちに、整理のため不要になったタブは閉じるが、知らぬ間に常に開いておきたいアプリまで閉じてしまっていることがあり、そこに不便さを感じる。</p>\n<figure><a href=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/b920e567-e3f2-4e8d-beee-634c81b79794.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img width=\"1820\" alt=\"2.jpg (15.8 kB)\" src=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/b920e567-e3f2-4e8d-beee-634c81b79794.jpg\"></a><figcaption>業務遂行のためのアプリタブと情報収集のためのタブが入り乱れる</figcaption></figure>\n<p data-sourcepos=\"18:1-18:388\">常に開いておきたいウェブアプリはNativefierでMacアプリにしておき、ブラウザはもっぱら情報収集専用ツールにしておくと、こうした不便さを解消するメリットがある。ブラウザのタブを乱暴に閉じても、ウェブアプリは別アプリとして起動しているので、誤って閉じてしまう心配がない。</p>\n<p data-sourcepos=\"20:1-20:562\">加えてもう一つのメリットとして、MacアプリならOS再起動時に、そのアプリを自動的に起動することができる。Macにはミッションコントロールや<a href=\"http://totalspaces.binaryage.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Total Spaces</a>で仮想ディスプレイをいくつも設けることができる。自動起動するアプリは、何番目の仮想ディスプレイで起動するかも設定することができるため、この仕組を活用すると、画面にウィンドウを散らかすことなく、アプリをいくつも起動しっぱなしにしておける。</p>\n<figure><a href=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/70141311-36b1-4cbd-9d78-120605a32d0f.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img width=\"3360\" alt=\"1.jpg (421.7 kB)\" src=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/70141311-36b1-4cbd-9d78-120605a32d0f.jpg\"></a><figcaption>僕はTotal Spacesで16スクリーン作り、それぞれにアプリを立ち上げている</figcaption></figure>\n<h1 data-sourcepos=\"25:1-25:18\" id=\"2-0-0\" name=\"2-0-0\">\n<a class=\"anchor\" id=\"Nativefierとは\" name=\"Nativefier%E3%81%A8%E3%81%AF\" href=\"#Nativefier%E3%81%A8%E3%81%AF\" data-position=\"2-0-0\"><i class=\"fa fa-link\"></i><span class=\"hidden\" data-text=\"Nativefierとは\"> &gt; Nativefierとは</span></a>Nativefierとは</h1>\n<p data-sourcepos=\"27:1-27:303\"><a href=\"https://github.com/jiahaog/Nativefier\" target=\"_blank\" rel=\"noopener noreferrer\">Nativefier</a>は、ウェブアプリを<a href=\"http://electron.atom.io/\" target=\"_blank\" rel=\"noopener noreferrer\">Electron</a>でラップし、OS実行形式(.app, .exeなど)に変換するコマンドツールだ。この記事では、主としてMacアプリ化ツールとして紹介しているが、WindowsアプリやLinuxアプリにも変換することができる。</p>\n<p data-sourcepos=\"29:1-29:280\">Nativefierの競合として古くから<a href=\"http://fluidapp.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Fluid</a>があるが、Fluidは最近メンテが行われていない様子で、使われているWebkitが古く、ウェブアプリによってはレイアウトが崩れたり、機能が動かなかったりということがある。</p>\n<figure><a href=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/303273be-3eb2-4d97-b263-6dc77b8fe112.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img width=\"2364\" alt=\"5.jpg (194.8 kB)\" src=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/303273be-3eb2-4d97-b263-6dc77b8fe112.jpg\"></a><figcaption>Trelloをアプリ化した様子。Nativefier自体のUIは全くなくアプリに集中できる。</figcaption></figure>\n<h1 data-sourcepos=\"34:1-34:63\" id=\"3-0-0\" name=\"3-0-0\">\n<a class=\"anchor\" id=\"NativefierでウェブアプリをMacアプリ化する方法\" name=\"Nativefier%E3%81%A7%E3%82%A6%E3%82%A7%E3%83%96%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92Mac%E3%82%A2%E3%83%97%E3%83%AA%E5%8C%96%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95\" href=\"#Nativefier%E3%81%A7%E3%82%A6%E3%82%A7%E3%83%96%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92Mac%E3%82%A2%E3%83%97%E3%83%AA%E5%8C%96%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95\" data-position=\"3-0-0\"><i class=\"fa fa-link\"></i><span class=\"hidden\" data-text=\"NativefierでウェブアプリをMacアプリ化する方法\"> &gt; NativefierでウェブアプリをMacアプリ化する方法</span></a>NativefierでウェブアプリをMacアプリ化する方法</h1>\n<h2 data-sourcepos=\"36:1-36:40\" id=\"3-1-0\" name=\"3-1-0\">\n<a class=\"anchor\" id=\"Nativefierをインストールする\" name=\"Nativefier%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B\" href=\"#Nativefier%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B\" data-position=\"3-1-0\"><i class=\"fa fa-link\"></i><span class=\"hidden\" data-text=\"Nativefierをインストールする\"> &gt; Nativefierをインストールする</span></a>Nativefierをインストールする</h2>\n<p data-sourcepos=\"38:1-38:154\">Nativefierはnpmで提供されているので、npmが入っている環境であれば次のコマンドでインストールすることができる。</p>\n<div class=\"code-block\" data-sourcepos=\"40:1-42:3\"><div class=\"highlight\"><pre class=\"highlight plaintext\"><code>npm install nativefier -g\n</code></pre></div></div>\n<h2 data-sourcepos=\"44:1-44:63\" id=\"3-2-0\" name=\"3-2-0\">\n<a class=\"anchor\" id=\"アプリ化したいアプリのアイコンを用意する\" name=\"%E3%82%A2%E3%83%97%E3%83%AA%E5%8C%96%E3%81%97%E3%81%9F%E3%81%84%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%92%E7%94%A8%E6%84%8F%E3%81%99%E3%82%8B\" href=\"#%E3%82%A2%E3%83%97%E3%83%AA%E5%8C%96%E3%81%97%E3%81%9F%E3%81%84%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%92%E7%94%A8%E6%84%8F%E3%81%99%E3%82%8B\" data-position=\"3-2-0\"><i class=\"fa fa-link\"></i><span class=\"hidden\" data-text=\"アプリ化したいアプリのアイコンを用意する\"> &gt; アプリ化したいアプリのアイコンを用意する</span></a>アプリ化したいアプリのアイコンを用意する</h2>\n<p data-sourcepos=\"46:1-46:300\">Nativefierが対応しているアイコン形式は、Macの場合.icns形式だ。これは自分で用意する必要がある。アイコンを用意しなくてもアプリ化は可能だが、どのアプリもElectronのアイコンになってしまいDock上の見やすさが良くない。</p>\n<p data-sourcepos=\"48:1-48:390\">アイコンを入手する最も簡単な方法は<a href=\"https://www.iconfinder.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Iconfinder</a>で探す方法だ。たとえば、Bitbucketのアイコンなら、<a href=\"https://www.iconfinder.com/search/?q=bitbucket&amp;price=free\" target=\"_blank\" rel=\"noopener noreferrer\">「Bitbucket」で検索し、FREEで絞り込む</a>と無料のものを見つけることができる。提供される画像形式の中から、ICNSを選んでダウンロードするだけだ。</p>\n<figure><a href=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/a10e36f1-2e56-4973-9717-430d305ff037.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img width=\"1022\" alt=\"3.jpg (52.8 kB)\" src=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/a10e36f1-2e56-4973-9717-430d305ff037.jpg\"></a><figcaption>IconfinderではMoreからICNSがダウンロード可能</figcaption></figure>\n<p data-sourcepos=\"52:1-52:141\">.icns形式を探しても見つからない場合は、透過PNG画像があれば、<a href=\"https://iconverticons.com/online/\" target=\"_blank\" rel=\"noopener noreferrer\">iConvertIcons</a>がicns形式に変換してくれる。</p>\n<figure><a href=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/270f9632-393a-45af-8494-8c228157fa4b.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img width=\"1130\" alt=\"4.jpg (27.8 kB)\" src=\"https://c16e-esa-io-public-files.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/15637/2020/05/28/18740/270f9632-393a-45af-8494-8c228157fa4b.jpg\"></a><figcaption>iConverterで変換したicnsファイルをダウンロードする</figcaption></figure>\n<h2 data-sourcepos=\"56:1-56:21\" id=\"3-3-0\" name=\"3-3-0\">\n<a class=\"anchor\" id=\"アプリ化する\" name=\"%E3%82%A2%E3%83%97%E3%83%AA%E5%8C%96%E3%81%99%E3%82%8B\" href=\"#%E3%82%A2%E3%83%97%E3%83%AA%E5%8C%96%E3%81%99%E3%82%8B\" data-position=\"3-3-0\"><i class=\"fa fa-link\"></i><span class=\"hidden\" data-text=\"アプリ化する\"> &gt; アプリ化する</span></a>アプリ化する</h2>\n<p data-sourcepos=\"58:1-58:106\"><code>nativefier</code>コマンドを実行するとアプリが生成される。Bitbucketをアプリ化する例:</p>\n<div class=\"code-block\" data-sourcepos=\"60:1-62:3\"><div class=\"highlight\"><pre class=\"highlight plaintext\"><code>nativefier Bitbucket https://bitbucket.org/ --platform=darwin --arch=x64 --version=0.35.0 --overwrite --badge --icon=bitbucket.icns\n</code></pre></div></div>\n<p data-sourcepos=\"64:1-64:195\">なお、<code>--version</code>はElectronのバージョンを指定する。この最新バージョンは<a href=\"https://github.com/atom/electron/releases\" target=\"_blank\" rel=\"noopener noreferrer\">Electronのリリースページ</a>で確認できる。</p>\n"}},"pageContext":{"id":"DatoCmsPost-5142996-ja","description":"HTML5やJavaScriptでの表現力が非常に高くなった昨今、アプリをウェブだけで提供しているサービスは少なくない。今回はそうしたアプリをあたかもネイティブMacアプリのように変換できるNativefierについて紹介したい。 アプリとブラウザを分けるメリット 仕事をする上で、昨今のブラウザは2つの目的で使われる。 情報収集 特定業務の遂行 1つ目は、情報収集のツールとしてブラウザを使う。知りたいこと分からないことなどをGoogleなどの検索エンジンで検索し、調べ、業務の課題を解決するために使う。2つ目は、特定業務の遂行を目的に使う。例えばチャットツールのChatWorkやチケット管理のR","toc":[{"tag":"h1","depth":1,"href":"#%E3%82%A2%E3%83%97%E3%83%AA%E3%81%A8%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%82%92%E5%88%86%E3%81%91%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88","text":"アプリとブラウザを分けるメリット","html":"アプリとブラウザを分けるメリット"},{"tag":"h1","depth":1,"href":"#Nativefier%E3%81%A8%E3%81%AF","text":"Nativefierとは","html":"Nativefierとは"},{"tag":"h1","depth":1,"href":"#Nativefier%E3%81%A7%E3%82%A6%E3%82%A7%E3%83%96%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92Mac%E3%82%A2%E3%83%97%E3%83%AA%E5%8C%96%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95","text":"NativefierでウェブアプリをMacアプリ化する方法","html":"NativefierでウェブアプリをMacアプリ化する方法"},{"tag":"h2","depth":2,"href":"#Nativefier%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B","text":"Nativefierをインストールする","html":"Nativefierをインストールする"},{"tag":"h2","depth":2,"href":"#%E3%82%A2%E3%83%97%E3%83%AA%E5%8C%96%E3%81%97%E3%81%9F%E3%81%84%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%92%E7%94%A8%E6%84%8F%E3%81%99%E3%82%8B","text":"アプリ化したいアプリのアイコンを用意する","html":"アプリ化したいアプリのアイコンを用意する"},{"tag":"h2","depth":2,"href":"#%E3%82%A2%E3%83%97%E3%83%AA%E5%8C%96%E3%81%99%E3%82%8B","text":"アプリ化する","html":"アプリ化する"}],"ogpImageUrl":"https://www.datocms-assets.com/29850/1593190022-pastedimage20200627146.png?fm=png&mark64=aHR0cHM6Ly93d3cuZGF0b2Ntcy1hc3NldHMuY29tLzI5ODUwLzE1OTMxNTQ2MzYtdHJhbnNwYXJlbnQtcGl4ZWwucG5nP3c9NDAwJmg9NjQmZml0PWNyb3AmYmxlbmQ2ND1hSFIwY0hNNkx5OTNkM2N1WkdGMGIyTnRjeTFoYzNObGRITXVZMjl0THpJNU9EVXdMekUxT1RFNE16TXlPVEF0WVhaaGRHRnlOVEV5TG1wd1p6OXRZWE5yUFdWc2JHbHdjMlVtWm0wOWNHNW5KbmM5TWpVMkptZzlNalUyJmJsZW5kLWg9NjQmYmxlbmQteD0wJmJsZW5kLXk9MCZibGVuZC1tb2RlPW5vcm1hbCZtYXJrNjQ9YUhSMGNITTZMeTloYzNObGRITXVhVzFuYVhndWJtVjBMMzUwWlhoMFAzUjRkQzFoYkdsbmJqMXRhV1JrYkdVbE1rTnNaV1owSm5SNGRDMW1iMjUwUFhOaGJuTXRjMlZ5YVdZbE1rTmliMnhrSm5SNGRDMWpiMnh2Y2oweU1qRTRNVFltZEhoME5qUTlZek5XY0dKbkpuUjRkQzF6YVhwbFBUTXdKbWc5TmpRJm1hcmsteD02NCZtYXJrLWFsaWduPW1pZGRsZSUyQ2xlZnQ&mark-align=bottom%2Cleft&mark-x=100&mark-y=496&blend64=aHR0cHM6Ly93d3cuZGF0b2Ntcy1hc3NldHMuY29tLzI5ODUwLzE1OTMxNTQ2MzYtdHJhbnNwYXJlbnQtcGl4ZWwucG5nP3c9MTIwMCZoPTYzMCZmaXQ9Y3JvcCZtYXJrNjQ9YUhSMGNITTZMeTkzZDNjdVpHRjBiMk50Y3kxaGMzTmxkSE11WTI5dEx6STVPRFV3THpFMU9UTXhOVEE1TkRBdFkzSmhablJ6YldGdUxUQXhMbkJ1WncmbWFyay1hbGlnbj10b3AlMkNjZW50ZXImbWFyay13PTI1MCZtYXJrLXk9ODAmYmxlbmQ2ND1hSFIwY0hNNkx5OWhjM05sZEhNdWFXMW5hWGd1Ym1WMEwzNTBaWGgwUDNSNGRDMWhiR2xuYmoxdGFXUmtiR1VsTWtOalpXNTBaWEltZEhoMExXWnZiblE5YzJGdWN5MXpaWEpwWmlVeVEySnZiR1FtZEhoMExYQmhaRDB4TURBbWRIaDBMV052Ykc5eVBUSXlNVGd4TmlaMGVIUTJORDFVYlVZd1lWaGFiRnB0Ykd4amRVOUNjQzFQUW5GbFQwTnJMVTlDY1hWUFEzQjFUME53TFU5RWJIVlBRMjkxVDBSc0xVOUVjWFZQUTJkMVV6Um5UMkZUWnpBeGFGa3RUME52ZFU5RWJDMVBSSEYxVjAxc2RTMDRaMlZQUkd4MVQwUnhaVTlEY0hWUFEzUjFUMEp4VDA5RGIzVlBSR3d0VDBSeGRVOUNjblZsVlhGUGJVRnNUMDlEYTNWWFNXaDFUMEpyWlU5Q2NIVlROMnhsVXpacExVOURhM1ZYUzNWbFpVOW9MVmROYkhWUFFtd3RUME5wVDA5Q2FHY21kSGgwTFhOcGVtVTlOVFVtZHoweE1qQXdKbWc5TmpNdyZibGVuZC1tb2RlPW5vcm1hbA&blend-mode=normal","otherPost":{"type":"author","title":"1円/時のVPS「DigitalOcean」をコマンドで操作する方法","slug":"/posts/61"}}}}