翔泳社が12月14日(月)に刊行した『ほんきで学ぶSwift+iOSアプリ開発入門 Swift 2、X Code 7、iOS 9対応』は、Androidアプリ開発だけでは趣味も仕事も物足りない、そんな皆さんにお送りする入門書です。
著者の加藤勝也さんは、ご自身もそうであったように初心者は「まず手を動かして作ってみる」ことが重要だとおっしゃいます。理屈はそのあとから学んだほうが、効率がいいとのこと。本書はまさに、実習のあとに講義で仕組みを解説しています。
今回、刊行にあたって加藤さんにインタビューをお願いしました。小学生の頃からプログラミングをやっていたという加藤さんは、ハードウェアのデジタル回路設計や組み込みソフトウェアの開発をしていた頃からiOS、Androidアプリの制作を趣味にされており、ひょんなことからそれが仕事になったという経歴の持ち主。
趣味であれ仕事であれ、iOSアプリ開発を勉強し始めたいとお考えの方は、ぜひ参考にしてみてください。
ファミコンで遊ぶ友達の隣でゲームを作っていた小学生時代
――加藤さんはもともと趣味でアプリ開発をされていて、それがいまの仕事になったという経歴をお持ちとのこと。前職はどんな仕事で、なぜアプリを作ろうと思われたのでしょうか。
加藤:前職は新卒で入社した家電メーカーにいました。スマートフォンのアプリ開発とは畑違いですが、ハードウェアのデジタル回路設計をしていたんです。その頃にWindows Mobileが出てきました。2000年当時ですから、携帯電話はまだ一部のビジネスマンだけが使う時代です。ですが、僕は小学生のときからプログラミングをやっていたので、携帯電話にももちろん興味を持って、土日に趣味としてアプリを作っていました。
そのうちiPhoneやAndroidが出てきて「この波に乗らねば」と思い、自分で作るだけでなく勉強会で発表もし始めました。一方で、会社ではカメラなどの組み込みソフトウェアを開発していました。が、会社としても時代に合わせてスマートフォンのアプリ開発をしなければならないということになり、新しく部署が立ち上がったんです。社内で人材探しが始まり、「実はできます」と手を挙げました。そこでアプリ開発が仕事になったわけです。
――小学生のときからプログラミングをしていたということは、1980年代から1990年代にかけての頃だと思いますが、加藤さんは珍しい小学生だったのではないでしょうか。
加藤:周りに同じ趣味の子はいませんでしたね。図書館でプログラミングの本を借りていました。友達がファミコンなどで遊んでいるとき、僕は隣でゲームを作って、遊んでもらっていたんです。面白いとか面白くないとか、いろいろ言われますが、感想をもらうのがとても嬉しかったですね。だから、将来プログラムを書く仕事をしたいなと思ったんです。
そして夢叶ってといいますか、家電メーカーのソフトウェア専門の小会社に入社しました。そうしたらなぜかハードウェア部門もありまして、私は天邪鬼な性格なので、みんながやらないハードウェアをやることにしたんですよ。
――あえて選んだのがハードウェア開発だったとのことですが、なぜまたソフトウェアの開発に?
加藤:ハードウェアをやったからこそ、やっぱりソフトウェアがいいなと感じたんです。ハードウェアは見た目には分かりにくくて、お客さんに自分が作った機能を説明しても「そもそもハードウェアって何?」と言われることもありました。デジカメの起動時間が早くなったと言っても伝えづらくて、目に見えるもので喜んでもらいたいという気持ちが生まれました。
前職では新しい部署で2、3年やっていました。ですが、親会社の仕事しかなく、もっといろんなことをしたいと思うようになり、スマートフォン専門の開発会社であるフェンリル株式会社に転職しました。そこでもう6年ほど仕事をしています。
最近はマネジメントやディレクションの業務が中心にはなりましたが、いまでも趣味ではアプリを作っています。手を動かしていないと錆びつきますからね(笑)。
初心者の頃はまず手を動かして、達成感を積み上げる
――そうしたお話をうかがうと、初心者向けである本書に加藤さんのご経験が存分に活かされているのだと納得できますね。
加藤:初心者の頃って、最初に理論だけ学んでも面白くなくて、途中でつまづいちゃうんですよね。だから、まずは手を動かして、そのあとにどうして動くのかを理屈で知るという流れが結局は分かりやすい近道なのかなと思います。
――学びたてのときに難しかったことは何ですか?
加藤:本に記述されているとおりに書いても動作しないときです。まずは写経なんですけど、1行違うだけで動かないので、そこで泥沼にはまってしまうこともありました。いまみたいにサンプルコードはありませんでしたから、1文字のスペルミスで思ったとおりに動いてくれないのは辛かったですね。
でも、実はその試行錯誤が楽しいんですよ。自分で書いたものが、最初はなぜ動くのか分からなくても、とにかく動くと楽しいわけです。詳しくは分かっていなくても、目で見えるのは重要ですね。本書でも、まずは手を動かして作ってもらうことを最優先に考えています。
モチベーションを保つコツは、理屈はよく分かっていなくても、動作するアプリを作ったという達成感を積み上げていくことですね。
――おっしゃるように、本書はまさに試行錯誤して学んでいくための工夫がなされています。まず手を動かす、ということである程度知識が必要だと感じますが、読者はどれくらいの知識を持っていると読み進めやすいんでしょうか。
加藤:冒頭でSwiftの説明はしていますが、詳しくはないので、本当のゼロからだとちょっと難しいかなと。でも、一度アプリ開発をやろうと試みて諦めた人は挑戦してみてほしいですね。また、僕みたいに組み込みなど全然違う分野でプログラミングをやっている人で、アプリ開発に興味があるならおすすめできます。Androidで開発している人にとっては、iOSではこうやるんだなとすんなり理解してもらえるのではと思いますね。
iOSとAndroid、どちらでも開発できる人材が求められている
――Androidだけで開発している方は本書を読む理由がはっきりしていると思いますが、AndroidかiOSか、どちらを学んだらいいのか迷っている方も多いのではないでしょうか。
加藤:昔だとiOSは画面サイズが決まっている分、敷居が低かったんですが、いまは敷居が高くなりつつありますよね。普及台数も半々くらいで、みんなが持っているからというのもそこまで強い理由になりません。
――むしろ、両方学ばなければならない時代になっているんでしょうか。最近、翔泳社からも寺園聖文さんの『ほんきで学ぶAndroidアプリ入門開発』を刊行しました。実際問題として、両方学ぶのはたいへんですか?
加藤:片方を知っていると応用が効きますから、それほど難しくはないと思います。いままではiOSアプリ開発にはObjective-Cという独特な言語が必要で、これはほかに応用しづらかったんですが、今回のSwiftは覚えればほかの言語で考え方を応用できます。逆にほかの最近の言語を知っていれば、Swiftを学ぶときに役に立ちます。
僕がいまいる会社でも両方できる人材を探していますし、入社時にどちらかしかできない場合は仕事をやる中でもう片方を覚えてもらうようにしています。iOSが登場した当時は「iOSで開発できます」というだけで売りになりましたが、いまはどちらかができて当然、両方できる人材こそが求められています。なので、両方学んで得意不得意を知るのが大事だと思います。
「何を調べればいいのか分からない」を乗り越えるために
――アプリ開発を始めたい方にとって、最も大きな課題は何なのでしょうか。
加藤:皆さんアイデアはお持ちでしょうが、それを形にするために何から手をつけたらいいのか分からないはずです。AppleもGoogleも開発者サイトがあり、そこに情報がほぼ網羅されていますが、たとえば日記アプリを作りたいときにどの知識が必要なのか、どのclassを覚えないといけないのか。これを探し出せるかどうかが最初の壁だと思います。
本書では、より深く知っていくためのきっかけを広く用意していますので、そこから公式ドキュメントを探せるようになるでしょう。アプリ開発をするうえで重要なのは、何を調べたら自分がやりたいことを実現できるのか分かるようになることです。
――本書はまさに趣味から始めたい方にふさわしい入門書ですが、趣味を仕事にする際に必要なこと、注意することはありますか?
加藤:繰り返しになりますが、何を調べればいいか分からない状態から、自分のやりたいことを調べられる状態になることです。仕事になると、やはりお客さんの要望や社内の規格などがありますので、自分が知らないことをどんどん実装していかなければなりません。そうなると公式ドキュメントを読めなくては何もできません。
classなどをすべて覚えておく必要はありませんが、ドキュメントを読んだらできる地力が必須です。その意味で、本書は「調べられるようになる」ための第一歩です。そこから、もっと深く知りたいという気持ちを次のステップに繋げていってほしいですね。あるメソッドでこういうことができるようになった、では同じメソッドでほかに何ができるのか、と調べていってみてください。
50以上のレッスンがありますから、1日に一つか二つレッスンをやって、1か月~2か月くらいかけて学んでみるといいのではないでしょうか。
初心者でも情報共有&発信を!
――先ほどお話に上がった寺園さん、あるいは『ほんきで学ぶUnityゲーム開発入門』の夏木雅規さんも同じ関西の勉強会で活動されていますよね。本書の対象読者のような、学び始めた方も勉強会に参加したほうがいいのでしょうか。
補足
◆寺園さんのインタビューはこちら:『ほんきで学ぶAndroidアプリ入門開発』
◆夏木さんのインタビューはこちら:『ほんきで学ぶUnityゲーム開発入門』
加藤:そうですね、参加したほうがいいです。勉強会で学ぶことがありますし、そのあとに同じレベルの人に悩み相談したり、どうやって実装したらいいのかを話したりすると、意外なところで解決策が飛び出してくることがあります。エンジニア同士で会話することは大切です。
リアルでは勉強会がそうですが、ネットでもブログで情報発信するのがいいですね。僕も技術系のブログにはずいぶん助けられましたし、最初に本を出させてもらったときもブログがきっかけでお話が来たんです。
なので、本書を読んで覚えたこと、やってみたことを発信する側になってもらいたいですね。勉強会で発表したり本を書いたりといった大それたことでなくても、ブログで書くのもいいですし、Twitterで「こうしたら解決できた」とつぶやくだけでもいいですし、何かしたら情報発信してエンジニアの輪を広げていってほしいです。
情報発信することは、もちろんそれを読んだ人のためになるんですが、実は自分のためになる部分も大きいんです。めったなことは発表できませんから、ちゃんと自分で調べますよね。それが勉強になるわけです。また、発信すれば間違いを指摘してもらえることもあります……へこみますが(笑)。自分のアプリや仕事で不具合を出すよりは、そういう場で直せるのはラッキーです。
本書を読み終わったら、技術ブログを立ち上げてほしいですね。僕もそういう中で育ってきたので、いろいろコミュニケーションを広げてみてください。本書がきっかけになると嬉しいです。
ほんきで学ぶSwift+iOSアプリ開発入門
Swift 2、X Code 7、iOS 9対応
著者:加藤勝也
発売日:2015年12月14日(月)
定価:2,800円(税別)
- CHAPTER 01 iOSアプリ開発の準備をする
- CHAPTER 02 Xcodeによるアプリ開発の基本
- CHAPTER 03 Swiftの基本を学ぶ
- CHAPTER 04 UIコンポーネント活用の基本を学ぶ
- CHAPTER 05 簡単な電卓アプリを作る
- CHAPTER 06 日記アプリを作る
- CHAPTER 07 カメラアプリを作る
- CHAPTER 08 センサアプリを作る
- CHAPTER 09 もぐらたたきゲームを作る
- CHAPTER 10 国際化対応をして広告を表示する