プログラミングスクールでメモ電卓アプリを1ヶ月で作った体験談
① DMM WEBCAMP
⇒ 首都圏拠点のエンジニア志望におすすめ
② TECH::EXPERT
⇒ 首都圏・関西圏・名古屋・福岡拠点のエンジニア志望におすすめ
③ TechAcademy
⇒ 未経験から効率よくプログラミングを学んでキャリアに活かしたい社会人におすすめ
こんにちは、フリーランスエンジニアのYaemonです。
プログラミングスクールを真剣に選んでいる方の中には、
・プログラミングスクールを使って、ちゃんと就職ができるの?
・プログラミングスクールは通学型・オンライン型どちらを選べばいいの?
・プログラミング言語はRuby、Java、Swiftなど色々あるけど、結局どれを選べばいいの?
などと不安ですよね?
管理人もプログラマーなので悩むところはわかります。
そこで、このページでは、
▶ プログラミングスクールの受講を検討している人
に向けて
▶ プログラミングスクールでiPhoneのメモ電卓アプリを1ヶ月で作った
管理人の体験談を紹介したい。この記事で、メモ電卓の作り方とプログラミングスクールの検討に役立ててもらえたらと思う。
*失敗しないプログラミングスクールの選び方について知りたい方は次の記事を参考にしてみてください。
プログラミングスクールで習った、iPhoneアプリの作り方基礎について
まず一番初めの初歩の初歩として、プログラミングスクールでは以下の基本的なiPhoneアプリの作り方を学んだ。
▶ UITableViewの使い方
▶ オブジェクトの生成
▶ 変数の宣言
▶ 四則演算
▶ ループ
▶ 配列
ポイントとしては、UIの操作(xib)を使うのではなく、全て手書きでオブジェクトの生成などを行った。そうして、基本的な点を勉強したあとは、次にプログラミングスクールでメンターとメモ電卓アプリを作ることになった。ちなみに、この時の管理人のプログラミングスキルは配列やループの使い方がわからなかった初心者レベルであった。
メモ電卓アプリの作り方について
メモ電卓アプリの仕様について
まず、iPhoneアプリを作るにあたり、仕様を固めていくことになった。
以下がその当時作成するにあたった機能だ。
アプリ名:メモ電卓
機能1(メモ機能)
通常の電卓機能に、上部のUITableView部分にメモを追加していく
機能2(メモ機能)
通常の電卓機能に、上部のUITableView部分にメモをした数字を使って計算ができる
iPhoneアプリの画面設計について
メモ電卓の画面設計については、こちらで方眼ノートに画面を書いて、それをキャプチャーにして送って確認してもらった。
iPhoneアプリの実装について
以下、実装にあたってのポイントとして記入する。もし、同様に電卓アプリの開発を検討しているのであれば参考にしてほしい。
ログの見方について
当時、ログが出たら、自分で調べることができず、「なにかこんなログが出たんですけど?」と自分で調べることもせずにメンターに聞いていた。そうすると、メンターから「調べましたか?Google で検索しましたか?まずは調べましょう」と言われ、Googleで検索するようにしていった。
また、変数の計算がうまく行っているかなど、NSLog()というログ出力をする関数を使って処理のあとに変数が正しく入っているかなどの確認をしていた。
ボタンの描画
当時は、初めは一つずつUIButtonとして1〜9までの数字のボタンを配置していたが、それだと効率が悪いと指摘されて、配列とループを使って、描画していった。
UITableViewの使い方
当時の実装により、UITableViewの使い方を確認することができた。次の実装を行うことでUITableViewの使い方の理解が深まった。
▶ UITableViewにメモを保存する
▶ 保存したメモを使用する
GoFのデザインパターン
電卓を作ると、GoFのデザインパターンの中のStateとSingletonという機能を使うことになる。そのため、デザインパターンの知識も身についた。
具体的にStateについて説明すると、Stateは、ボタンを押した状態によって処理を変えることだ。電卓を作るときには、stateを1〜4まで用意して以下の動作となる。
state1:数値入力中
state2:四則演算ボタンの選択
state3:数値入力中
state4:計算結果の表示
電卓の動作は、stateにより主に以下の動作となる。
動作1:数値を保存する
動作2:数値を保存する
動作3:計算のボタンを保存する
動作4:数値と数値を計算する
当時は、以下の状態遷移表を参考にしていた。詳しい作り方は、以下のホームページが参考になるだろう。
*http:Android入門―本気で使える電卓アプリの開発―3より
www.smartphone-zine.com/android/android-introduction-03
メモ電卓部分の実装について
次に、メモ電卓部分の実装について説明する。
UIViewの上にUITableViewの配置
電卓部分ができると、次にメモ電卓部分で一番重要なUITableView部分を配置する。UIViewの上にUITableViewを配置する箇所は少しつまずいていた。
UITableViewで指定した数値を変数に格納する
次に、UITableViewを利用して、数値を変数に格納していく。もちろん、メモした数値を利用しないパターン、1つだけ利用するパターン、2つだけ利用するパターンのそれぞれに対応するようstate内の処理を追加していく。
デザイン部分について
このデザイン部分については、別途、クラウドワークスで発注をして、各種ボタンと背景、起動画面を合わせて発注することにした。起動画面は自分でPhotoShopを使って作ることにした。
リリースとプログラミングスクールで学んだ結果
最終的に、iPhoneアプリをリリースすることができたが、収益は日に数円〜数十円というレベルで赤字だったが、iPhoneアプリの作り方という点で、リリースまでこぎつけた点はうまくいったケースだったといえる。初回が一番大事だからだ。
さらっと書いているが、会社が終わってから帰宅してからの2〜3時間、休日土日を費やして、iPhoneアプリの初心者が1ヶ月で成果をだすのはかなりキツかった。それでも続けられたことは、今の環境を変えたいという思いがあったからだ。
また、学んだことは、ログを出力してデバッグ方法を自分で確認する癖ができたことだ。質問する前に、仮想でメンターに質問する会話シーンをよく作っていた。
この次は、AFNetworkingを使ってXMLを取得して為替電卓のアプリを開発した話について説明していく。以下の記事を参考にして説明してほしい。
また、このようにプログラミングスキルを磨いていきたい人向けのオススメのプログラミングスクールを以下に記入しているので、参考にしてほしい。
オススメのプログラミングスクールについて
通学型のエンジニアカレッジ
オススメな人:関東に住んでいるフリーター・既卒で時間がある人
特徴:Java × 通学型 (関東圏)
管理人のオススメのプログラミングスクールは、完全無料でプログラミング研修と就活サポートを受けられるエンジニアカレッジ だ。
受講期間は2ヶ月を1つのスパンとして受講期間が設定され、以降は就職先を斡旋してもらえる。ここは、提携企業からの援助があるため、完全無料でプログラミングの研修と就職支援を受けることができる。
ここのサービスの凄い所は、カリキュラムが本格的な点。Linux研修コースとJava研修コースの2つがあり、有料でも行く価値があると感じている。特にオススメはJava研修コース。
というのも、このJavaを学ぶときに、クラス、インスタンス、オブジェクトなどの未経験者が一番はまりやすいプログラミングのオブジェクト指向の概念を学ぶことができ、未経験者がつまずくところを徹底的にフォローしてもらえる。この未経験者が一番ハマりやすいところを教えてもらえるというのは羨ましい。もうちょっと苦労してもよいのではないかと思う。
Javaは独学だとしんどくて挫折するので初心者には不向きだが、集中して教えてもらえるのであれば、初心者でも全然取り組めるプログラミング言語といえる。
管理人がJavaで開発をしていた話をすると、社内SE時代に、Java + Struts(フレームワーク)でシステム開発をしたが、Javaができると、他のC#、.NET、Ruby、JavaScript、Objective-Cなどオブジェクト指向の言語を扱えるようになる。
また、サイバーの子会社で働いていた友人は、Java + StrutsのWEBアプリを開発していたため、Javaができるようになると、業務系、WEB系どちらでも将来仕事につけるようになる。更に、研修の中には、JUnitを用いたテストツールの使い方もカリキュラムにあるため、本格的なスキルを身につけることができる。
Linux研修コースでは、サーバーの構築作業をメインで学習する。Linuxサーバーでの構築作業ができると、サーバー室で、サーバーの構築作業であったり、ネットワーク関連の作業に携わることができる。どちらかというと、SIer関連の案件が多い。
一緒に講義を受講する仲間
この研修は、Skype研修であれば1人となるが、周りに一緒に勉強する仲間がいるため、それだけでも挫折するリスクが減るため、達成しやすい。マラソンも1人でやるより、周りで人が走っている状況だと自分も走れるだろう。
また、この下積み時代にできた友だちは将来も同じ業界で働く、刺激し合える良い関係を気づけるのも特徴だと思う。これから未経験者が新しい道を進んでいくときに、1人だと辛いから。一緒にがんばる仲間がいると心強いだろう。
オンライン型のCodeCamp
オススメな人:関東以外に住んでいるフリーター・既卒、時間のない社会人
特徴:Java × オンライン型
先ほど伝えたエンジニアカレッジは、フリーターや既卒向けのため、すでに働いている人を対象としていない。また、関東に住んでいないと無料で受講できない。そのため、社会人として働いている人や遠方に住んでいる人には、オンラインのプログラミングスクールがオススメしたい。でオススメするのはオンラインプログラミングスクールのCodeCamp だ。効率的に成果を出すために、Java、PHP、Rubyなどのプログラミングの授業をリモートで受けることができる。
未経験者が挫折するもう一つの理由
超重要な点を話すと、未経験者が挫折してしまうのは適切な課題を設定できないからで、それは本を読んで例題をこなすだけだと中々実力がつかない。プログラマーのアルバイトに行くとレベルが高すぎることを要求されてしまい、挫折してしまうこともある。
プログラミングスクールであれば、自分のレベルの少し上の課題が常に設定されていくので、スキルが身につきやすく、またフォローもあるのでやり遂げることができる環境は整っている。
プログラミングスクールでの学び方
最後に、ここまで読んでもらった人に向けて、効率的なプログラミングスクールの使い方を伝えておきたい。
プログラミングで何か作業していると常につまずく。そのときに、トラブルが起こった原因と対策について考える癖を身につけることがめちゃくちゃ大事だ。単純に分からないから聞くのではなく、自分で解決する努力を常に続けていくことを心がけて欲しい。
超具体的なアドバイスをすると、エラーコードが出てきたときは、そのエラーコードをググるだけでも相当変わる。はてなブログの技術記事やQiitaで対応方法がまとめられているからだ。
また、エンジニアカレッジ やCodeCamp では、無料相談や無料の体験講義があるため、雰囲気を知るために受けてみることをオススメする。エンジニアカレッジは遠隔地でもSkype講義で対応している。
*失敗しないプログラミングスクールの選び方について知りたい方は次の記事を参考にしてみてください。