レッスンケースオレンジ好きなフミリアです。あと2日でハロウィン、11月からはクリスマス商戦がはじまりますね。PHPテストケースの書き方」でした。今回はiOSアプリ開発のレッスンの様子をお届けします。アフィリエイト系のWebアプリケーション開発をやっている会社に勤めているTさん。会社に入ってPHPプログラミングを覚え、プログラミング経験は2〜3年だそうです。業務でiOSアプリ(iPhoneアプリ)を作ることとなり、iPhoneアプリ開発スクールに通ったのですが、やったことはサンプルソースのコピペばかり。2か月通っても全く自分で作れるようになれなかったとのこと。GOTANDA」での対面レッスンを選択。学びたいということから、90分6回の回数券を購入されました。(スペース利用料はレッスン料とは別途必要となります)ハロウィーンといえばこいつら。団子3兄弟に扮した模様、「ジャックランタンズ」と名付けましょう。ハロィーンのおかげで日本中でコスプレが流行ってきてるようで、何だか嬉しいですね。iOSアプリ開発とはまず、iOSアプリを開発ために必要なこととはなんでしょうか。Xで動作するXcodeというプログラム開発環境を使う。(Windowsでは動作しない)Xcodeのプロジェクトツリー、ソースコードエディタ、インターフェースビルダー、デバッガなどのビューを駆使し、プログラムを組み上げていく。使えるプログラミング言語は、SwiftかObjective-C。アプリに組み込むイメージ、ムービー、オーディオなどのリソースは、別途ツールを用いて準備する必要がある。Store(アプリマーケット)に申請する。Web畑の人がiOSアプリの開発をイメージした時によくある勘違いがあります。CSSで画面(ページ)が作れる」と思い込んでいることです。iOSやAndroidには「WebView(ウェブビュー)」と呼ばれるWebページを表示されるコンポーネントもありますが、ネイティブのアプリはそれぞれのプラットフォーム固有のレイアウト技術があるのです。CSSのレイアウト技法がそのまま通用しない場面も多くあります。得意・不得意もそれぞれにあり、例えばテキストや画像のサイズに合わせて高さを可変にすることはCSSでは高さを固定に指定しなければ自動的にサイズ計算をしてくれますが、iOSのAutoLayoutだけでは可変サイズを実現できずプログラムで明示的に計算してあげる必要があります。逆に可変個のリストを表示するような場合は、iOSではメモリ効率の良いUITableViewというコンポーネントが使えます。スクールで教えてもらえたこと、教えてもらえなかったことTさんが通ったiPhoneアプリ開発スクールでは、このような開発現場で必要な知識を教えてはもらえなかったようです。何を教えてもらい、何を教えてもらえなかったのか、Tさんからヒアリングした内容からまとめました。教えてもらえたことXcodeの基本的な使い方。プロジェクトの開き方、設定やソースファイル、画面レイアウトの変更方法など。サンプルプログラムのソースコードをコピペする方法。用意されたサンプルプログラムのカスタマイズ方法。色や文字を変えるとか、画像を差し替えるなど。教えてもらえなかったことプログラミングの基礎。データ型や関数スコープ、ポインタやオブジェクト。Objective-CやSwiftの文法。メソッド式、クラスやメソッドの宣言、インスタンス生成、プロパティの宣言とアサインなど。変数やクラスの名前の付け方。SDKに含まれているもの。...用意されているプロジェクトのひな形にどんなものがあるのか。Applicationなど。画面レイアウトに使える部品(コンポーネント)にどんなものがあるのか。ナビゲーションコントローラー、タブコントローラーなど。ソースコードと画面リソースを関連付ける方法と詳しい説明。画面レイアウトの指定の仕方。AutoResizeやAutoLayout。新しいビューとクラスの作り方。プロパティとコンポーネントの関連付けの方法。イベントハンドラの作り方。WebViewを使ったハイブリッドアプリの作り方。サーバーからデータを取得する方法、データをアップロードする方法。パッケージ管理ツールの導入。定期的なメンテナンスの必要性について。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%以上使えません。英語Q&Aサイトなどから情報を拾っていく必要があります。フミリア・ラボは、プロのiOSアプリ開発エンジニアを育成しますフミリア・ラボは、プロを目指すエンジニア、一歩上を目指すWebデザイナーのためのプライベート・コーチです。自分一人で学ぶより、圧倒的に学習の時間効率が良いですよ。チームの戦闘力を短期間で向上させる、法人向けのオンサイトレッスンはいかがでしょうか?(こちらは別途お見積りとなります)技術相談・レクチャーのご依頼は、お問い合わせ・お申し込みフォームから送信ください。jumilla「プロ・エンジニア養成塾」「レンタルブレーン」「エンジニアメンタルケア」のフミリア・ラボ。対面レッスンとビデオ通話レッスンで指導を受けられます。詳しくはサービス内容の紹介をご覧下さい。