レッスンケース 3 - スクールに2か月通ったのですが、自分でiPhoneアプリを作れません!

投稿日:2015年10月29日
カテゴリ: レッスン , レッスンケース


オレンジ好きなフミリアです。

あと2日でハロウィン、11月からはクリスマス商戦がはじまりますね。

さて、前回のレッスンケースは、「レッスンケース 2 - PHPテストケースの書き方」でした。今回はiOSアプリ開発のレッスンの様子をお届けします。

アフィリエイト系のWebアプリケーション開発をやっている会社に勤めているTさん。会社に入ってPHPプログラミングを覚え、プログラミング経験は2〜3年だそうです。業務でiOSアプリ(iPhoneアプリ)を作ることとなり、iPhoneアプリ開発スクールに通ったのですが、やったことはサンプルソースのコピペばかり。2か月通っても全く自分で作れるようになれなかったとのこと。

会社が五反田近辺にあることもあり、落ち着いてレッスンを受けられるコワーキングスペース「VACANCY OFFICE GOTANDA」での対面レッスンを選択。じっくり学びたいということから、90分6回の回数券を購入されました。(スペース利用料はレッスン料とは別途必要となります)

563172b815ffa658356041.jpg

ハロウィーンといえばこいつら。どうやら団子3兄弟に扮した模様、「ジャックランタンズ」と名付けましょう。ハロィーンのおかげで日本中でコスプレが流行ってきてるようで、何だか嬉しいですね。

iOSアプリ開発とは

まず、iOSアプリを開発ために必要なこととはなんでしょうか。

  • Mac OS Xで動作するXcodeというプログラム開発環境を使う。(Windowsでは動作しない)
  • Xcodeのプロジェクトツリー、ソースコードエディタ、インターフェースビルダー、デバッガなどのビューを駆使し、プログラムを組み上げていく。 使えるプログラミング言語は、SwiftかObjective-C。 アプリに組み込むイメージ、ムービー、オーディオなどのリソースは、別途ツールを用いて準備する必要がある。
  • AppleとiOS Developer Programを契約し、開発したアプリをApp Store(アプリマーケット)に申請する。

Web畑の人がiOSアプリの開発をイメージした時によくある勘違いがあります。それは、「HTML, CSSで画面(ページ)が作れる」と思い込んでいることです。 iOSやAndroidには「WebView(ウェブビュー)」と呼ばれるWebページを表示されるコンポーネントもありますが、ネイティブのアプリはそれぞれのプラットフォーム固有のレイアウト技術があるのです。

CSSのレイアウト技法がそのまま通用しない場面も多くあります。得意・不得意もそれぞれにあり、例えばテキストや画像のサイズに合わせて高さを可変にすることはCSSでは高さを固定に指定しなければ自動的にサイズ計算をしてくれますが、iOSのAutoLayoutだけでは可変サイズを実現できずプログラムで明示的に計算してあげる必要があります。逆に可変個のリストを表示するような場合は、iOSではメモリ効率の良いUITableViewというコンポーネントが使えます。

スクールで教えてもらえたこと、教えてもらえなかったこと

Tさんが通ったiPhoneアプリ開発スクールでは、このような開発現場で必要な知識を教えてはもらえなかったようです。 何を教えてもらい、何を教えてもらえなかったのか、Tさんからヒアリングした内容からまとめました。

教えてもらえたこと

  • Xcodeの基本的な使い方。
    • プロジェクトの開き方、設定やソースファイル、画面レイアウトの変更方法など。
  • サンプルプログラムのソースコードをコピペする方法。
  • あらかじめ用意されたサンプルプログラムのカスタマイズ方法。
    • 色や文字を変えるとか、画像を差し替えるなど。

教えてもらえなかったこと

  • プログラミングの基礎。
    • データ型や関数スコープ、ポインタやオブジェクト。16進数の考え方。
  • Objective-CやSwiftの文法。
    • メソッド式、クラスやメソッドの宣言、インスタンス生成、プロパティの宣言とアサインなど。
  • 変数やクラスの名前の付け方。
  • iOS SDKに含まれているもの。
    • NSString, NSArray, NSDictionary, NSDate, ...
  • 用意されているプロジェクトのひな形にどんなものがあるのか。
    • Master-Detail Application、Tabbed Applicationなど。
  • 画面レイアウトに使える部品(コンポーネント)にどんなものがあるのか。
  • ナビゲーションコントローラー、タブコントローラーなど。
  • ソースコードと画面リソースを関連付ける方法と詳しい説明。
    • 画面レイアウトの指定の仕方。AutoResizeやAutoLayout。
    • 新しいビューとクラスの作り方。プロパティとコンポーネントの関連付けの方法。
    • イベントハンドラの作り方。
  • WebViewを使ったハイブリッドアプリの作り方。
  • サーバーからデータを取得する方法、データをアップロードする方法。
  • パッケージ管理ツールの導入。
  • iOSアプリの寿命。定期的なメンテナンスの必要性について。

Tさんの話を聞く限りでは、確かに初心者向けのiOSアプリ開発スクールを受講しても、実際にアプリを開発できるようにはなれないでしょう。

ここにあげた「教えてもらえなかった」の全項目は、フミリア・ラボのレッスンで実際に教えたことです。(16進数と10進数の変換についても教えました。)

アプリ開発を始める前に検討すること

今まではiOSアプリ開発に使えるプログラミング言語はObjective-Cのみでしたが、2014年にSwift(スウィフト)という新しいプログラミング言語が登場しました。どちらを使うと良いのでしょうか? 開発チームのメンバーのスキルや、既存のライブラリをどれくらい使うかなどの状況を加味して検討しましょう。

また、アプリの形態としてネイティブアプリかコンテンツ表示部分にWebViewを使ったハイブリッドアプリにするかも重要な要素です。 ネイティブアプリはレスポンスが速いのですが、Androidでは動かない。 ハイブリッドアプリは、画面内のコンテンツ部分にHTML,CSS,JavaScriptといったWeb技術が使えるのでAndroidでも動作させることができますが、うまく作らないともっさり感が出てしまいます。

ハイブリッドアプリのメリットは大きいのですが、全てをWeb技術で書けるわけではなく、画面内の制御部分(いわゆるガワ)はネイティブでの記述が必要となります。 ハイブリッドアプリのフレームワークのCordova(コルドバ、またはPhoneGap)の利用も検討しましょう。

iOSエンジニアのスキルアップ方法

iOSアプリ開発はWeb技術だけではできません。それなりのボリュームの専門技術知識・ツール知識が必要だということに加え、1年に1回の頻度で来るiOSのメジャーバージョンアップに合わせて知識を更新していかなくてはなりません。3年前の知識は70%以上使えません。また日本語の最新情報は少なめなので、Stack Overflow などの英語Q&Aサイトなどから情報を拾っていく必要があります。

フミリア・ラボは、プロのiOSアプリ開発エンジニアを育成します

フミリア・ラボは、プロを目指すエンジニア、一歩上を目指すWebデザイナーのためのプライベート・コーチです。 さぁ、iOSアプリ開発の基礎力を飛躍させましょう! 自分一人で学ぶより、圧倒的に学習の時間効率が良いですよ。

チームの戦闘力を短期間で向上させる、法人向けのオンサイトレッスンはいかがでしょうか?(こちらは別途お見積りとなります)

技術相談・レクチャーのご依頼は、お問い合わせ・お申し込みフォームから送信ください。


投稿日:2015年10月29日
カテゴリ: レッスン , レッスンケース