前回の 「Swiftプログラミング言語に付いて思うこと」 をふまえ、今後のSwift言語を使ったiOS開発の教育に付いて考えてみました。
前回書いたように、Swiftはいろいろな言語の良いところを参考に作られた今風の言語で、初心者はもちろんRuby等のLL(スクリプト)言語を使ってきた開発者にも学びやすい良い言語です。これからiOS開発を学ぶ人には絶対にSwiftから入るべきです。
下の表の左半分がEY-Officeの現在のiOS教育プログラムの目次です。これは 拙著 「はじめてのiPhone/iPadアプリ開発」 の目次と同じです。この本はEY-OfficeのiOS開発者教育のプログラムにそった作りになっています。もちろん実際の教育では期間、受講者のスキルに合わせて変更して実施しています。
章 | 現在の教育プログラム | Swift版(案) |
---|---|---|
1 | iOSとアプリ開発の概要 | 同左 |
2 | 簡単なアプリを作ってみよう | 簡単なアプリを作ってみよ(コードはSwift) |
3 | C言語のポインターとメモリー管理 | Swift言語基本編 |
4 | Objective‐C入門 | Swift言語応用編 |
5 | Foundationフレームワーク入門 | Objective‐C概要・Foundationフレームワーク概要 |
6 | GUIプログラミング | 同左(コードはSwift) |
7 | UI Kit入門 | 同左(コードはSwift) |
8 | テーブルビュー | 同左(コードはSwift) |
9 | ナビゲーション | 同左(コードはSwift) |
10 | HTTP通信 | 同左(コードはSwift) |
11 | ローカルデータ・RDBの扱い | 同左(コードはSwift) |
12 | グラフィック | 同左(コードはSwift) |
13 | 各種APIを使ってみよう | 同左(コードはSwift) |
14 | ユニットテスト | 同左(コードはSwift) |
Swift言語
Swiftは式や構文などは、既に何らかのプログラミング言語を学んだ人には容易に理解できると思います。オブジェクト指向もJava等と大きくは違いませんので、オブジェクト指向が身についている人には問題ないと思います(実はJava等でそれなりにプログラミング経験があってもオブジェクト指向を理解してない人がいる事は事実ですが・・・)
Swiftの一つ特徴は、強い静的型付けにあると思います。Objective-C(C言語や、古いJava)を使ってきた人にはやや戸惑うかもしれません、またOptionalのように安全性の高いコードを書くためには正しく理解する必要がある概念があります。SwiftのOptionalは!を付ける事で従来のObjectve-C(C言語)と同様に書けるようになりますが、せっかくの安全性を無効にしてしまいます。
Objective-Cは?
Objective-C言語は、全く教えなくて良いのでしょうか? 私は NO だと思います。
ただし、入門講座では文法などを教える必要はなく、Foundationフレームワークや UiKit等の Objective-Cで作られたライブラリーを使いこなすために必要な知識だけで良いと思います。Swiftと大きく違う動的にメソッド等を決定する仕組みなどを正しく理解してもらい、インタフェースのコードが正しく書けるようになる必要がある思います。
もし、時間的に余裕があれば(奇妙な)Objective-Cの文法を軽く教えておくと、現在〜数年間は Swift と Objective-C が混在する iOS開発の現場ではやくに立つかもしれません。
C言語は?
C言語に関しては入門講座では全く教えなくて良いのではと思います。もちろんプログラマーたるものC言語(ポインター、メモリー管理)は知らなければならないと思いますが、Swiftではポインターやメモリー管理は上手く隠されているので先ずはパスし、UIやiOS APIに時間を使った方が有意義だと思います。
その他
UIKitやiOS APIに付いては、サンプルコードをSwiftに書き換えてiOS8で変わった部分に対応すれするだけです(作業量は多いですが…)。
EY-Officeでは Swift言語が正式リリースされたら、早急にSwiftを使ったiOS教が出来るように準備しています。