ラーメンとアイコン

ラーメンに乗ってる味玉のこと、メンズエッグって呼んでる。

非エンジニアが1ヶ月間iPhoneアプリ開発を勉強してみた記録

f:id:ujjjj:20151104025037p:plain

プランナーがアプリ開発に挑戦してみた

9月から1ヶ月とちょっと、iOSアプリの開発を勉強していたので、そのレポートを記したいと思います。私と同じような非エンジニアがプログラミングに挑戦するときの参考になれば幸いです。

 

プランナーである私がアプリ開発を勉強しようと思ったきっかけは、このアプリ。

 

Lifeline...

Lifeline...

  • 3 Minute Games, LLC
  • ゲーム
  • ¥120

 

このアプリが、自分が2年前に考えた企画にコンセプトが似ていて、しかも奇しくも名前が一緒!!

 

f:id:ujjjj:20151104012305p:plain

f:id:ujjjj:20151104012322p:plain

 

「悔しい!」と思うと同時に、「思いつくこと」と「つくること」の圧倒的な差、凄まじい敗北感・無力さを感じていました。

 

そんなときに、丁度同じ会社のエンジニアである杉山さんが講師をするiOSアプリ開発の無料講座の案内があったので、参加してみることに。

※ 只今、Androidアプリ講座 受講生受付中!(無料)

 

omojyuku.tumblr.com

 

この記事では、その講座で学んだことを非エンジニアの言葉で超ざっくりまとめてみます。

これを読んでもコードを書けるようにはなりませんが、みなさんがちょっとでも何かをつくってみようという気持ちになれば嬉しいです。

 

ちなみに、非エンジニアと言っても、HTML、CSSJavaScriptActionScriptをほんの少しだけかじってます。(仕事では使えないレベルですが…)

あと、中学生の頃に、HSPHot Soup Processor)という初心者向け言語を勉強していたこともありましたが、「配列」の章で挫折しました。


1ヶ月でここまでできるようになった

↓ここまで、できました。

 

f:id:ujjjj:20151104015556g:plain

 

スプラッシュ画面があって、画面遷移して、日付や時計を表示して、今日の気持ちを選択できて、タイトルと本文を書けて、別の場所をタッチするとキーボードを閉じる。画面を回転させてもレイアウトが崩れない。

 

…というところまでできました。

アプリをリリースするところまでは出来ませんでしたが、何となくアプリっぽいものを実装することができましたよ!


こんな流れで勉強しました

これができるまでに、こんな順序でこんなことを勉強しました。

1. まず、Xcodeをインストールする

XcodeiPhoneアプリを開発するためのツールです。

インストールしただけで、エンジニアになった気分になれます。

f:id:ujjjj:20151104020131p:plain

Xcode

Xcode

  • Apple
  • 開発ツール
  • 無料

 

2. 画像や文字を画面に配置してみる

Xcodeには「Storyboard」というものがあり、そこにボタンやテキストのパーツを置くだけで、要素のレイアウトができてしまいます。

黒い画面にコードを打ち込む作業を想像していたので、驚くほど簡単で感動。

乱暴に言うと、パワポの資料をつくるみたいな感覚です。

 

f:id:ujjjj:20151104021839p:plain

 

3. 画面遷移をつくってみる

controlキーを押しながら、カーソルをビヨ~ンとドラッグするだけで、画面遷移がつくれます。直感的すぎて不安になります。スーパーマリオメーカーみたいな感じです。やったことないけど。多分そんな感じです。

 

f:id:ujjjj:20151104022223p:plain

 

4. プログラムを書いて時計をつくってみる

時計など動的に変化する部分は、Swiftという言語でコードを書きます。ようやくプログラミングっぽくなってきました!

 

f:id:ujjjj:20151104022907p:plain

 

ここで挫折してしまいそうになりますが、自分なりにコードを学ぶコツを考えてみました。

 

 

  • まずはググったり、Qiitaを見たりして、それっぽいコードをコピペする
    ※ この時、しっかりコメントを残しておく(何のためのコードかわからないときは「不明」とかいておく)
  • とりあえずプログラムを実行してみる
  • 上手く行かなかったら、一部だけ切り離して実行してみる(さすがにココは動くだろうってところ)
  • 上手く行ったら、パラメーターを変えたりして応用してみる

 

 

全てを理解してから書き始めようとするとキリがありません。このように何度もトライアンドエラーと応用を繰り返すことで、どのコードが何をしようとしているのか、ぼんやりと分かるようになってくる気がします。

ちなみに、ここで「配列」を勉強し直して、中学時代の挫折を克服しました。

 

5. いろんな画面サイズに対応できるようにする

Xcodeには「Autolayout」という機能があります。これは、iPadや横向きの端末など異なる画面サイズに対応できるように、要素をキレイに配置する機能です。

たとえば、「画面の中心に配置する」とか「画面いっぱいに表示」とか「上から40px」とか、そういう設定を各要素に覚えさせるのです。

これはプログラムというより、美術とか工作に感覚が近かったので比較的抵抗なく理解することができました。

 

f:id:ujjjj:20151104023950p:plain

iPadでもばっちり!

 

6. その他、ボタンをつくったり、テキストフィールドをつくったりしてみる

ググッて失敗して、ググッて失敗してを繰り返すことで、少しずつ慣れてきました。講師のサポートもあり、ちょっとずつアプリっぽい動きを実装することができました。

 

本当はこのあと、データを保存したりといった講義があったのですが、仕事の関係上途中で抜けてしまったため、ここまでで終了。


学習方法

基本的にこんな流れで勉強しました。

  • 水曜の夜、1時間の講義があり、そこで基本的な操作について学ぶ
  • 毎週末復習。ググッて、なんとか動作するところまで持っていく(1つのUIを実装するのに半日くらいかかるけど…)
  • 次の水曜日にお手本のコードを見せてもらう

これの繰り返し。


アプリ開発を学んでみて感じたこと

書いたコードが動くのは気持ちがいい

私自身、考えたアイデアが最高の形で世に出るのが一番だと思っているので、出来る人にやってもらうのが最善策なのですが、それとは別の話で、単純につくったものが動くのは気持ちが良いです。

つくりたいものが先にあって、それを実現する手段を見つける方が理解が早い

今回、つくるべきもののゴールが明確だったので、集中して調査・勉強をすることができました。やはり「本を熟読してから応用」は挫折しやすいですよね。中学時代の「配列」の挫折はそれが原因でした。

疑問に対してすぐに答えてくれる人がいる環境は最高

やはり独学は厳しいです。今回勉強中にXcodeのアップデートがあり、ルールが微妙に変わってしまって混乱しました。こういう時はプロのエンジニアがいないとどうしようもありませんでした。

杉山さん、ありがとうございます。

 

ここからは、つくりたいものをつくることが、学習の一番の近道だと思うので、まずはつくりたいアプリを1つ完成させようと思います!お楽しみに!

 

 

次回はAndroid塾が開講〜〜!!

ここが本題なのですが、iOS講座の次は、Android講座をやるそうです。

受講生を11月6日(金)まで募集しているそうなので、ぜひ応募してみてください!無料です。

…と、講師の杉山さんが言っていました。

 

omojyuku.tumblr.com

 

 

以上、非エンジニアに伝わるように、自分の学んだこと・感じたことを自分の言葉で書いてみましたが、間違った情報を伝えるわけにはいかないので、誤りなどあればぜひご指摘ください。

 

以上、ご査収のほど、よろしくお願い致します。

 

今日のなぞかけ

プログラミングとかけて、鉱石と解く。

その心は…(続きはTwitterをフォロー

 

こちらの記事もオススメです

 

ramenandicon.hatenablog.com

 

 

ramenandicon.hatenablog.com

 

 

 

↓これもちょっと読みました 

  

Shake It Off

Shake It Off

 

 (このSwiftではない)