【オススメ】ソフト開発/エンタメ(余暇)で使用するLinuxアプリ【Debian/elementary OS】

前書き:オススメ?当たり前?

本記事は、読者の皆様にLinuxアプリをオススメするように見せかけた備忘録記事です。

私は、2018年から開発環境(≒普段使いのPC)をMacからLinuxに移行しました。Linux環境に移行した後もDebian → elementary OSと移行を続けていて、開発や余暇で使用するアプリを記録しておく必要性が出てきました。

そこで、本記事では私が頻繁に使用するLinuxアプリをリストアップします。Linuxアプリと言っても、最近はクロスプラットホーム対応アプリやWebアプリの数が増えました。そのため、Windows/Macユーザの方にとっても馴染みのあるアプリが登場します。

                                 

リストから除外するアプリ

ターミナルで使用するCLIコマンド(基本的なコマンド)は、除外します。例えば、git(構成管理)gcc(コンパイラ)ssh(他PCへのログイン)tmux(ターミナル画面分割)fish(shell)sdkman(環境構築ツール)ag(高速版grep)bat(カラフルなcat)等です。

この辺りのコマンドは、書いても書いてもキリがありません。また、私は上記のような基本的なコマンドをMakefileとインストーラスクリプトを組み合わせて環境構築(インストール)しています。つまり、備忘録が不要です(個人的な理由)。

さらに言えば、昔はLinux Kernel開発者のようにターミナルに引きこもる硬派なエンジニアに憧れていましたが、最近はGUIアプリを抵抗なく使うようになりました。「皆さんも使いやすいGUIアプリを知りたい筈」という前提で、アプリをリストアップします。

                               

エディタ/IDE

エディタは、Visual Studio Codeさえあれば十分な印象。

一昔前は、Sublime TextAtomでは痒いところに手が届かなくてNeovimを選択していました。組み込みソフト屋時代は「Neovim最強!」でしたが、最近はVisual Studio Codeの使いやすさに負けて浮気しました。Neovimで多言語対応は辛かった。

アプリ名 説明/所感
Neovim 日本人大好きvim一族。過去4年ほど愛用。私が使うプログラミング言語が増えてからはプラグイン管理の負荷が大きく、使用頻度が低下。
Visual Studio Code 天下のMicrosoft製エディタ。プラグイン管理が楽であり、操作も直感的。ネットでの情報量が多く、動作が軽いのもポイント。稀に、Visual Studio Code内のターミナルでNeovimが顔を出す。
micro シンプルなCLIエディタ。Windowsのメモ帳ポジション。日本語を書く場合とGitのコミットメッセージには、microを使う。
Android Studio Androidアプリ開発向け統合開発環境。
IntelliJ IDEA JVM(Java)系開発向け統合開発環境。有償版か無料版かでSpring FrameやDB周りの機能差あり。個人的にはVisual Studio Codeで十分。

                                            

調査/コード設計/GUI設計/静的解析

基本的には、静的解析、作図、仮想環境、GUI構築ツールをリストアップしています。

コード調査をシステマチックに行いたい気持ちが強いのですが、現状はSourcetrail + コードリーディングで実装を把握しています。そして、GUI設計ではモックアップツールが登場しません。

アプリ名 説明/所感
cloc コード行数カウンタ(CLI)。類似アプリのVS Code Counterよりも気軽に叩きやすい。コード調査時はgit clone → clocがワンセット。 
valgrind メモリ系の静的解析ツール。C/C++でメモリリークしない限り使わない。
cppcheck 冗長な代入やnullチェック等を行う静的解析ツール。C/C++しかチェックできないため、Coverityの代替ツールポジション。
lizard 循環的複雑度を計測する静的解析ツール。複雑度やメソッドの長さに対して警告が出せるため、冗長なコードの検出に役立つ。使用方法の記事はコチラ。
Sourcetrail ソースコード(クラス)の関連性をビジュアライズする静的解析ツール。環境構築がやや面倒な点を除けば、コードを直接読むより処理を把握しやすい。導入方法の記事はコチラ
drawio UML等の作図ツール。図の種類が豊富かつ無料。類似ツール(Visioplantumldia)と比較して、一歩踏み込んだ使いやすさ。
Docker コンテナ仮想化ツール。Linuxがお手軽に立ち上げられる便利さと引き換えに、管理が面倒。コンテナ管理を楽にするはずのコンテナ管理基盤Kubernetesは、私のスキルでは理解が追いつかない。
Virtual Box 仮想化環境。主に仮想化環境でWindowsを立ち上げ、非常識なフォーマットドキュメントを読むために使用。それかランスのため。
VNC Viewer リモートデスクトップ。ラズパイ環境にssh接続できないヤラカシ(主に設定ミス)をした時に使用。サーバ持ちの人が使う印象。
Scene Builder JavaFXを使用したGUIアプリの画面構築で使用。
Glade GTKを使用したGUIアプリの画面構築で使用。
Inkscape ベクター画像エディタ。アイコン作成で使用。

                                                                            

オフィス/ドキュメント系

「Linuxはオフィスツールが弱い」

多くの方が上記の認識だと思いますが、Exactly(その通りでございます)。Microsoft Ofiiceに飼いならされた私達が、同じクオリティ/操作性のアプリをLinuxで見つけるのは至難の業です。似ているアプリはありますが、似て非なるアプリです。

アプリ名 説明/所感
LibreOffice Microsoft Word/Excel/PowerPoint等に相当するオフィスツール。体裁の整えづらいWord、マクロのないExcel、配色が気になるPowerPointといった印象。文字化けや細かい挙動の差に苦しむが、他のLinuxアプリよりマシ。
Google Docs Google版オフィスツール(Webアプリ)。LibreOfficeよりネットの情報量が多い印象。
メール elementary OSデフォルトメーラー。Thunderbirdも使用しましたが、どちらも使いやすさはイマイチ(Outlookに慣れすぎているだけ?)
Slack 人気のあるチャットツール。
Joplin マークダウン形式でToDo、ノートを残せるアプリ。コート調査メモやブログネタを整理するために使用。類似アプリはevernote
Evince PDFビューワー。

                                                         

エンターテイメント(マルチメディア、SNS)

Linuxは、意外とエンタメが弱くないです。

Linux上でGoogle ChromeやFireFoxが動作するため、Webアプリは何でも動きます。例えば、TwitterInstagramAmazon PrimeNetflixYouTubeRedditKomifloが使えます。

これらに加えて、Linuxネイティブアプリを併用すれば余暇を十分楽しめます。強いて弱みを挙げるとすれば、電子書籍とゲーム。間違いなく弱い。

アプリ名 説明/所感
Lollypop ミュージックプレイヤー。数百GBの音楽を取り扱っても落ちず、アーティスト情報や歌詞情報を表示する機能あり。アートワークもDL可能。
Plex Media Server 音楽、動画、写真を配信するためのメディアサーバー。自分の管理するメディアを一元管理できるため便利(最近、有料会員となった)。導入記事はコチラ
Cinema ムービープレイヤー(elementary OSフォルトアプリ)。オススメするほど多機能ではないが、シンプルで分かりやすい。
Photo 写真管理アプリ(elementary OSフォルトアプリ)。雰囲気は、Macの写真アプリに類似。
Steam ゲーム配信プラットフォーム。Linux環境で動作するゲームの配信に力を入れているため、今後に期待。Helltakerが最近面白かった。

                                              

最後に:メインPCがLinuxでも結構大丈夫

「デスクトップPCをLinuxに変更しようかな」と気の迷いを起こしている方は、以下の記事も参考にしてみてください。Linuxデスクトップ環境の強みと弱みがまとめてあります。

元Win/MacユーザがメインPCをLinux(Debian)にした感想

                                                           

おすすめ