- Windows向けのアプリを作りたいけど、どうやるの?
- Windowsアプリを開発するためのプログラミング言語や開発環境って何があるの?
Windows向けのアプリケーション開発に興味があるけど、どうやるか全然分からない方向けに、開発し始める前に知っておくべきことを解説していきます。
この記事を読めば、開発するためにどういうツールが必要か、何の言語で開発することができるかなど、Windowsアプリを開発する前段階のことを知ることができます。
私は、仕事・趣味問わず、作業の効率化、情報収集やデータ分析のために、Windowsアプリをよく作ります。
プログラミング自体は10年以上で、Windowsアプリに関しては5年ほどですね。
これらの経験を含め、これからプログラミングを勉強したい方向けに、Windowsアプリ開発とは何か解説していきます。
目次
Windowsアプリとは?
Windowsアプリ開発は、Windows上で動作するアプリケーションの開発を指します。
ケンさん
みなさんがWindows PC上で使っているMicrosoft Edge, Google Chromeなどのブラウザ、電卓、Officeソフト、メーラーなどのアプリが該当します。
このようなアプリを開発するのが、Windowsアプリ開発ですね。
Windowsアプリ開発には大きく分けると2つに分かれます。
- フォームアプリケーション(GUI)
- コンソールアプリケーション(CUI)
フォームアプリケーション(GUI)
フォームアプリケーションは、ボタンやテキストボックスなどGUIを使って、コンピューターの操作・命令や情報の表示ができるプログラムのことです。
GUI(Graphical User Interface)とは、グラフィカルユーザインタフェースの略で、ボタンなどの視覚的な操作・命令ができるインターフェースのことです。
みなさんが普段使っているほとんどが、フォームアプリです。
普段使っているブラウザなんかにも、URLや検索ワードを入力するためのテキストボックス、設定やブックマークなどのボタンがありますよね。
このように視覚的な操作方法によって、ユーザーが簡単に、かつ、分かりやすく操作できるようになっています。
フォームアプリの特徴は次の通りです。
- ユーザーが操作しやすい
- ユーザーに操作を委ねることができる
ユーザーがアプリを操作する際は、コマンド(文字)による操作より、マウスを使ってボタンを押したり、スクロールしたりする方が、操作が簡単で分かりやすいです。
また、色々な機能を持ったアプリの場合、その機能に対応するボタンなどを用意しておくことで、ユーザーに機能を実行するかどうかを委ねることができます。
このように、ユーザー向けに操作しやすいアプリを開発する場合は、フォームアプリで開発します。
コンソールアプリケーション(CUI)
コンソールアプリケーションは、CUI上で動作するプログラムのことです。
CUI(Character User Interface)とは、キャラクタユーザインタフェースの略で、キーボードなどの文字入力によって、コンピューターの操作・命令ができるインターフェースのことです。
または、コマンドラインユーザインターフェースとも言います。
イメージとしては、映画やドラマでパソコンに詳しい人がハッキングするシーンなどで良く見かける黒い画面にプログラムが実行される感じですね。
コンソールアプリの特徴は次の通りです。
- 決まった一連の処理を実行する
- 自動化がしやすい
- UIを配置しなくて良いので開発が早い
コンソールアプリは、ボタンなどの操作によるユーザーの介入がなく、プログラムの実行から終了まで、ある程度決まりきった一連の処理を行う場合に適しています。
一応、プログラムを一時的に停止して、ユーザーの入力を待つこともできます。
ユーザーに、文字を入力してもらい、入力内容ごとに処理を分岐させることもできますが、あまりそのようなことはしないと思います。
ケンさん
そのため、基本的にはユーザーの操作が不要で、決まりきった処理をしたい場合に使いますね。
決まりきった処理をするので、プログラムを作った後、ユーザーはプログラムを実行するだけでOKです。
Windowsのタスクスケジューラを使うことで、指定した時間に指定したプログラムを実行するように設定できるので、プログラムを定期的に実行したい場合に便利です。
タスクスケジューラで指定した時間に実行できると言っても、パソコンの電源が入っていないと実行できないので、24時間付けっぱなしのPCを用意して、いつでも実行できるようにしたりもします。
ケンさん
また、ボタンなどのGUIの画面開発が不要で、データの処理部分に集中できるので開発が早く済みますね。
Windowsアプリの主要なプログラミング言語
主要なプログラミング言語は次の通りです。
- C#
- Python
- F#
- Visual Basic
開発環境は、Microsoftが開発している『Visual Studio』が一般的ですね。
これで、上記4つのプログラミング言語でアプリを開発することができます。
Pythonに関しては、Visual Studio以外にも色々な開発環境がありますが、私はよくC#でWindowsアプリを作るので、Visual Studioでできるならこれでやってしまおうという感じで使ってます。
ケンさん
C#
Microsoft社が2000年に開発したプログラミング言語で、Windowsアプリ開発でもっとも使われている言語です。
Windows フォームアプリ、コンソールアプリの両方を開発することができる上、個人的にC#は取っつきやすい言語なのでおすすめですね。
書籍やプログラミングスクールは数が少なめですが、ネットの情報が多いですね。
書籍で基本を学びつつ、不足している部分に関しては、ネットで検索しつつできることを増やしていくのが良いかなと思います。
Python
Pythonは、データ分析・AIを得意とするプログラミング言語で、他の言語と比べて、少ないコード量でAIを実装することができます。
データ分析やAIに関するライブラリが豊富に揃っているので、専門的な知識が無くても開発することができます。
基本的に、コンソールアプリ開発が中心になってきますが、フォームアプリも作ることができます。
ケンさん
開発環境は、Visual Studioを使ってプログラムを作っていきますが、もう一つ、『Anaconda』という開発環境も使います。
Anacondaは、データサイエンス、機械学習などのAI、大規模なデータ処理、予測分析などに必要なパッケージ管理を簡単にできるようになります。
パッケージ管理とは、ライブラリなどの導入・削除・バージョンなどの管理のことです。
複数のライブラリを導入する際には、他のライブラリと競合しないように導入してく必要がありますが、通常の開発環境では、競合具合に関係なくインストールします。
ですが、Anacondaであれば、競合具合も判別してくれるので、環境構築が楽になります。
F#
Microsoft社が2005年に開発したプログラミング言語で、C#と同様に、Windows フォームアプリ、コンソールアプリの両方を開発することができます。
正確なデータは無いですが、C#とF#であれば、圧倒的にC#の方が使われている気がしています。
C#に比べて新しい言語ではありますが、Visual Studio 2010から標準開発言語として追加されて約10年ぐらい経ちますが、その割に、書籍やネットの情報量が少ないので、それほど普及していないのかなというイメージがあります。
会社でSEをやっていた時も、C#はちょくちょく使っていましたが、F#は聞いたことも無かったです。
そのため、これからプログラミングを始めるのであれば、C#かなと思います。
Visual Basic
Microsoftが1991年に開発したプログラミング言語で、少し前の言語ですね。
プログラミング言語は定期的にアップデートされますが、最新版が1998年と20年以上も前となっています。
また、開発環境についてはサポートも2008年に終了しています。
一応、Visual Studioでも開発できるので解説していますが、これからWindowsアプリ開発を勉強するのであれば、C#にしましょう。
まとめ:Windows PCを持っているなら取っつきやすい!
プログラミングは、プログラミングを始めるまでの環境構築で挫折してしまうという話を聞くほど、環境開発が難しいものもあります。
Windowsアプリ開発は、基本的にVisual Studioをインストールするだけなので開発環境の構築が簡単です。
必要なものは、Windows PCだけなので、今からでも始めることができます。
C#は、プログラミング初心者の方でも取っつきやすいプログラミング言語だと思うので、まずは、C#から始めてみてはいかがでしょうか。
コメントを残す