最近プログラミングが学習する人が増えてきています。
しかし下のような、悩みを持っている方が多いです。
「Windowsでプログラミングを学んでアプリを開発したいが、どうやって開発するのかわからない」
「Windowsでアプリを開発するには、どのプログラミング言語が良いのかわからない」
そこでIT業界で開発歴15年、実際にWindowsアプリを開発したこともある私が、Windowsアプリ開発に絞って、効率よくアプリを開発する方法をステップ形式で、初心者にもわかりやすく解説したいと思います。
初心者でもアプリ開発者になれる!Windowsアプリ開発の5つのステップ
プログラミングの初心者のあなたが、すんなりWindowsのアプリ開発が行えるように、5つのステップで解説していきます。
用語集
まずWindowsアプリ開発の解説の前に、わかりやすいようにこのような言葉の定義をします。
- Windowsアプリ開発 → WindowsのPCで様々なアプリを開発すること
- デスクトップアプリ → Windowsにインストールして使うアプリケーション
- Webサービス → Webブラウザ等を使用して、インターネット上で動くアプリケーション
- Webサイト → ホームページやブログなど
1.Windowsアプリ開発の目的を明確にする
Windowsアプリ開発を行う前に、最初にWindowsアプリ開発の目的を明確にしましょう。
目的を明確にするのは、Windowsアプリ開発を挫折しないために非常に重要です。
将来プログラミングを身につけると、将来役に立ちそうだ」という曖昧な理由でプログラミングの勉強をはじめる人がいますが、ほぼ間違いなく挫折します。
プログラミングはWindowsアプリを開発する道具に過ぎません。必ずWindowsアプリを開発する目的を決めましょう。
- 必ずWindowsアプリ開発の目的を明確にする
Windowsアプリ開発の目的は、ほとんどが以下の4パターンがほとんどです。
ちなみに私の初心者の頃は、デスクトップアプリを開発してVectorに公開した経験があります。
コマンドプロンプトでTwitterが使えるアプリで、今思うとしょうもないアプリですが、当時は結構話題になりました。
WebサイトやWebサービスを作成したい場合
自分のホームページやブログなどのWebサイト、TwitterやFacebookなどのWebサービスを開発したいケースは非常に多いです。
Webサイトの開発は比較的プログラミング学習の難易度は比較的低いので、初心者には最適です。
具体的にどういったWebサイトやWebサービスを作りたいかアイディアを考えます。
Webサイトの外観やWebサイトの機能などを、ワードやパワーポイントなどにまとめておくと、あとでプログラミングで開発する時にスムーズに開発できます。
デスクトップアプリを開発したい場合
WebサイトやWebサービスをつくるより難易度は高くなりますが、初心者でもきっちり勉強して取り組めば、十分Windowsデスクトップアプリを作ることは可能です。
どういうWindowsデスクトップアプリが良いのか、自分でアイディアを考えておきましょう。
ただ良いアイディアが出ないという悩みもあると思います。
その場合は自分がPCを使っていて、自分が便利だと思っていて、よく使っているアプリと同じ機能のアプリをそのまま開発してみましょう。
私も場合も、最初は便利でよく使っていたアプリと同じ機能を持ったアプリを開発しました。
アプリを開発していくと、「こういった機能があればいいな」「こうすればもっと便利なのに」ということが思いつくの、その部分で元のアプリとの差別化を図りました。
スマホアプリを開発したい場合
iPhone、Androidのスマホなどのアプリを開発開発したいという方も多いと思います。
一昔前はiPhoneアプリはWindowsで開発できなかったのですが、2017年にXamarin(ザマリン)という開発ツールの登場で、iPhoneとAndroid両方に対応したスマホアプリが開発できるようになりました。
スマホアプリ開発の難易度は、デスクトップアプリ開発と同じぐらいです。
デスクトップアプリ開発と同じ要領で、どういうスマホアプリを開発したいかアイディアを考えておきましょう。
プログラミング関係の仕事で稼ぎたい場合
IT業界は2018年現在、人手不足の状況なので、未経験の人がプログラミングを習得しプログラミングの仕事に就いたり、フリーランスのプログラマで稼ぐことが珍しくなくなりました。
ただIT業界は何より実績を重視しており、実績が無いとなかなかプログラミングで稼ぐことは難しいです。
そこで「自分でプログラムを開発してアプリを作った」という実績を作りましょう。
IT業界の開発は、大きく分けて3つの分野があります。
- Web系 → ホームページ作成、Webサービスなどの開発
- 業務系 → WindowsやLinuxなどのPC上で動くアプリの開発
- 組み込み系 → 車、家電などに組み込まれたコンピュータを制御するプログラムの開発
この中で未経験者でも稼ぎやすい分野がWeb系です。
Web系の会社の社員は前職は異業界という人が多く、フリーランスの開発案件もWeb系の案件が断然に多いです。
逆に業務系と組み込み系は、未経験者がいきなり稼ぐのは厳しい状況です。
なのでプログラムの仕事で稼ぐなら、Web系の実績を作った方が良いということになり、ホームページやWebサービスを自分で開発して実績を作っていくことになります。
2.Windowsアプリ開発で使用するプログラミング言語を選ぶ
「プログラミング言語がたくさんあって、Windowsアプリ開発ではどれが良いのかわからない」
どのプログラミング言語が良いのか、目的別でおすすめのプログラミング言語を解説します。
私は初心者の頃は、デスクトップアプリの開発でC#を使用して開発していました。
Webサイトを作成する場合のおすすめプログラミング言語
ホームページなどのWebサイトを作成するには、HTML(エイチティーエムエル)、CSS(シーエスエス)とJavaScript(ジャバスクリプト)の3つのプログラミング言語を習得する必要があります。
このプログラミング言語がおすすめと言うより、Webサイトを作成するにはこの3つのプログラミング言語しかないです。
- HTML 文章の配置、画像、表や動画の位置など、ホームページの構造を決定する言語
- CSS 文字や画像の装飾など、ホームページの見栄えを決定する言語
- JavaScript 画像をアニメーションさせたり、Googleマップを表示させたりと、ホームページにアニメーションなどで動きをつけたい場合に使用する言語
Webサイト作成に3つの言語を利用するので、かなり難しいと思われそうですが、実はHTML、CSS、JavaScriptはあまり習得に難しいプログラミング言語ではありません。
きっちりと勉強すれば、初心者でもこれらのプログラミング言語を習得するのは難しくありません。
Webサービスを開発する場合のおすすめプログラミング言語
Webサービスを開発するには、PHP(ピーエイチピー)というプログラミング言語がおすすめです。
PHPはWebサービスに特化したプログラミング言語で、比較的容易に習得でき、Webサービス開発の分野で最もよく使われているプログラミング言語です。
インターネット上での情報も豊富で、参考書籍もたくさんあり、Yahoo!などの大規模サービスでも導入されているので、PHPはかなりおすすめのプログラミング言語です。
PHPの他にもRuby(ルビー)、Perl(パール)、Java、ASP.netなどがありますが、習得しやすさや人気度を考えるとPHPがおすすめです。
PHP | Ruby | Perl | Java | ASP.net | |
---|---|---|---|---|---|
難易度 | 簡単 | 簡単 | 普通 | 難しい | 普通 |
人気度 | ◎ | △ | ○ | ◎ | △ |
情報量 | ◎ | ◎ | ○ | ◎ | △ |
Windowsデスクトップアプリを開発する場合のおすすめプログラミング言語
デスクトップアプリ開発でおすすめのプログラミング言語は、C#(シーシャープ)です。
C#はマイクロソフトが開発しているプログラミング言語で、C++(シープラスプラス)やJava(ジャバ)などを研究して、それを改良する形で開発された言語です。
初心者でもわかりやすく、使いやすいプログラミング言語になっています。
C#以外にも、VisualBasic.net(ビジュアルベーシックドットネット)というプログラミング言語がありますが、使いやすさや人気度を考えるとC#一択になります。
C# | VB.net | |
---|---|---|
難易度 | 普通 | やや難 |
人気度 | ◎ | ○ |
情報量 | ◎ | ○ |
スマホアプリを開発する場合のおすすめプログラミング言語
スマホアプリ開発のプログラミング言語も、デスクトップアプリと同様にC#がおすすめです。
Xamarinという開発環境上で、C#で記述してスマホアプリ開発を行っていきます。
従来のスマホアプリ開発は、iPhoneの場合はSwift(スイフト)、Androidの場合はJavaで開発を行わなればならず、2つのプログラミング言語を使いこなす必要がありました。
しかしXamarinの登場でC#を習得すれば、iPhoneとAndroid両方のアプリが開発できるようになりました。
プログラミング関係の仕事で稼ぎたい場合のおすすめプログラミング言語
プログラミング言語関係の仕事で稼ぎたい場合は、ホームページ作成やWebサービス開発で実績を作ることになります。
Webサイト作成の場合はHTML・CSS・JavaScript、Webサービス開発の場合はPHPがおすすめのプログラミング言語になります。
フリーランスの業務委託案件プログラミング別の案件数は以下のとおりです。
順位 | プログラミング言語 | 案件数の割合 |
---|---|---|
1 | Java | 29.2% |
2 | PHP | 22.1% |
3 | JavaScript | 10.8% |
4 | Ruby | 9.9% |
5 | Android Java | 4.8% |
6 | Objective-C | 4.8% |
7 | C# | 4.1% |
8 | Swift | 3.6% |
9 | Unity | 2.9% |
10 | Python | 2.3% |
出典:(クラウドテック)[https://crowdtech.jp/]
PHPとJavaScriptがそれぞれ2位と3位で、これらが稼げるプログラミング言語ということになります。
3.選択したプログラミング言語にあわせた開発環境を構築する
プログラミング言語を選んだら、そのプログラミング言語に最適な開発環境を構築していきます。
それぞれのプログラミング言語で定番の開発環境があるので、まずはそれぞれのプログラミング言語最適な開発環境を把握していきましょう。
Visual Studioとは?Visual Studioの特徴
Windowsアプリ開発ではVisualStudioはほぼ必須の開発ツールなので、VisualStudioについて解説したいと思います。
VisualStudioとはマイクロソフトが開発している統合開発環境です。
統合開発環境とは、アプリ開発のための様々なツールが統合された開発ツールのことで、IDEとも呼ばれます。
VisualStudioを使うことで、とても効率よく簡単にWindowsアプリ開発が行えるようになります。
VisualStudioは組織での開発に使用する場合は有料ですが、個人で使用する場合は無料でダウンロードすることができます。
Webサイトを制作する場合の環境構築方法
Webサイトを制作する場合は開発環境構築の他に、Webサーバーを構築しなければなりません。
Webサーバーとは、インターネット上で要求があったユーザーのPCからのリクエストに応じて、文章、画像や動画などを表示させるソフトウェアのようなものです。
Webサーバー構築には、XAMPP(ザンプ)をインストールします。
XAMPPをインストールすることで、自分のPCにWebサーバーが構築されます。
XAMPPは以下から無料でダウンロードできます。
XAMPPのインストール、設定方法は以下を参考にしてください。
HTML、CSS、JavaScriptで、Webサイト作成するには、VisualStudio Codeが最適です。
VisualStudio Codeはとても高機能で、プログラミング入力支援機能は初心者には必須の機能です。
メモ帳などのテキストエディタでも開発できないことはないのですが、開発の効率がぜんぜん違うので、VisualStudio Codeをインストールしておきましょう。
Webサービスを開発する場合の環境構築方法
Webサービスの場合はWebサイトの場合の同様に、XAMPPとVisual Studio Codeをインストールします。
XAMPPをインストールすると、Webサーバーの構築と同時にPHPもインストールされるので、Webサービスの開発ができるようになります。
デスクトップアプリを開発する場合の環境構築方法
デスクトップアプリを開発する場合は、VisualStudioが必要です。
VisualStudioをインストールするだけで、デスクトップアプリを開発する準備ができます。
VisualStudioのダウンロードは、以下からダウンロードすることができます。
Community、ProFessional、Enterpriseの3つのエディションがあり、Communityが無料なので、Communityをダウンロードします。
スマホアプリを開発する場合の環境構築方法
デスクトップアプリ開発と同様に、Visual Studioをインストールします。
注意点はVisualStudioのインストール時の構成で、Xamarinをインストールするように設定してください。
4.プログラミング言語を学習する
開発環境を構築したら、いよいよプログラミング言語を学習していきます。
ここではプログラミングを学習するための、いくつかの方法を紹介したいと思います。
プログラミング学習サイトで学習する
初心者は最初にプログラミング学習サイトで、学ぶのがおすすめです。
動画で丁寧に解説しているので、本で学ぶより断然わかりやすいです。
初心者におすすめのプログラミング学習サイト
初心者におすすめの無料で学習できる、プログラミング学習サイトを紹介します。
ドットインストール
Webサイト、Webサービスが目的であれば、ドットインストールがとてもおすすめです。
HTMLやCSSでWebサイトを作成するための環境構築から、PHPでWebサービスを開発まで、動画でわかりやすく解説しています。
paiza(パイザ)ラーニング
エンジニア転職サイトpaizaが運用している、プログラミング学習サイトです。
プログラミング基礎だけではなく、転職サイトならではの業務でよく使われるプログラミングテクニックなども動画で解説されています。
主なプログラミング学習サイトは以下のようなサイトがあります。
サイト名 | URL | 学習できるプログラミング言語 |
---|---|---|
ドットインストール | https://dotinstall.com | HTML・CSS・JavaScript・jQuery・Ruby・Ruby on Rails・PHP・CakePHP・Java・Swift・C言語・WordPress・Unity |
Progate | https://prog-8.com | HTML・CSS・JavaScript・jQuery・Ruby・Ruby on Rails・PHP・Java・Python・Swift |
paizaラーニング | https://paiza.jp/works | Ruby・Ruby on Rails・PHP・Python・Java・JavaScript・C#・HTML/CSS |
CODEPREP | https://codeprep.jp | |HTML・CSS・Ruby・PHP・jQuery・Bootstrap・Java |
Schoo | https://schoo.jp | JavaScript・PHP・Ruby・Ruby on Rails・Python |
書籍でプログラミングで学習する
本で学習することは、プログラミング言語を学習する基本的な方法です。
本はプログラミング言語学習サイトより深い知識が学べるのがメリットです。
プログラミング学習サイトで学んでプログラミングに慣れてきたら、プログラミング本で学習しましょう。
- ポイント 本を読むだけではなく、必ず自分でプログラミングして動作を確認する
自分でプログラミングすることで、プログラミングの理解が一層深まります。
本を読むだけで理解したつもりでも、実際にアプリ開発をすると、理解不足で全く開発できないということになりかねません。
初心者におすすめのプログラミング本
本で学習する際のおすすめプログラミング本を挙げたいと思います。
プロになるためのWeb技術入門
WebサイトやWebサービスを開発するには、プログラミング言語だけではなく、インターネットやWebサーバーなどの仕組みを理解する必要があります。
この本はインターネットの仕組みについて、全般的にわかりやすく解説されているので、WebサイトやWebサービスを開発するのであればぜひ読んでおきましょう。
デザインの学校 これからはじめるHTML & CSS の本
初心者でもとてもわかりやすく解説された本です。
カフェのWebページを制作しながら、HTMLとCSSを学んでいく実践的な内容で、Webページを制作していく手順がわかってくると思います。
独習PHP
PHPの全体像を一通り解説している本で、Webサービスの開発方法が理解できるようになります。
ただ内容量が500ページ以上とかなり多いので、全部を深く理解しようとすると時間がかかります。
一通りサッと学習してアプリ開発でわからない部分が出てきた場合に、再度詳しくわからない部分を調べるという使い方が良いと思います。
PHP逆引きレシピ
逆引きの本は一冊は持っていたほうが良いです。
PHP逆引きレシピはPHPでどういうことができるのか、サンプルプログラムが一覧として掲載されています。
Webサービス開発でプログラミングに詰まった時、さっと調べることができるので大変便利です。
独習C#
独習PHPと同じタイプの本で、C#のことについて一通り学ぶことができます。
この本も独習PHPと同じでかなりの内容量があるので、全てを理解しようとすると時間がかかり過ぎるので、一通りサッと学習しましょう。
Visual C# 2017逆引き大全 555の極意
PHP逆引きレシピと同じタイプの本で、C#でできることがサンプルプログラムとして掲載されています。
逆引きの本はさっと調べることができて便利などで、実際の開発の現場などでもよく参考に利用されたりしています。
はじめてのVisual Studio 2017
2018年現在では貴重な、VisualStudio2017について解説されている本です。
XamarinでのiPhone、Androidアプリ開発についても解説されているので、スマホアプリを開発する場合には必ず読んでおきましょう。
プログラミング学習でモチベーションが上がらない時はどうする?
プログラミング学習で、モチベーションが下がって挫折する原因は、一度で、全てを理解しようとするからです。
プログラミング学習をしていくと、どうしても理解できない部分が必ず出てきます。
全てを理解するまで、先へ進まないという考え方ではいつまで経ってもアプリ開発を行うことができません。
しばらく考えても理解できない場合は、「プログラミングでこう書けば、こう動くんだな」程度の理解で良いので、どんどん学習していきましょう。
学習していくうちに、徐々にわからない部分も理解できるようになります。
プロのプログラマでも、プログラミング言語の全てを理解しているわけではありません。
わからないところも結構あり、わからないところはその都度調べながらアプリを開発しているのです。
5.プログラミングの目的に従ってWindowsアプリの開発を行う
プログラミングの学習が一通り終えたら、アプリの開発を行っていきましょう。
Webサイトを開発したい場合
Webサイトを開発する場合は、HTML、CSSやJavaScript以外にも、インターネットの仕組みやWebサーバーについても勉強する必要があります。
上記でおすすめした本「プロになるためのWeb技術入門」で、これらを勉強しておきましょう。
Webサービスを開発したい場合
WebサービスもWebサイト開発と同様に、インターネットの仕組みやWebサーバーについて勉強する必要があります。
さらにPHPはWebフレームワークという、Webサービスを効率よく開発できるツールがあります。
CakePHP(ケイクピーエイチピー)がPHPのWebフレームワークとして有名です。
Webサービス開発の際には、Webフレームワークについても勉強する必要があります。
プログラミング学習サイトに、CakePHP入門があるので、それから学習してみましょう。
デスクトップアプリを開発したい場合
デスクトップアプリは、データベースを連携したり、ネットワークで通信したりするアプリ開発することがかなり多いです。
自分が開発したいアプリがデータベースやネットワークを使いのであれば、それらも勉強しておきましょう。
上記で紹介した「Visual C# 2017逆引き大全 555の極意」の本には、データベース連携のサンプルプログラムや、ネットワーク通信のサンプルプログラムを載っているので、まずはそれから勉強してみましょう。
スマホアプリを開発したい場合
スマホアプリを開発する場合も、デスクトップアプリと同様にデータベースやインターネットと連携することが多いので、その分野を勉強する必要があります。
Xamarinについては最近登場したばかりなので、本やインターネットの情報が少ないので、公式ホームページのドキュメントを参考に開発することになります。
プログラミング関係の仕事で稼ぎたい場合
プログラミングで稼ぎたい場合は実績が重要なので、実績を作るためにWebサイトやWebサービスを開発します。
WebサイトやWebサービスを開発したら、これを実績にIT会社に就職・転職を行ったり、フリーランスで仕事を取ったりする必要があります。
転職はpaizaという未経験でも応募できる転職サイトがあります。
ITエンジニア・ プログラマ向け転職・就活・学習サービス paiza
paizaには未経験OKの求人案件があり、paizaでプログラミングテストを受け一定以上のレベルだと認められると、書類選考がパスできる珍しいシステムがあります。
paizaのプログラミングテストを合格して、書類選考がパスして、面接は作成したWebサイトやWebサービスの実績をアピールすれば合格の可能性は高まります。
私の場合は最初は未経験でしたが、独学でWebサービスを作成してこれを実績として、数多くのホームページ制作会社の求人に応募、何とかWebエンジニアになりました。
フリーランスのプログラマで稼ぎたい場合は、クラウドソーシングで未経験でも応募できる案件があるので、それに応募して仕事を獲得します。
有名なクラウドソーシングのサイトはランサーズとクラウドワークスがあります。
実績をアピールして、たくさんのクラウドソーシングの案件に応募すれば、いくつかの仕事は獲得できると思います。
プログラミング開発でつまづいた時はどうする?
- 「Twitter、Facebookと連携するにはどうしたらよいのか?」
- 「画像をカラー画像から、モノクロ画像に変換するのはどうするのか?」
- 「インターネットを経由して、サーバーからファイルをダウンロードしたいけどどうするのか?」
上記のようなプログラミング学習したけど、アプリ開発を始める段階でプログラムを具体的にどう書いてよいのかわからない、ということがよくあります。
この場合は自分が行いたい処理のサンプルプログラムを、インターネットや本から探してみましょう。
アプリ開発はプログラミングの知識よりも、自分で調べて必要な情報を探すことができる調査力が非常に重要です。
例えば、C#でTwtterと連携したい場合は「C# Twitter」と検索してみます。
上の画像の検索結果から、C#でTwitterと連携する場合は「CoreTweet」というものが必要だということがわかりました。
次に「C# CoreTweet」で検索していくつかのサイトを見ると、サンプルプログラムが必ず書かれているサイトがあります。
まずはそのサンプルプログラムを、そのまま自分のプログラムにコピーして動作するか確認しましょう。
自分の環境でサンプルプログラムが動けば、もうこっちのものです。
あとはそのサンプルプログラムを、自分のアプリ向けに改良していきましょう。
まとめるとアプリ開発で、プログラムをどう書いてよいのかわからないことがあったら以下の手順を行ってみましょう。
- インターネットや本から、サンプルプログラムを探す
- サンプルプログラムをコピーして、自分のPCで動かしてみる。
- 動いたサンプルプログラムを、自分のアプリ向けに改良する。
まとめ
Windowsアプリ開発の5ステップは、参考になったでしょうか?
もう一度Windowsアプリ開発の5つのステップをおさらいしましょう。
- Windowsアプリを開発する目的を明確にする
- 最適なプログラミング言語を選ぶ
- 選択したプログラミング言語に合わせた開発環境を構築する
- プログラミング言語を学習する
- Windowsアプリ開発を行う
またアプリ開発で、どうやってプログラミングを書いてよいのかわからずに、挫折することが非常に多いです。
アプリ開発でわからないことがあったら、以下のステップを行ってみましょう。
- インターネットや本から、サンプルプログラムを探す
- サンプルプログラムを、自分のPCで動かしてみる
- 動いたサンプルプログラムを、開発アプリ向けに改良する