趣味のプログラミングでできる18のこと

趣味のプログラミングでできることのイメージ画像 プログラミング
  • 趣味でプログラミングをはじめたいけど、そもそも何ができるの?
  • 趣味でプログラミングして何かメリットあるかなー?

この記事では、このように考えているあなたに向けて「趣味のプログラミングでできること」を紹介します。

「『趣味 プログラミング できること』で検索して他のサイトも見てみたけど、具体的に何ができるのかよくわからない!」

という人も多いでしょう。

そこで、この記事では「趣味のプログラミングで何ができるのか?」を超具体的に紹介します。

この記事を読めば、あなたも「作ってみたいもの」「やってみたいこと」を見つけられるはず。

ITエンジニアである筆者が「実際に作ったことのあるもの」「プログラミング初学者でも簡単に作れそうなもの」だけを紹介するので、安心して参考にしてください。

趣味のプログラミングでできる18のこと

さっそくですが、趣味のプログラミングではどんなものを作れるのでしょうか。

以下の7つのカテゴリに分けて「趣味のプログラミングでできる18のこと」を紹介します。

  1. AIアプリ
  2. ゲーム
  3. WEBアプリ
  4. スマホアプリ
  5. 仕事効率化
  6. IoT・スマートホーム
  7. ARアプリ

ぜひ、興味のあるところから見てください。

AIアプリ

まずは「AIアプリ」です。

いきなり「AIアプリを開発する」というと「難しそう…」と思うかもしれません。

しかし、そんなことはありません。

AIアプリは趣味でも作れます。

なぜなら、AIアプリの中心である「学習アルゴリズム」や「学習済みモデル」は誰でも無料で手に入れることができるからです。

AIアプリを作るためには「最低限のプログラミングスキル」と「入門レベルのAIの知識」があれば十分です。

これらの知識は3〜6ヶ月くらいの勉強で身につけられます。

ここでは趣味のプログラミングでも作れるAIアプリを紹介しましょう。

【趣味のプログラミングでできること①】 チャットボットを作る

チャットボットとは、その名の通り「チャットができるAI」です。

AppleのSiriや、GoogleのGoogle Assistantのようなものですね。

2023年1月現在では、OpenAIが開発しているChatGPTがとても人間らしい回答をするチャットボットとして注目を集めています。

チャットボットの仕組み

チャットボットの基本的な仕組みは「ある文章を受け取ったときに、その回答になりそうな文章を返すプログラム」です。

たとえば、あなたが「こんにちは!」というメッセージを送ったとします。

そのとき、AIが「こんにちは!○○さん!何かお手伝いできることはありますか?」と返してきたら、会話として成立しますよね。

このように、受け取ったメッセージに対して、できるだけ自然な文章を作って返すようなシステムをプログラミングをするのが「チャットボットを作る」ということです。

初歩的なチャットボット

初歩的なチャットボットの仕組みはとてもカンタンです。

  1. まず、受け取ったメッセージの中から「特定のキーワード」を探します。
  2. キーワードが見つかったら、それに合う文章を返します。

たとえば、「こんにちは」という単語が含まれていたら「こんにちは!今日はいい天気ですね」と返すチャットボットを考えてみましょう。

  1. ユーザーからメッセージを受け取ったら、AIは「こんにちは」というキーワードを探します。
  2. メッセージに「こんにちは」が含まれていたら、AIは「こんにちは!今日はいい天気ですね」と返します。

これで、初歩的なチャットボットの完成です。

このように、受け取ったメッセージからキーワードを探し、事前に用意した「キーワードに一致する文章」を返すようにプログラミングするだけで、チャットボットを作ることができます。

簡単そうですよね?

ユーザーのメッセージキーワードチャットボットの返答
こんにちはこんにちはこんにちは!今日はいい天気ですね
「好きな食べ物はなんですか?」食べ物好きな食べ物はハンバーグです!
何歳ですか?」何歳私は20歳です!
性別は?」性別私はAIなので性別はありません。
キーワードに反応するチャットボットの例

しかし、これだけではすべてのメッセージに対して適切に回答することはできません。

膨大な数のキーワードに対する返答を用意しなければなりませんし、ひとつのメッセージに複数のキーワードが含まれていることもあります。

ユーザーから送られたメッセージがただのつぶやきなのか、質問なのかも判断できません。

ユーザーのメッセージキーワードチャットボットの返答適切/不適切
僕の好きな食べ物は、お寿司です食べ物好きな食べ物はハンバーグです!不適切
僕の好きな食べ物は、お寿司です食べ物へえ、そうなんですね。美味しいですよね適切
キーワードに反応するチャットボットの適切/不適切な返答

このように初歩的なチャットボットは作るのはカンタンですが、これだけだと返答がいまいちになってしまいます。

もっとチャットボットの性能を上げるにはどうすればいいのでしょうか。

チャットボットの性能を上げるには?

さて、チャットボットの性能を上げるために「AIモデル」を使ってみましょう。

先ほど紹介した「初歩的なチャットボット」はキーワードに反応しているだけなので、メッセージの文脈を読めていませんでした。

AIモデルを導入すると「文脈を読んで回答する」チャットボットを作ることができます。

どうしてAIが文脈を読めるのか?については、難しい話なので説明しませんが、AIモデルはオープンソースのライブラリ(無料で公開されているプログラム。TensorFlow, PyTorchなど)を使うことで誰でも利用できます。

※どういう仕組みで文脈を読めるのかについて詳しく知りたい方は「自然言語処理」「Attention」「Transformer」「BERT」「GPT」などの単語で検索して調べてみてください。ただし、かなり難しい内容になりますのでわからなくても気にしなくて大丈夫です

AIチャットボットを作るには?

それでは、AIチャットボットを作るには何からはじめればよいのでしょうか?

実は、プログラミング初学者向けに「AIチャットボットを作ってみよう」というテーマで書かれた入門書やサイトがたくさんあります。

そういった本を参考にプログラミングをはじめるとよいでしょう。

具体的な手順は以下です。

  1. プログラミング言語「Python(パイソン)」を学ぶ
  2. 以下のような本を参考にチャットボットを作る

Pythonは初学者でも学びやすいプログラミング言語です。カンタンに使えるにもかかわらず、AIの開発やデータの分析など高度なこともできます。

まずは、Pythonの基本的なことを学んで、その後、以下のような書籍を頼りにチャットボットの作り方を学ぶのがオススメです。

【趣味のプログラミングでできること②】 画像の自動仕分け

「画像を自動仕分けするAIアプリ」もカンタンに作れます。

具体例として、洋服や靴、バッグなどの画像をAIで分類する例が参考になります。

この例のように、複数枚の写真から洋服のカテゴリ学習して、新しい写真を自動で正しいカテゴリに分類するAIアプリを作ることができます。

どうしてこのようなことができるのでしょうか?

AIが得意なことの1つに「データから特徴的なパターンを見つけ出すこと」があります。

上の例でいえば「靴の写真は画像の下半分が白くなりがち」とか「ズボンの場合は写真の中央に縦長の白い領域ができがち」といった特徴があります。

AIは、こういった特徴をもとに写真を機械的に仕分けることができるのです。

このような「写真を自動分類するAIアプリ」も無料で公開されているプログラムを活用することで、カンタンに作れます。

プログラミングを勉強しはじめてから3ヶ月〜半年もあれば作れるようになるでしょう。

これを応用すれば、趣味で撮った写真やイラストを分類するアプリも作れますね。

画像分類AIアプリを作るには?

画像分類AIアプリを作るには、以下のことを学ぶ必要があります。

  1. プログラミング言語「Python(パイソン)」
  2. 画像分類AIの実装方法

AI開発のためのプログラミング言語として「Python(パイソン)」があります。

Pythonは初学者でも学びやすく、AIの開発に最も向いています。

まずはPythonを学び、その後、以下のような本を参考にして「画像分類AI」を作るのがオススメです。

【趣味のプログラミングでできること③】 文書の自動分類

「文書を自動分類するAIアプリ」も比較的カンタンにつくれます。

画像に特徴的なパターンがあるように、文書にも特徴的なパターンがあります。

たとえば、スポーツのニュース記事では「サッカー」「野球」などの具体的なスポーツ名や「勝利」「得点」などのキーワードが頻出します。

一方、同じニュース記事でも、政治のニュース記事では「国民」「政権」などのキーワードが出現回数が増えるでしょう。

AIモデルを使ってこのような特徴をつかみ、文書を自動分類するアプリをつくることができるのです。

文書分類AIアプリを作るには?

文書分類のAIアプリを作るには、以下のステップで学習を進めましょう。

  1. プログラミング言語「Python(パイソン)」を学ぶ
  2. 文書分類AIの実装方法を学ぶ

まずは、Python(パイソン)を使ったプログラミングを学びましょう。

その後で、AIの入門レベルの知識を学び、AIアプリ開発に着手すると効率がいいです。

文書分類AIを作るために本を探すときは「自然言語処理」をキーワードに本棚を探してみてください。

Pythonで作れる本がいくつか見つかります。

それらの中で、読みやすそうなものを選ぶとよいです。

【趣味のプログラミングでできること④】 株価の予測

趣味のプログラミングで「AIアプリ」を作るとき、もっとも面白いテーマは「将来の株価を予測するAIアプリ」を開発することです。

株価を予測するAIとは?

AIとは、膨大なデータからパターンを発見し推論する技術です。

これを応用すれば、過去の株価のデータから将来の株価を予測するシステムを作ることができます。

株価の変動はランダム性が大きいため「完璧な予測は不可能」といわれていますが、変動の周期性やトレンドからおおよその当たりをつけて、機械的な売買の判断をすることできます。

もちろん、AIを使ったからといって、必ずしも儲けにつながるわけではありませんし、精度の高いAIを作るには高度な知識とたくさんのデータが必要になります。

しかし、作ってみること自体はかなり面白いです。

作っていくうちに株の売買にも詳しくなります。

ただし、株価を予測するAIを作って株を売買をした結果、損失を被っても自己責任になるので注意しましょう。

また、自動売買をする場合は法律や証券会社の規定するルールを遵守しましょう。

株価を予測するAIアプリを作るには?

株価を予測するAIアプリを作るには、少なくとも以下のスキル・知識が必要です。

  1. プログラミングスキル(Python)
  2. 時系列データに関する知識

まず、AIアプリを開発するためにプログラミングスキルが必要です。AIの開発にはプログラミング言語のPython(パイソン)を使うのが一般的です。

Pythonは初学者にも扱いやすく、AI開発に必要なプログラム(ライブラリ)が充実しています。

プログラミングスキルに加えて、時系列データについての知識も必要です。

時系列データとは「時間の変化が重要なデータ」のことです。

株価は時間の変化に伴って変動します。

その変動は、周期性のあるものや不規則なもの、季節性のあるものなど様々です。

株価を予測するAIアプリを作るには、このような時系列データについての知識が不可欠です。

以上をふまえ、まずはプログラミング言語のPythonを学ぶことから始めましょう。

Pythonの基本を学んだ後、次のような本を参考にすることで、株価を予測するAIアプリの開発をはじめられます。

他のAIアプリ開発に比べ、株価を予測するAIアプリの開発は難易度が高いですが、それだけ面白い分野でもあります。

少しでも興味を持ったら、ぜひ取り組んでみてください。

ゲーム

ゲームを作ることも趣味のプログラミングでできることとして面白いテーマです。

作ったゲームは自分でも遊べますし、友達や家族にも遊んでもらえます。

作ったゲームを人に遊んでもらえるとプログラミングのモチベーションが上がります。

ゲーム開発にはアイデアが必要になるため、アイデアを考えるのが得意な人には特に向いています。

また、アイデアがなくても古典的なゲーム(テトリスやインベーダーゲーム)を参考に作ってみるだけでも楽しめます。

ゲームには2Dと3Dの2種類があります。それぞれ、作るために身につけるべきスキルが少し異なります。

それぞれ見ていきましょう。

【趣味のプログラミングでできること⑤】 2Dゲームの開発

2Dゲームは高価なパソコンがなくても作れるため、趣味のプログラミングでも取り組みやすいテーマです。

2Dゲームとは?

2Dゲームとは、2次元の平面上をキャラクターやオブジェクトが動くゲームのことです。

テトリスやスペースインベーダーのようなゲームです。

後に紹介する「3Dゲーム」と比べて、立体的な動きを考える必要がなく、処理性能の低いパソコンでも作ることができます。

2Dゲームを作るには?

2Dゲームを作る方法は、いくつかありますが、以下の2つが趣味のプログラミングで取り組むのにオススメです。

  1. Unityを使って開発をする
  2. JavaScriptを使ってWEBブラウザで動くゲームを作る
Unityで作る場合

Unity(ユニティ)は、 ゲーム開発のためのプラットフォームです。 アメリカの企業、ユニティ・テクノロジーズが開発したソフトウェアで、プログラミング初学者でも簡単にゲームを作れます。作り込み方次第で商用の本格的なゲームを作ることもできます。

Unityは2Dと3Dの両方のゲームを作ることができます。

Unityでゲームを作る場合は、Unityの使い方とプログラミング言語のC#(シー・シャープ)を覚えなければなりません。C#は初学者にはやや難しい言語かもしれません。

しかし、言語の壁さえ乗り越えれば、ゲーム開発にはUnityが断然オススメです。

Unityで2Dゲーム開発をはじめるならUnity公式の初心者向けチュートリアル集から面白そうなゲームを選んで作ってみるのがいいでしょう。あるいは、以下のような「Unityで2Dゲームを作ること」に特化した書籍を参考にするのがオススメです

公式のチュートリアル集は3Dゲームが多いため、以下のような書籍が着手しやすいかもしれません。

JavaScriptを使ってWEBブラウザで動くゲームを作る場合

JavaScript(ジャバ・スクリプト)とは、WEBブラウザで動くプログラミング言語で、主にWEBアプリケーションの開発に使われています。

WEBブラウザとは、インターネットでサイトを見るために使うソフトウェアで、いままさにあなたが使っているアプリです。

有名なWEBブラウザとしては、GoogleのChrome(クローム)や、AppleのSafari、MozillaのFirefoxなどがあります。

JavaScriptを使えば、このようなWEBブラウザを使って遊べるゲームが作れます。WEBブラウザは、ほとんどのパソコンやスマホに入っています。そのため、わざわざゲームをインストールしてもらわなくても、作ったゲームで遊んでもらえます。

JavaScriptで2Dゲームを作るなら、以下のようなJavaScriptとゲーム開発を同時に学べる書籍にしたがうと効率がいいです。

2Dゲームを作るにはUnityとJavaScriptのどっちがいい?

さて、趣味のプログラミングで2Dゲームを作るには「Unity」か「JavaScript」のどちらを選ぶのがいいでしょうか。

もし、将来的にゲーム作りに専念したいならUnityがオススメです。商用のゲーム開発ではUnityは定番に使われています。また、2Dゲームだけでなく3Dゲームも作ってみたい場合もUnityを学ぶほうがいいです。Unityでは3Dデータの扱いが簡単だからです。

反対に、「ゲーム作りに専念したいってほどではないけど、せっかくプログラミングを学ぶならゲームを作るのがいいかなあ…」という気持ちなら、JavaScriptをオススメします。JavaScriptはゲーム開発以外にも汎用的に使えますし、UnityやC#を学ぶよりも簡単に学べます。

また、JavaScriptを使う場合は、パソコンの性能が低くても問題ありません(Unityはあまり安価なパソコンだと動作が重くなる場合があります)。

どちらにしようか迷っているなら、まずはJavaScriptでゲームを作る方向で試してみましょう。それで退屈するならUnityを試してみるといいかと思います。

【趣味のプログラミングでできること⑥】 3Dゲーム

3Dゲームの開発も趣味のプログラミングでやるのに面白いプロジェクトです。

3Dゲームとは?

3Dゲームとは、3次元の空間をキャラクターやオブジェクトが動くゲームです。

最近の流行りのゲームはほとんど3Dですから、説明するまでもないかもしれません。

3Dゲームは、2Dゲームよりもダイナミックで迫力があり、作っていても退屈しません。

3Dゲームを作るには?

3Dゲームの開発には「Unity(ユニティ)」か「UnrealEngine(アンリアル・エンジン)」を使うのが一般的です。これらは、どちらも3Dゲームを開発するためのソフトウェアです。

趣味のプログラミングで3Dゲームを開発するなら、Unityがオススメです。

Unityはゲーム開発のためのソフトウェアとして世界一のシェアを持っていて、使い方に関する情報も多く、プログラミングの初学者でも始めやすいためです。

UnrealEngineは、グラフィックが非常に美しいことが特徴ですが、開発はやや難しく、趣味のプログラミングでUnrealEngineからはじめるのはオススメできません。UnrealEngineでの3Dゲーム開発には、C++(シー・プラス・プラス、シープラ)という言語を使うのですが、こちらも初学者にはかなり扱いにくい言語です。

3Dゲームを開発しようと思ったら、まずはUnity公式の初心者向けチュートリアル集から作ってみたいものを選んではじめてみましょう。本格的なゲームを手軽に作れるため、楽しく続けられると思います。

Unity初心者向けチュートリアル集 - Unity Learn
Unityを学ぶための入門用チュートリアル集です。PCとUnityがあれば、どなたでもチュートリアルを使ってゲーム開発を体験することができます。 順番に体験する必要はないので、あなたが興味を持ったものを試してみましょう。どれがいいかわからないなら「玉転がし」チュートリアルが初心者におすすめです。

WEBアプリ(WEBサイト)

趣味のプログラミングで取り組めるテーマのうち、もっとも始めやすいのが「WEBアプリ開発」です。

WEBアプリとは「WEBアプリケーション」の略で、WEBブラウザで動くアプリを指します。

WEBブラウザとは、インターネットのサイトを見るためのソフトでGoogleのChromeや、AppleのSafari、MozillaのFirefoxなどのことです。

WEBアプリは、このようなWEBブラウザで動くアプリを指します。

たとえば、Google検索はWEBアプリのひとつです。また、あなたがChromeやSafariでYouTubeを見ているなら、そのYouTubeもWEBアプリです。他にもWEBブラウザで見ているAmazonやTwitterもWEBアプリです。

WEBアプリならやりたいことが何でもできる!?

WEBアプリ開発のいいところは、プログラミング初学者でもカンタンにおもしろいものを作れる点です。

たとえば、音声や動画をアプリに埋め込んだり、アニメーションを作ったりするのもカンタンです。カメラやマイク、位置情報を使ったアプリも楽々つくれます。

WEBアプリは、WEBブラウザで使えるアプリなので、一度つくれば、パソコンからもスマホからもアクセスできます。

作ったアプリをインストールする必要がなく、リンク(URL)を共有するだけで誰でもすぐに使える、便利なアプリを作れます。

このように面白いものが手軽に作れて、作ったアプリを友達や家族に使ってもらいやすいので、プログラミングのモチベーションが上がりやすく、続けやすいのもいいところです。

それでは、趣味のプログラミングでどんなWEBアプリを開発できるのか、具体例を見てみましょう。

【趣味のプログラミングでできること⑦】 Twitter風のSNSアプリ開発

全世界の人々のつぶやきがリアルタイムで見られるTwitterですが、実はこれ、意外とカンタンに作れます。

もちろん、4億人のユーザーの投稿をリアルタイムに表示するTwitterアプリを趣味で作るのは不可能ですが、2〜3人くらいで使えるTwitter風のSNSアプリなら、2〜3ヶ月もあればプログラミング初学者でも作れます。

実際「Twitter クローン 開発」というキーワードでGoogle検索すると「プログラミング初心者がTwitter風のアプリを作った」という内容の記事や「Twitterクローンの作り方」の記事がたくさんヒットします。

インターネット上にたくさんの情報があるので、はじめてのプログラミングでこういうものを作ってみるのは挫折しにくくオススメです。

【趣味のプログラミングでできること⑧】 Instagram風のSNSアプリ開発

Twitterクローンと同様に、Instagram風のSNSアプリも意外とカンタンに作れます。

Twitter風アプリと異なるのは「画像がメイン」になる点です。

テキストを扱うよりも、画像を扱うほうが少しプログラミングの難易度が上がります。

とはいえ、作り応えはありますし、画像のほうが見栄えもする(ばえる)ので面白いです。

Twitter風のアプリを作った後に、Instagram風のアプリを作ってみるのも勉強としてもいいと思います。

【趣味のプログラミングでできること⑨】 趣味のホームページ作り

「いきなりTwitterやInstagramなんてハードルが高い!」という方は、趣味のホームページ作りからはじめてみるのもいいです。

TwitterやInstagram風のアプリでは、使う人からの「投稿」機能を作らなくてはいけません。投稿機能を作るのは、プログラミングの初学者には少し骨が折れる作業になります。

しかし、ホームページなら投稿機能が必要ありません。一方的に、情報を見せるだけだからです。

投稿機能がない「一方的に見せるだけ」のWEBアプリ(ホームページ)は、特にカンタンに作れます。

まずはホームページ作りから始めてみて、慣れてきたら投稿機能を持ったWEBアプリを作るとスムーズにステップアップできます。

WEBアプリを作るには?

さて、趣味のプログラミングでWEBアプリを作るには、以下のスキルが必要です。

  1. HTML/CSSのコーディングスキル(必須)
  2. Ruby, PHP, Pythonなどのプログラミングスキル(必須)
  3. JavaScriptのプログラミングスキル(任意)

まず、HTML/CSSという言語を習得する必要があります。WEBアプリを作るためにはこの知識は必須ですが、HTML/CSSはとてもカンタンなので1ヶ月もあれば習得できます。

HTML/CSSを学んだあとは、WEBアプリを作るのに適したプログラミング言語を学びます。WEBアプリを作るには、Ruby(ルビー)PHP(ピーエイチピー)Python(パイソン)などのプログラミング言語を使います。

※どの言語を選んでもいいのですが、プログラミングスクールでは、Rubyを使う場合が多いようです。PHPはちょっと古い感じがします。個人的なオススメはPythonです。WEBアプリ開発だけでなく、AI開発やデータ分析、作業の自動化、IoT機器の開発など他の用途にも使いやすいからです。

いずれかの言語を学んだ後に、プログラミング言語に合った「WEBアプリケーションフレームワーク」というシステムについて学びます。WEBアプリケーションフレームワークとは、WEBアプリの開発をカンタンにしてくれる便利なプログラム群です。

以上、ここまでの知識(①HTML/CSS、②プログラミング言語、③フレームワーク)でWEBアプリを開発できます。

追加で「サイトに動きをつけたい場合」や「よりモダンなアプリに仕上げたい場合」は、JavaScriptと「React」「Next.js」といったライブラリ/フレームワークについて追加で学びます。

以上をふまえて、趣味でWEBアプリを作るなら以下のような書籍を読み、手を動かしながら学ぶのがオススメです。

HTML/CSSとプログラミング言語、およびWEBフレームワークのすべてを1冊で学ぶことができます。

こういった書籍には「初学者向け」と「プロ向け」があり、初学者向けの本はプロから酷評されがちですが、下記の書籍で必要なことは学べます。

1冊買って、全体的な流れは書籍に従いつつ、わかないところを適宜インターネットで調べればスムーズに学習を進められます。

なお、プログラミングの基礎をしっかり固めてからやりたい方や、最初からあまりお金をかけたくない方はProgateのようなオンラインのプログラミング学習サービスを使ってみるのもオススメです。

スマホアプリ

スマホアプリ開発も趣味のプログラミングで取り組むのにオススメのテーマです。

スマホは誰でも持っていて使い慣れているため、アプリ開発のイメージも持ちやすいでしょう。

スマホアプリには「iOSアプリ」と「Androidアプリ」があり、それぞれ作り方が異なります。

あなたがiPhoneを持っているならiOSアプリを、Androidスマホを持っているならAndroidアプリを作ることになります。

ちなみに「スマホで使えるアプリ」という意味では、WEBアプリ開発でもほとんど同じものが作れます。たとえば、YouTubeはスマホ版もWEB版もありますよね?実は、WEBアプリとして開発するほうがスマホアプリより作りやすい場合が多いのです。しかも、WEBアプリなら、iPhoneでもAndroidでもほとんど同じように動きます。

あえてスマホアプリとして開発する利点は、インターネットにつながなくても動くアプリが作れるということです。日記や写真などのデータをスマホの中だけに留めておきたい(インターネット上にアップロードしたくない)場合は、スマホアプリとして作るのがいいでしょう。

また、iPhoneの端末の一部の機能(Lidarスキャナなど)は、スマホアプリでしか使えない場合があるため、そういった機能をアプリで使いたい場合はスマホアプリとして作る必要があります。

【趣味のプログラミングでできること⑩】 自分専用の生活記録アプリ

はじめてつくるスマホアプリとしてオススメしたいのは、自分専用の生活記録アプリです。

食事や睡眠などの記録、勉強したこと、読んだ本、持っている洋服、旅行の思い出など、生活の記録を残すアプリです。

記録アプリを作ると、データの「入力」「更新」「表示」「削除」といった基本機能の開発方法を覚えることができます。

作ったその日から自分で使うことができますし。自分が使う想定で作れば開発もスムーズです。

写真や音声なども保存できるようにするといっそう面白くなりますし、プログラミングスキルも向上します。

【趣味のプログラミングでできること⑪】 英単語などの勉強アプリ

趣味でスマホアプリを開発するなら、実用性があるものがいいですよね。

それなら、単語帳アプリのような勉強に使えるアプリをつくってみると面白いかもしれません。

事前に登録した英単語とその日本語訳の選択肢をいくつか表示して、クイズのように答えるアプリはカンタンに作れます。

カンタンに作れますが、スマホアプリの開発に必要なスキルは身につくので、勉強になります。

スマホアプリの開発スキルも得られて、英単語の勉強にもなって一石二鳥です。

【趣味のプログラミングでできること⑫】 SNOWみたいな加工機能のあるカメラアプリ

SNOWのような写真を加工する機能のあるカメラアプリの開発も、趣味のプログラミングで作るのにオススメです。

他のスマホアプリよりは少し開発の難易度が上がりますが、写真のぼかしや色変更などは意外とカンタンにつくることができます。

カメラアプリは友達や家族と使っても面白いし、作ったら「すごいね!」とほめてもらえること間違いなしです。

使いながら作れるため進捗がわかりやすく、開発モチベーションを高く保てるのでオススメです。

スマホアプリを作るには?

スマホアプリを作るには、iOS(iPhone)アプリをつくるのか、Androidアプリを作るのかをはっきりさせます。iOSはAppleが開発しており、AndroidはGoogleが開発しているので、それぞれのアプリの開発にはまったく異なる知識が求められます。

iPhoneを持っているならiOSアプリを、Androidを持っているならAndroidアプリを作りましょう。両方持っている場合は、新しい方のスマートフォンに合わせるといいです。

iOSアプリを作る場合

iOSアプリは「Xcode(エックスコード)」というソフトウェアとプログラミング言語の「Swift(スウィフト)」を使って開発するのが一般的です。

Xcodeは、macOSが使える「MacBook(Air/Pro)」「iMac」などの端末でしか使用できません。

オーソドックスな方法でiOSアプリを開発するには、これらの端末が必要になります。

もし、Windowsしか持っていない場合は、Xamarin(ザマリン)というソフトウェアを使えばiOSアプリを作ることができます。この場合、プログラミング言語は「C#(シー・シャープ)」を使います。

ただし、Xamarinを使って開発してもアプリのリリースにはmacOSが必要になります。

そのため「Windowsしか持ってない!」という場合は、Xamarinで頑張ってiOSアプリを作るよりも「WEBアプリとして開発→iPhoneで使う」という方針にしたほうが、趣味のプログラミングとしてはやりやすいです。

さて「iPhoneもMacBookも持ってるよ!」というラッキーな方は、Swiftを使ったiOSアプリの開発を覚えましょう。

iOSアプリ開発の本を買えば、SwiftもXcodeも作りながら学べます。

Swiftは「iOSアプリ開発のための言語」といっても過言ではないので、アプリ開発のための本を読んで作りながら学ぶのが正攻法です。

特にコツなどもないため、まずは、こういった入門書にしたがって作るのがオススメです。

Androidアプリを作る場合

Androidアプリを作る場合は、Android Studioというソフトウェアを使います。

プログラミング言語としては「Kotlin(コトリン)」または「Java(ジャバ)」のどちらかを使います。

Kotlinは、2019年にGoolgeによって「Androidアプリ開発の推奨言語」として指定された言語です。Javaよりも書きやすく、シンプルで、プログラミング初学者にも向いています。

Javaは20年以上前からある言語で信頼性はあるものの、プログラミング初学者には難しい部分もあります。

そういうわけで、趣味でAndroidアプリを作るならKotlinを使うのが断然オススメです。

Androidアプリを開発するには、まずAndroid Studioをインストールします。

それからAndroid公式のコースを参考にしてアプリ開発をはじめてみましょう。

公式のコースが難しいと感じる場合は、以下のようなKotlinに対応したAndroidアプリ開発の入門書を読んでみましょう。

入門書を買うときは、言語がJavaなのかKotlinなのかをよく見て買いましょう。

仕事の効率化

これを読んでいるあなたが「ITエンジニア以外の職種」かつ「パソコンを使うことが多い」なら「仕事効率化」のためにプログラミングを覚えることをオススメします。

仕事中にインターネットで情報収集したり、エクセルやワードを使ってデータの整理をしたりすることがあると思います。

そんなとき「作業量多いなあ」「時間がかかるなあ」と思うことがありませんか?

プログラミングができれば、そんな面倒な作業を効率化して100倍早く終えることができます。

そうすれば、定時で退社しつつ、いまよりもっと仕事の評価を上げられます。

【趣味のプログラミングでできること⑬】 インターネットの情報収集を自動化(スクレイピング、クローリング)

プログラミングを覚えるとインターネットの情報収集を自動化・効率化できます。

インターネットで情報収集するときは、GoogleやYahoo!のような検索エンジンか、TwitterやInstagramのようなSNSを検索しますよね。

検索では「①いくつかのキーワードを使ってサイトを検索し」「②サイトや投稿をひとつひとつ見て」「③必要な情報を抽出する」という手順を踏まなくてはいけません。

調べることがたくさんある場合、たくさんのサイトを片っ端から見ていかなくてはならず、時間がかかります。

プログラミングを使うと、このような作業を自動化して、高速に行うことができるのです。

そのための技術として「スクレイピング」や「クローリング」があります。

スクレイピング(scraping)とは、あるサイトからテキストや画像などのデータを抽出する技術です。スクレイピングには英語で「削る」という意味があります。特定のWEBページから必要な情報を削り取ってくるイメージです。

クローリング(crawling)とは、あるサイトのデータを定期的に取得して、保存しておく技術です。クローリングは英語で「這う」という意味がありますが、複数のサイトを這うようにして訪問し、機械的に情報を集めてくるイメージです。

スクレイピングとクローリングを合わせて使うと、ブログやニュースサイトから定期的に必要な情報だけを抜き出すことができます。

何が便利なのかを理解するために具体例を示しましょう。

たとえば、あなたがIT企業の営業担当でこれから新規顧客を開拓し、新しいソフトウェアを売り込もうとしているとします。

このとき、あなたは以下の2つの目的で情報収集しなくてはならないとしましょう。

①競合他社が販売している製品の調査

②売り込みたい業界の最新の動向

まず、①について、競合製品のホームページのURLのリストを持っているとします。リストの中身は30件です。30件の競合製品のすべてのホームページにアクセスして「製品価格」「特徴」「機能一覧」「導入企業」「導入先業界」などを調べ上げなくてはなりません。手作業ではなかなか大変ですよね。

このとき、スクレイピングの技術を使えば、30件すべてのホームページから必要な情報だけを機械的に収集することができます。プログラムを使ってアクセスするため、ひとつひとつのホームページを目視で見る必要がありません。

一度プログラムを書いてしまえば、30件のホームページから必要な情報を集めるのにかかる時間は数秒〜数十秒です。ホームページが更新されても、再度収集するのにかかる時間は同じですし、集めた情報はエクセルやcsvファイルに出力して、自動的にまとめられます。

プログラムを書くのに時間はかかりますが、慣れれば30分くらいで作れます。

次に、②について、売り込みたい業界の最新動向を毎週集めたいとします。これにはクローリングの技術が役に立ちます。クローリングは、複数のサイトを周期的に訪問して、必要な情報を集める技術です。

業界の最新動向について発信しているブログやニュースサイトのURLをいくつか集めてリストにしておきます。週に1回、集めたURLのすべてのサイトをプログラムで機械的にアクセスし、新しい情報だけを集めてエクセルにまとめることができます。あなたは、たくさんのサイトの情報がまとまったエクセルファイルを眺めるだけで、業界の動向を把握できます。

こういったプログラムも慣れれば30分〜1時間くらいで作成できます。

一度、プログラミングしてしまえば、あとはプログラムが勝手に情報収集してくれるので、同じ仕事を何度もやる必要がありません。これで情報収集を効率化できます。

スクレイピングやクローリングのプログラムを作るには?

スクレイピングやクローリングのプログラムを作りたいなら、まずはPythonのプログラミングを学ぶのが効率的です。

プログラミング言語のPythonには、スクレイピングやクローリングをするための便利な機能が充実しています。

最近は仕事の効率化をテーマにしたPythonの書籍もたくさん出ているので、それらのひとつを手にとって試してみるといいでしょう。

以下の書籍は、ノンプログラマー(プログラマーでない人)のために書かれた自動化処理の本です。内容が面白く、楽しみながら仕事効率化のためのプログラミングを覚えることができます。

【趣味のプログラミングでできること⑭】 Chrome拡張機能の開発

ITエンジニアの多くはWEBブラウザにこだわりを持っています。WEBブラウザの使い方次第で、仕事の生産性が大きく変わるからです。

趣味のプログラミングでも「WEBブラウザを便利に使う方法」を学ぶことができます。

「Chromeの拡張機能」をご存知ですか?

GoogleのWEBブラウザであるChromeには「拡張機能」という機能があります。これを使うと、標準的な機能にはない便利な機能をChromeにインストールできます。

たとえば、以下の拡張機能はDeepLという高精度な翻訳ができるWEBアプリの拡張機能です。

この拡張機能をChromeにインストールすると、英語の文章をマウスカーソルで選択するだけで翻訳することができます(Chromeを使っている方は試してみてください)。

DeepLのChrome拡張機能
DeepL Chrome Extension

Chromeの拡張機能には、他にもたくさん便利なものがあるのですが、拡張機能は自分で作ることもできます。

たとえば、あなたの会社で、WEBのフォームに日報を入力して提出する決まりがあるとします。

このとき、日報のテンプレートを毎回コピペして使うのは面倒です。

そんなとき、Chromeの拡張機能で日報のテンプレートをフォームに貼り付ける機能を自作すれば、ボタンひとつでテンプレートの貼り付けが完了します。

こうした小さな面倒をChrome拡張機能で時短にすることで、仕事の効率化を図ることができます。

Chrome拡張機能を作るには?

Chrome拡張機能を作るには、JavaScript(ジャバスクリプト)というプログラミング言語を覚える必要があります。JavaScriptは、WEBアプリのプログラミングにも使われる言語です。

JavaScriptの基本的な書き方を覚えた後で、Chrome拡張機能の作り方を学びます。

Chrome拡張機能の作り方に関する書籍はいいものが見つけられませんでしたが、JavaScriptにさえ慣れてしまえば、Chrome拡張機能の作り方はネットで検索した情報だけで十分です。

まずはJavaScriptについて学ぶことからはじめてみるとよいでしょう。

【趣味のプログラミングでできること⑮】 ファイルやフォルダを自動で整理する

  • デスクトップに大量のファイルを作りすぎた!
  • どこに何のファイルがあるのかわからない!
  • フォルダからファイル名で検索して特定のファイルだけをまとめたい!」

プログラミングを覚えればこんな悩みもすぐに解決できます。

ファイルやフォルダの整理を自動化するのはプログラミングの得意ジャンルです。

たとえば、「【会社名】ファイル名_日時.xlsx」という形式で名前をつけたファイルが10個あり、これがデスクトップやダウンロードフォルダなどに散らばっているとします。

こういうとき、プログラミングスキルを活用すれば、それらのファイルを余すところなく探し出して、ひとつの「会社名」フォルダにまとめることができます。

ファイルやフォルダの整理をプログラミングで解決するには?

ファイルやフォルダ整理にも、プログラミング言語のPythonが一番使いやすいです。

Pythonの基本的な使い方を覚えたあとで、ファイルやフォルダの整理方法についても学ぶとよいです。

そのために、以下の本が最適です。

スクレイピング・クローリングの説でも紹介しましたが、以下の書籍は、ノンプログラマー(プログラマーでない人)のために書かれた自動化処理の本です。

これさえあれば、プログラミング言語Pythonの使い方とファイル整理のやりかたの両方を学ぶことができます。

IoT・スマートホーム

趣味のプログラミングで学ぶのに一番おもしろいテーマは、間違いなく「IoT・スマートホーム」の分野です。

IoTとは「Internet of Things(モノのインターネット)」の略で「身近なあらゆるモノがインターネットに接続する」という概念です。

たとえば、洗濯機がインターネットにつながって「IoT洗濯機」になると、外出先でスマホから洗濯機を回せたり、毎月の洗濯回数や使用水量などのデータをインターネット経由で見られるようになります。

このように身近な「モノ」をインターネットにつなげることで便利にしようというのがIoTです。

スマートホームもそれと似た概念です。IoTやAIの技術を活用して、家での生活を快適なものにしようという考え方がスマートホームです。

たとえば、Philipsの「Hue」はスマート家電として有名です。

これはGoogle HomeやAmazonのAlexaなどを使って、声で電球を操作したり、決まった時間になると自動で明るくしたり暗くしたりできる製品です。朝、目覚ましで起きるのが苦手であれば、その時間にライトが点灯するように設定すれば、自然な光で目覚めるようにしてくれます。

このようにインターネットとソフトウェア・ハードウェアの力を使って生活を快適にするのがスマートホームです。

プログラミングを覚えると、IoT・スマートホーム機器を自作できます。

市販されていない自分専用の機能を持ったIoT製品を自分で作れるようになると生活の楽しみが一気に増えますよ。

ここでは、IoT・スマートホーム機器を自作する例をいくつか紹介します。

【趣味のプログラミングでできること⑯】 植物の水やりを自動化する

まずは、植物の水やりの自動化です。

プログラミングスキルと簡易的なセンサ、マイコン(またはRaspberryPi)、ポンプを組み合わせることで、観葉植物や家庭菜園などの水やりを自動化できます。

決まった時間に植物に水をあげたり、土壌水分が一定の値以下になったら水をあげたり、といったことができます。

自動水やり装置を作るには?

水やりの自動化装置を作るのは難しそうに思えるかもしれませんが、ひとつひとつを丁寧に学べば、プログラミング初学者でも作ることができます。

水やりの自動化装置を作るには、以下の知識が必要です。

  • PythonまたはArduino(アルディーノ)言語のプログラミングスキル
  • RaspberryPiまたはArduinoの使い方
  • コンピュータとセンサとポンプを配線して動かす知識

まずは、PythonからArduino言語というプログラミング言語を学びます。

どちらも電子機器の制御に使える言語です。

初心者にオススメしたいのはPythonです。

Pythonのほうが学びやすく、WEBプログラミングや業務効率化など他の用途にも使えるためです。

Arduino言語は「Arduino(アルディーノ)」というマイコンでしか使えません。そのため、汎用的に使えるPythonのほうがプログラミング初学者にとってはおトクです。

Pythonで水やり装置を作るには、RaspberryPi(ラズベリーパイ)というミニコンピュータを使います。RaspberryPiは、コンピュータ教育を目的で使われることを想定して作られたコンピュータです。

コンピュータですが、センサやポンプなどの装置を直接配線して、つなぐことができます。

普通のコンピュータなので、Google検索やYouTubeを見るのにも使えますが、性能はそれほど高くありません。

水やりの装置を作るときは、RaspberryPiにセンサとポンプを配線し、Pythonで水やりのタイミングや量をプログラムします。こうしてポンプから水を供給します。

そのため、配線の知識も必要です。

まずはRaspberryPiの使い方を解説している書籍を探しましょう。たいていの書籍には、Pythonのプログラミング方法も書いてあります。水やり自動化装置の作り方は、インターネットで調べればたくさん情報があります。

それらを参考に、RaspberryPiとセンサ、ポンプなど必要なものをそろえましょう。

必要なものがそろったら書籍の内容に従って、配線とプログラミングをしましょう。

下記の本ではRaspberryPiの使い方が丁寧に書かれています。最初の1冊としてオススメです。

RaspberryPiを使った水やり装置の作り方についてはインターネットにたくさん情報があるので調べてみてください。

【趣味のプログラミングでできること⑰】 気温・湿度を記録してスマホで確認する

PythonプログラミングとRaspberryPiの使い方を覚えれば、部屋の気温や湿度を記録してスマホで確認できる装置を作れます。

気温・湿度の記録装置を作るには?

作るために必要なことは水やりの自動化装置と同じです。

  • Pythonのプログラミングスキル
  • RaspberryPiの使い方
  • コンピュータとセンサを配線して動かす知識

ポンプのことを考えなくていいので、こちらのほうが最初は作りやすいかもしれません。

以下の書籍を参考にすると必要な知識が得られます。

【趣味のプログラミングでできること⑱】 IoTカメラをつくる

PythonプログラミングとRaspberryPiを組み合わせることでIoTカメラも自作できます。

RaspberryPi専用のカメラモジュールが市販されているので、これを接続すればIoTカメラとして使えるのです。

Pythonを使えばAIも搭載できます。AI搭載のペット見守りカメラを作り、わんちゃんやねこちゃんが動いたときを狙って録画できます。スピーカーも接続すれば、外出先でスマホから声をかける装置も作れます。

RaspberryPiでIoTカメラを作るには?

RaspberryPiを使ってIoTカメラを作るには、以下の知識が必要です。

  • Pythonのプログラミングスキル
  • RaspberryPiの使い方
  • RaspberryPiとカメラモジュールを配線して動かす知識

以下の書籍で、RaspberryPiの基本的な使い方とカメラで画像を撮影する方法が紹介されているので、参考にしてみてください。

まとめ

今回は「趣味のプログラミングでできる18のこと」を紹介しました。

趣味でつくってみたいものをひとつでも見つけてもらえたら嬉しいです。

今回紹介したもの以外にも、プログラミングスキルがあればできることはたくさんあります。

カンタンなものでもいいので、まずは何かひとつ作ってみてください。

一度、プログラミングを覚えてしまえば、できることが増え、人生の選択肢が広がります。

ぜひ、試してみてください。

コメント

タイトルとURLをコピーしました