SSブログ

webアプリ開発者への道 [プログラミング]

 こんにちは。花粉はまだ飛んでいますが,ようやく桜が咲き始めたようで,外に出かけるのが楽しみな季節になってきました。ワタクシの近所の桜はまだ雰囲気出ていませんが。。。

 今日は趣味で行っているプログラミングについて,ワタクシ自身のこれまでのキャッチアップ状況についてご紹介したいと思います。表題にもあるとおり,いつか気の効いたアプリ開発ができたらいいなと思っていましたが,あるときから「単なるアプリ」ではなく「webアプリ」へと傾斜してきたことがありますので,そのあたりのお話を中心に。[1] MacBook Air以前
 ワタクシは,中高生の頃はBasicやアセンブリ言語に親しんだり,大学の卒業研究でFortranやPascalを扱ったり,職場のEUC開発でCやC++を扱ったりしていたので,プログラミングとかオブジェクト指向といったものにはそれなりに知識がありましたが,いかんせん当時はMicrosoft Windowsが登場する前のいわゆるコマンドプロンプトの時代であり,GUIレベルのプログラミング経験はありませんでした。

 その後,Excel VBAを扱うようになって,イベントドリブン型のプログラミングについてもイメージが湧くようにはなりましたが,このあたりを本格的にやろうとするには統合開発環境(IDE)の使いこなしが不可欠だと気づき,Microsoft Visual Basicに照準を定めようかと考え,ヒマをみながら使い始めました。IDEを初めて使ったこともありますが,Visual BasicのIDEはコードを何文字か書き始めるだけで文法上期待されるコードへと勝手に誘導してくれるので,プログラミング効率が昔とは比べ物にならないと感激しました。IDEのこうした機能をインテリセンスと呼ぶそうです。

[2] MacBook Airの購入とObjactive-Cの敷居
 Visual Basicの海に船出し始めていたワタクシでしたが,以前 http://himakou.blog.so-net.ne.jp/2014-01-05 で書いたとおり,2013年9月にMacBook Airを衝動買いしてしまったことでVisual Basicから足を洗う羽目になり,代わりにObjactive-Cを扱う必要性が出てきました。

 ご案内のとおり,Macファミリー,特にiPhoneで使えるアプリ開発のためにはObjactive-Cは定番と言ってよいわけですが,Mac自体に不慣れなワタクシにとって,Objactive-Cの統合開発環境が何となく肌に合わず,またC言語の一族だという触れ込みのわりには見栄えのかなり異なるカギカッコ[ ]の存在もあって何となく敷居が高く,この後どうしようかと悩んでおりました。

[3] ドラゴンクエストとwebアプリ
 そんな中,学生時代に大いにはまったドラゴンクエストがwebアプリで無料でできるというのを知って,早速やり始めたところ,再びはまってしまいました。ドラゴンクエストモンスターパレード http://www.dqmp.jp というんですが,ゲーム自体が面白いだけでなく,webアプリというものの可能性を大いに感じた次第です。

 webアプリというのは,ユーザーのPCにインストールして動かすのでなく,インターネット上のwebサイドにアクセスするだけで動くタイプのアプリです。ぐぐっていただければわかりますが,PC環境にあまり依存せずに動くことやバージョンアップはweb側で行うだけで常に最新のアプリが提供できること等,ユーザー負担が極めて軽いという特徴があります。

 webアプリはゲームの分野だけではなく,webメールは前々からさまざまなプロバイダ等によって提供されていますし,最近ではGoogleがさまざまなwebアプリを無料で提供して囲い込みを目指しています。また,Microsoft Officeもwebアプリでの提供を始めました。おそらく,数年以内にはインストール型アプリは激減しているのではないかと予想されます。こうした状況認識の下,いったんObjective-Cを離れて,webアプリ開発の勉強を始める方針に切り替えました。

[4] HTMLとJavaScript
 webアプリ開発の勉強を始めて間もなく,HTMLとJavaScriptの存在を知りました。正確にはHTMLの存在は知っており,拡張子をhtmlとして適切なテキストファイルを書けば,任意のwebブラウザで凝った画面表示が可能であることは知っていました。しかし,巷のHPには開いただけでアニメーションが動き出したり音が出たりするものがあり,どこをどうすればこうなるのかイメージできていませんでした。

 それが勉強の結果,JavaScriptという言語をHTMLに埋め込むことでアニメーション等が実現できることがわかりました。JavaScriptはHTMLと同様に(Flash等のプラグインをインストールする必要があるかも知れないものの)環境をあまり選ばないため,Windows派もMac派も同じ土俵でアプリ開発ができるというわけです。これは非常に大きい。

[5] サーバー環境とクライアント環境の違い
 早速簡単なwebアプリを作ってみようとしたところ,アニメーションの類であれば頑張ればできそうだということはわかったのですが,ユーザーログインを確認した上でデータのやりとりを行うようなwebアプリを考えると,とたんに壁にぶち当たってしまいました。

 いま考えれば当たり前なのですが,webアプリが操作するデータベースはユーザーのPCにはないのです。ユーザーのPCをクライアント環境と呼ぶことにすれば,これとは別のサーバー環境なるコンピュータにwebアプリの本体およびデータベースを置いておく必要があります。

 サーバー環境なるコンピュータはどこにあるのかという話になりますが,自分のPCをサーバー兼クライアントに設定し直す手と,レンタルサーバーなるコンピュータを借りる手があります。PHPの入門書を読むとほとんどが前者を推奨していて,具体的にはXAMPPとかMAMPというフリーソフトをインストールすることを推奨していますが,入門書の執筆者の立場としては,読者に自己責任でレンタルサーバーを借りなさいとは言いづらいためだと読み切ったため,レンタルサーバーに頼ることにし,いろいろ調べた結果,TOK2という無料レンタルサーバーを借りることにしました。

 無料レンタルサーバーがいろいろある中でTOK2を選んだのは,SQLiteというPHP用の簡易DBライブラリが使えるためでした。巷では,MySQLというもっと本格的なDBライブラリも存在しますが,無料のものは見つかりませんでした。いまのところ不満なしです。

 なお,レンタルサーバーを使い始めるにはFTPツールを入手して,借りたサーバーにファイルをアップロードしたりダウンロードすることが必要です。TOK2ではFetchというのを推奨していましたが,数千円かかるので,無料のFTPツールを探してみたところ,FileZillaというのが評判よさそうだったので,これにしました。Macでなければ他にもよい選択肢があると思います。参考→ http://nagihiro.com/pckouza/filezilla/

[6] PHPという言語
 サーバー環境が整ったので,サーバー上で動くプログラムを書く必要がありますが,これがまた敷居が高い。調べたところ,JavaScriptはサーバー上で動くプログラムを書くのには適しておらず,それ以前にサーバーによって扱える言語が異なるため,このあたりも考えながら,新たな言語を覚える必要があります。

 定番の言語はJavaです。JavaとJavaScriptはまったく別の言語だというウンチクはさておき,Javaはどうにも敷居が高い。どうやら,PHPという言語が最も敷居が低いらしいという結論に達しました。

 PHPの敷居が低いのは,JavaScriptと同様,HTMLに埋め込むタイプの言語であるせいです。PHPを埋め込んだHTML(拡張子php)をクライアントからwebブラウザで呼び出すと,サーバーでは始めにPHP部分だけを実行して,場合によってはHTMLを追記する処理を行います。PHP部分の実行が終わると,PHPによって追記されたHTMLがクライアントに送信され,受け取ったクライアントはこれをwebブラウザ上で実行します。このときにJavaScript部分があれば,それはクライアントサイドで実行されることになります。サーバーとクライアントのこうした役割分担によって,webアプリがうまく動くようになるわけです。

 サーバーとクライアントとの情報のやりとりは上の方法だけでなく,HTTPを介した方法もあり,まだまだ勉強不足です。とはいえ,ワタクシがこうしたロードマップを描けるようになるまでになかなか苦労したことから,ワタクシと同じような立場の方に少しでも参考になれば幸いです。

おしまい。
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。