アプリ開発

アプリ開発

『Unityの教科書2020』でつまづいた箇所とこの本の不親切なところなど

Unityの教本を紹介するサイトなんかでよくオススメとして出てくる『Unityの教科書2020』という本。

この本の電子書籍版を買って、しばらく色々と学習してみたけれども、どうもこの本が目指すところの「スマホ実機での実行」というのが躓きまくったので、この本で学習しようとする人に共有。アマゾンなんかのレビューも高評価が多いけど、自分は高い評価はできないでいる。

アプリはスマホ実機で動作してナンボ

自分はWebデザイン系出身だが、デザインの世界では実機で思惑通りに表示~動作できてナンボ。最終的な実機の確認もせずに「はい、できました! 完成です」なんて言ったら、上司やクライアントに蹴飛ばされる。

だが、これまでの現場で接した人なんかを見ても、プログラミングやエンジニア系の人はコードには関心があっても、実機動作とかビジュアルにはあまり関心がないような気がする。

だからなのか、この本でも実機で動作させる方法の記述に関してはコラムで2~3ページくらいの軽い内容でしか書かれていない。

UnityをiPhoneやで動作させるのは大変

Unityでスマホアプリを初めて書き出す人は知っておいて損はないが、Androidはそうでもないものの、iPhoneやiPad用に書き出すのはかなり大変。

iOSやiPad OS用に書き出すには、XcodeというMacでしか使えないアプリも必要なので、それなりの新しい世代のMacが必要。所持していない人はその時点で無理。

このXcodeも厄介で、エラーメッセージなんかも含めて全て英語というハードルもある。Unityで作ったプロジェクトを正しく書き出すには『Unityの教科書2020』で解説されている程度の知識だけでは躓く可能性が高い。

Unity、Mac OS、iPhoneやiPadの機種やOSのバージョンなど、様々な組み合わせや手順が完璧じゃないと正しく書き出せないのだ。

本に書かれていない手順も満載

筆者の場合は『Unityの教科書2020』に書いてある手順で書き出し操作したはずだが、Xcodeに読み込ませると大量のエラーが表示される。エラーの内容もわかるようで全くわからない(苦笑)

たぶん、あの本の著者の環境と何かが違って、コードの変換動作みたいなのが必要らしかった。もちろん『Unityの教科書2020』にも、サポートサイトにもその説明は書かれていない。必要らしいところを変換して、Apple IDのログイン設定なんかも一つ一つ見直して数カ月かかって書き出したら、やっと実機動作させることができた。

配布されているサンプルコードでも試したので、コードが間違っているということもない。

出版社に問い合わせても無意味だった

『Unityの教科書2020』は2800くらいする割としっかりした値段。

上記の事象について出版社に何度か問い合わせたものの無意味だった。2800円も取っておいてサポートしないというのもボッタくりだが、昔、リクルート系の会社の編集部で働いていたことがあるけども、編集者というのはブラック体育会系の代表みたいな仕事だ。

毎日締め切りに追われて、上司に小言を言われて、ある程度の年齢までに偉くならないと生き残ることができない組織なのである。

結論、アプリというのは実機で動作させるところまでできてナンボなので、薄っぺらいレビューだけじゃ判断できないってことを学んだ。Unityですスマホのゲーム作ったりしている会社とかは凄いね。

そもそも、初心者の無償の学習と違って、ゲーム会社とかには金で雇われた凄い人たちが沢山いるんだろうけど、iPhoneアプリ書き出しとか普通にメンドイ。こんだけ無意味に悩んでしまうと、他にもっと楽しくて有意義なことができそうな気がいっぱいしてくるもん。

アプリ開発

【2021年版】UnityでiPhone実機向けビルドでエラー出まくり現象を乗り越えた話

Unityで実機iPhone向けにアプリをビルドしようとして苦節半年、挫折しかけながらようやく乗り越えた話。

ブログラグミングもUnityもXcodeも超初心者だけど、乗り越えようとして挫折しかけている全国の誰か(推定5人くらい)の参考になればと記述。

そもそもUnityに取り組んだ理由

スマホアプリを開発するには色々な方法がある。AndroidならAndroid Studio、iPhoneならXcode(Macのみ)という純正開発ツールがあるけども、Unityならワンソースで簡単に(実際そうでもない気もするが)違うデバイス向けのアプリが作れる。

Unityはゲーム開発ツールだけど、工夫次第で色々なアプリが作れるんじゃないかと思った。

iOSアプリは初心者にはハードルが高かった

プログラミングやアプリ開発バリバリって人には笑える話かもしれないが、初心者の戯言としてだが、Androidの実機実行はそんなにハードルは高くなかった。AndroidはWindowsでも完結できるけど、iPhoneはMacがないと開発できないし、アップル縛りが雁字搦めだったのだ。

UnityのプロジェクトをiPhone実機で実行できるようにするには「UnityでiPhone向けに書き出し」→「Xcodeで開いて実機向けにビルド」という2ステップを踏む。どちらかに設定などに不備があるとエラーで跳ねられるのだ。

以下、UnityのプロジェクトをiPhone実機で実行するまでに躓いた箇所と教訓を書いていく。

Xcodeは英語オンリーの世界

これもプログラミングの世界じゃ当たり前と言えば当たり前だが、UnityもXcodeも基本的に英語オンリーの世界だ。

様々な箇所でエラーメッセージが出ても、基本的には何かしらのエラーの理由があるので、検索するなり翻訳するなりして原因を調べるとよい。筆者は某初心者向けの人気らしい解説書を使ったが、これに書いてある実機ビルドの解説など、何もエラーが出ないのを前提にしている。

バージョン合わせが大事

実機ビルドまでの道のりは、unityやXcode、iPhone実機のiOSバージョンなど基本的にピタッと適合していないとダメだ。

特にiOSとXcodeのバージョンは基本的に対になっている。iOSをバージョンアップした時は、Xcodeもバージョンアップしないとならない。このへんは見当違いのエラーメッセージが出たりするが、なんでだか認識しないとか実機ビルドできない時はXcodeを最新バージョンにすることで解決できることが多い。

Unityのバージョンはそんなに関係ないみたいで、書籍等で解決しているバージョンに合わせるとよい。

XcodeのApple ID設定だとかTeamだとか

Android Studioと違って、XcodeはApple IDと紐付けられている。ビルドする時にネット経由で認証みたいのがされて、ビルドできる仕組みらしい。最初は無料IDだとUnityのビルドができないのでは? とか思ったが、ちゃんと設定すれば実機ビルドもできた。

Unityのプロジェクト書き出しにおいても、アプリIDのようなものを他の人(?)と被らないに設定する必要がある。このへんは書籍でも解説されていた。

あとはTeamというのも設定しないとならない。一人で引き籠って開発しているだけでもチーム? と思うけど、チームを設定しないとエラーが出る。そのへんは英語のエラーメッセージでも「どこどこを設定しろ」みたいのが表示されるので、頑張って英語を読まないとならない。

UnityをXcodeのシミュレータで実行する設定

Unityの実機用とシミュレーター用のビルドは別物・・・らしい

普通にXcodeだけで開発していたら、同じプロジェクトでシミューレーターでも実機でも実行できる状態になると思う。

ところが、Unityから書き出したXcodeのプロジェクトは何かか全く違うらしい。書き出し時に「Player Setting」という画面で、実機向けなのかシミューレーター向けなのかを設定しないと、Xcodeに取り込んだ時に違う側では実行できない。この部分もかなり躓いてしまった。

お手軽にシミュレーターで実行しようと思っても、実機向けにビルドした場合は起動できないのだ。と言っても、実機では実行できてもシミュレーターでうまいこと動作した試しがないのだが。何かを設定しないとならないらしい。

教訓 偉い人もわからないのかもしれない

実機にビルドしてからも本体設定で認証がいる(面倒臭すぎる)

とりあえずUnityのプロジェクトをiPhone実機で実行するという、個人的な一大プロジェクトは完了したので、しばらく(できれば一生w)UnityでiOSアプリを開発するのは距離を置こうと思うものの、この件でわかったのはUnityの本を書いている人や、Unityの本を出している出版社の人も、この手の複雑な事象はサクっと解決できないということだった。

本に書いてある通りにやってもうまくいかないので、本の出版社宛てに問い合わせるも、結果的に見当違いの回答くらいしか得られなかったのである。

端的にまとめると、実機実行までに躓いた点は以下の部分だ。

1、XcodeとiPhone実機のバージョン合わせ
2、書籍の説明不足
3、そもそも、UnityからiPhone実機で実行するまでが大変

著者によって解説の方向性、着眼点、詳しさが違うので、「決定版!」みたいな宣伝文句だろうと、入門書は複数冊あった方がよい。Unityの基本を解説しているような本でも、実機実行のあたりは説明がコラムレベルだったりする。一番難しいところでもあり、Web制作経験者からしても実機で実行できるのが全てだと思うのだけど。

ふぅー、なんちゃってエンジニアは思ったほど全然クリエイティブじゃない気がして、徒労な感じがしてしまった。なぜ世の中はここまで複雑化してしまったのか・・・。

アプリ開発

技術系の書籍を買う時にSBクリエイティブは避けたい個人的理由

アプリ開発カテゴリーか自給自足カテゴリーかで迷ったが、技術系の書籍を買う時は出版社名も気にしないとならんという話。

書籍の編集部とはどんなところか(独断と偏見)

以前、全国の書店やコンビニで扱っている誰でも知っているレベルの雑誌やムックを出している某出版系企業に勤めていた方がある。

その経験から言うと、書籍の編集部というのはブラックな職場だ。私は編集者ではなかったが、編集者たちと仕事をしていたのでよく知っている。

深夜まで仕事関係のメールが来るのは当たり前で、取材などでは朝日が登る前に家を出るのま当たり前の環境だ。

それが全ての出版社だとは思わないが、一部を切り取ればそんな会社があるのも事実だ。

穏やかな暮らしをしている側からすると、不健全で恐ろしいところなのだ。まして、出版不況でピリピリしているというのもある。

技術系書籍には質問が付き物

ファンタジー小説と違って、技術本は質問が付き物だ。紙面の限られている書籍という媒体の特性や、上記のようなピリ付いた環境では説明不足なまま、書籍が発行されるこたがままあるからだ。

大抵の技術系書籍は本の内容に関してのユーザーサポートがある。本の最初の方か、最後の方に問い合わせ方法が書いてあるはず。

SBクリエイティブは質問サポートが悪い

こうした書籍内容の問い合わせは、どの程度対応するのかの一般的な基準はわからない。

ただ、初心者向けを謳った本なら、最低限としてその本に金を出した人には、本の内容を理解できるところまで説明すべきかと思う。

ところが、私が買ったSBクリエイティブという会社のサポートは期待外れだった。質問を送っても返信に1ヶ月かかるは、時間がかかっても内容はケータイで打ってるのかと思うような数行レベルだった。

そう言えば、以前ソフトバンク系の会社に勤めていたことがあるが、極端に利益優先なブラック体質なのも関係しているのかもしれない。

会社や著者にしたら本を売れば利益確定で、サポートは余計な負債でしかないから、形だけの意味のないものになるのであろう。そもそも、追加質問しなきゃ、内容がわからない時点で商品として駄目なわけで。

まあ一応、出版社の編集部に在籍したことのある立場から言わせるとそんなふうに思った。技術本は出版社で選ぶのも大事だ。