ずぶの素人がiPhoneアプリを開発することになった話

プログラム経験のまったくない素人(50、♂)が、突然iPhoneアプリを作ることになりました。備忘録、ブックマーク、あとはモチベーション維持のため、日誌をつけてみます。

相変わらずPlay Groundsにはまってます

f:id:quiet_room:20190522032236j:plainSwift Playgroundsも佳境に入ってまいりました……と言いたいところですが、まあ佳境には違いないんだけど、問題が徐々に難しくなってきて、ただ単に手を動かしているだけでは解けないものも出てきた。

でも、時間を割けるのは平日の帰りの電車だけ。 今日クリアしたのはfor条件分岐のとこだけだった。 うー、もうちょっとペースを上げないとな。

今日はここまで〜。

Swift Playgrounds、楽しい!

今日は通勤中しか時間が取れなかったので、iPadに入れたSwift Playgroundsを進めてみました。

これがもう、よく出来てるんです。
ゲーム仕立てで、Swiftが覚えられる。

f:id:quiet_room:20190521011128j:plain

上半分は3Dアニメーションになってて、ステージにbyte君がいます(ぐりぐり動く)。
下半分がコーディングエリアになってます。
書いたコードで彼を動かして、面ごとに設定された課題をクリアしていくというのが基本構成です。

書くといっても、Scratchみたいにパネル化されたコードをタップしたりドラッグしたりするだけだから簡単です。

今は「コードを学ぼう1」っていう最初のシリーズをやってて、

  • コマンド
  • 関数
  • forループ

まで終わったところです。

けっこうボリュームがあるから、今週はこればっかりになるかもなあ。
楽しいのはいいんだけど、アプリ開発に近づいている気は全然しませんな(笑)。

今日はこんなとこでーす。

参考書2

f:id:quiet_room:20190520012947j:plain
ぱくたそ(www.pakutaso.com)

Swiftの参考書ですが、ちょい待てと思ってAmazonで見てみたら、Xcode 10.xに対応しているものもちゃんとありました。
昔から、慌てる○○は儲けが少ない、などと申しますね。

というわけで、さきほどの本はキャンセルし、新たに以下の段取りで入門編を進めて参ります。

  • 『ゼロから始める超入門 はじめてのプログラミング』を読んでみる
  • iPad用のSwift Playgroundを一通りこなす
  • 『絶対に挫折しないiPhoneアプリ開発「超」入門 第7版 』をチェックして、よさそうだったら読んでみる

これはkindle unlimitedに対応していたので、とりあえず落としてきました。ざっと目を通したところ、プログラムの入門もさることながら、「コンピュータとはなにか」とか、「プログラムの本質とは」とか、「プログラミングに必要なツールの概要」とか、そんなコーディング以前の話が充実していて、座学好きの私にはいい感じ。
プログラミング入門のところは、iPad用のPlaygroundに準拠してるので、これもApp Storeでさっそく落としてみました。

こっちは、Amazonレビュワーさんがみな絶賛している本。ただ、理論と実践が車の両輪だとしたら、わりと実践寄りの様子。Swiftの全体像がわかるというわけではなさそうなので、一度本屋さんで中身を見てみよう。
サンプルを見ると、いきなり地図アプリとかを作っていて、大技炸裂という感じです。モチベーションを保つには、こういうハッタリも必要ですよね。

ではまた。

参考書を買う

f:id:quiet_room:20190519231953j:plain
ぱくたそ(www.pakutaso.com)

受験時代からの習い性で、新しいスキルを身につけるとなると、なんらか参考書的なものがないと落ち着かない性格なのです。
ということで、Swift入門的なページをさまよって、評判よさげなものを探したところ、『本気ではじめるiPhoneアプリ作り Xcode 7.x+Swift 2.x対応 黒帯エンジニアがしっかり教える基本テクニック』という本を見つけました。

情報元はこちら。

www.sejuku.net

刊行が2016年で、対応しているのがXcode 7.x + Swift 2.xと古いのが(現在はXcode 10.2.1 + Swift 5.0)気になりますが、まあ、概要がわかればよろしい。
それと、毎日Swiftのために特別に時間は取れないので、通勤時間に勉強するには本が便利なんです。

というわけで、到着を待ちます。

Swiftの開発環境を整える

f:id:quiet_room:20190519230320j:plain
ぱくたそ(www.pakutaso.com)

というわけで、まずはSwiftの開発環境とやらを整えることにしました。

ちなみに、開発機材は12インチMacbook(2017)です。

Swiftの開発環境は、Appleが提供しているXcodeを使うらしい。
これはApp Storeからインストールできる。

f:id:quiet_room:20190519230910p:plain

待つこと20分……くらい? Swiftに関するWebを見ている間にインストールが終わりました。

で、さっそく立ち上げてみる。 こんな感じ。

f:id:quiet_room:20190519231115p:plain

さっきちょっと遊んじゃったんで、右側に余計なファイルが1個見えてるけど、初起動のときはまっさら。
で、

  • Get started with a playground
  • Create a new Xcode project
  • Clone an existing project

とありまして、playgroundというのは、Appleが初学者のために用意してある、まあチュートリアルみたいなものですかね。
なにか作ろうと思ったら、中段のCreate a new projectを選ぶわけですね。
最後のは、作ったなにかの複製を作るときですねきっと。
まあ、追々慣れていきます。

まずは言語を決める

f:id:quiet_room:20190519230016j:plain
ぱくたそ(www.pakutaso.com)

弟のアイディアというのは、画期的なTodoリスト兼スケジューラ、ということらしい。

で、問題は彼はAndroidで私はiPhoneだということ。
こないだまでiPhoneだったのに、宗旨変えしたらしい。
でもまあ、国内のスマホのシェアとか、あとAndroidはいろんなスペックの機種がありすぎて、どれでも動くアプリを作るのは大変そうだとか、そんなようなことを相談して、まずはiPhoneアプリを作ろうというところで決着した。

Androidの場合は、開発はJavaで行うんだが、iPhoneの場合は、Objective CかSwift。Javaは知ってたんだけど、Objective C? なんじゃそりゃ。

というわけで、調べてみた。

Objective Cは、かつてAppleを追い出されたジョブズが、理想のコンピュータを作ろうと立ち上げたNextStepで採用した言語とのこと。今のMacのOS=OSXUnixベースになっているけど、ジョブズAppleに帰還するときにNextStepの技術を持ち込んだのが由来だとか。まあ、OSXアプリ開発には相性がいいんだろうね。

でも、Objective Cは何十年も前に作られた言語だから、最新の言語にはいろいろ見劣りするらしい。

そこでAppleが2014年に発表したのがSwiftという新しい言語。 まあ、名前はかっこいい。速そう。
Objective C用のツールやらライブラリやらの蓄積は分厚いものがあるけれど、今後はSwiftが開発の主力になっていくだろうというのが業界筋の見立てです。

ならばSwift一択じゃない、と思うでしょ。

私もそう思ったんですけど、いろいろ調べてみると、

  • 新しい言語のため、(言語自体の)開発が急ピッチで、バージョンアップや仕様変更が頻繁
  • ドキュメント(参考資料)が貧弱
  • さっきも書いたけど、ツールやライブラリも貧弱
  • (うちには関係ないけど)古いアプリやシステムがObjective Cで書かれている場合、複数言語を混在させると混乱するリスクがある

などというデメリットもあるんだそうだ。

まあ、でも、今からやるならSwiftだよね。
どっちにしろ、Objective CがいいとかSwiftのここがちょっととか、言える身分じゃないんだし。

というわけで、言語はSwiftに決定。

突然ですが、iPhoneアプリ作ります

f:id:quiet_room:20190519225009j:plain
ぱくたそ(www.pakutaso.com)

突然、弟から「お兄ちゃん、アプリ作らない? すごいいいアイディアがあるんだけど」と持ちかけられて、「えーめんどくさそうーでもまあやってもいいけど」と答えたのが昨日(2019/5/18)の話。

ちなみに、

  • 素人です。プログラムなんて書いたことありません
  • 文系です。数学は高校2年の時にきっぱりと捨てました
  • 50歳です。プログラマの定年は35歳とか……
  • 仕事不規則かつ長時間労働

というスペック。

でもまあ、やると言ったからには奮闘してみよう。
奮闘してみるからには、日誌的なものも残しておこう、というのがこのBlog開設のきっかけです。
iPhoneアプリを作りたいと思っている人、多いだろうしね。
なにかの参考になればいいなと思います。

さて、ずぶの素人が、独学で、どこまでいけるか、乞うご期待。