iOSアプリがついにエンプラに
スマートフォンアプリ開発はiPhoneの登場より10年を迎えますが、エンタープライズの世界ではそろそろ案件が出始めたと感じる人も多いのではないでしょうか。
以前も確かにB2B型の案件があったかもしれませんが、これまではそれ専門の会社がお客様から受注して開発していた(もしくは、Webビューで逃げてきた)と思います。しかし、クラウドのますますの隆盛により我々のお仕事もどんどん減っていき(多様化し)、自社からもスマホアプリも積極的にいけーと言われはじめてないでしょうか。
一度挫折した人も、実は興味があったと言う人もぜひ新年のやる気があるうちにはじめてみませんか。
始めてまだ2週間ですけど、感じたことをメモしておきます。また、初めてSwiftを触るにあたって、既存のスキルセットがどの程度役立ちそうかを最後にまとめました。
準備するもの
Mac
iOSアプリを開発するのにMacは最終的に必ず必要になります。ionic2やXamarinなどマルチプラットフォーム向けの開発手法があるのは事実ですが、JavaScriptでの開発は覚えることが多すぎたり、余計なところでハマることが多いのでやめておきましょう。
XamarinはさすがMicrosoftと言える開発環境ですが、簡単に言うとObjective-CやSwiftのラップ実装なので覚えることがいっぱいです。C#なら普通にかけるけどと言う人でもやめておいたほうが良いでしょう。iOSアプリを書くなら、現代ではXCode9とSwift4です。
Macにもたくさん種類がありますが、現在販売されているMacあればどれでもいいと思います。StoryBoardなど快適に操作するのに画面は大きなほうが良いですが外付けディスプレイでも対応できるしなんでもいいですね。
iPad or iPhone
Xcodeにはエミュレータがありますが、すぐに実機で動かしたいと思うはずです。持ってなければ購入しましょう。エミュレータ on Macで動かしたところで起動時間やスクロール性能はわかりませんので、実機で動作させると言うのはとても大事です。
開発者ライセンス(Apple Developer Program)
まだいいです。はやる気もちは抑えてください。申請に必要なことを知るよりもまずは先に実装力を身につけましょう。公開したいと思うものが本当にできたら有償プログラムに入りましょう。
書籍
本気ではじめるiPhoneアプリ作り
Yahooのアプリ開発者が書いたアプリ作りのノウハウが書かれている良本です。良いと感じた理由はこれが1冊目ではなく、シリーズであると言うことと、Xcode9.x/Swift4.x対応だからです。プログラム初心者には厳しいですが、C#やJavaをこれまでそこそこ書いてきた人にはすんなり受け入れられるでしょう。
なので、安いからといって、ブックオフで古い本を買うのは絶対やめましょう。
また、ネット上に教科書的なものがありますが、それもまずは控えておきましょう。おそらく、最初は写経や応用しながら書いていたサンプルコードが、疲れてコピペに走ってしまうことが目に見えるからです。その時点であなたのiPhoneアプリ開発の学習は the end です。もう一度、初詣からやり直しです。
まとめ
「もう、まとめかい!」と言う声が聞こえてきそうですが、私が下手に言語やアプリ開発のポイントなどを書くよりも「本気ではじめるiPhoneアプリ作り」を読んで手を動かしてもらうと、SwiftからiOSアプリ開発を始めてよかったと思えると思います。
ただ、人によってスタート位置が違うことも事実だと思いますので、私がSwift学習で感じた役に立った既存スキルを以下に記載します。
役に立つ既存スキル
JavaやC#で培ったオブジェクト指向
継承やThrowなどはSwiftでもあります。すでにわかってるなら話はとても早いです。クラスを使用したプログラミングも必要になってきますので、静的型付け言語の経験は大事になってきます。
JavaScriptで学んだ関数型プログラミング
関数型プログラミングはあちらこちらに出てきます。わからないとちょっと厳しいかもしれません。昨年プログラミングには階段があると言う「記事」を書いたのでこの辺りはぜひ読んで見てください。
Lotus Notes開発で学んだIDEの開発
Notesでは画面を表示する際に色々なタイミングでイベントをフックできます。そして、それはIDEを駆使しながら、イベント毎に記述していきます。画面やフィールドのプロパティのオプションも豊富で色々と覚えることがあります。Xcodeを使用した開発はそれに似ているところがあるので、開発を進める中でも既視感が感じられました。
iPhoneやiPadを買い続けてきた富豪スキル
この10年iOS端末を書い続けてきた継続性は色々なメソッドを利用する際に役立ちます。そして、何よりもiOSアプリを作る際にiPhone自体のこれまでのUXの変遷を知っているのは何者にも代え難いはずです。iOS端末を持っていない人がiOSアプリを作るというのはかなり厳しいと思うので早々に購入したほうが良いと思います。