朗読と音眠れない夜へ、音の魔法を。「朗読と音」

なぜかSwiftを勉強して、そして、実感した iphone のすごさ

2020/12/20

私は「朗読と音」の開発を行っているエンジニア兼デザイナーです。本職はWebデザイナーをしていますが、ひょんなことからこの朗読と音のソースを管理、更新、改修する事になってしまいました。

この記事は2015年に「朗読と音」を前任のエンジニアからソースを引き継いだ時に、実装されているswiftというiOS専用言語に感じた事を私のブログに書いていた物です。「朗読と音」の開発話としてこちらにも掲載したいと思います。

1ヶ月半参考にした著書

1ヶ月半勉強してみていろいろなことがわかりました。っといってもプログラミングに長けているわけでもなく、あまり知識ともに経験も薄く大した考えではないですが、共有したいと思います。

まずはこの1ヶ月半で読んだ参考書の紹介です。

iphoneアプリ開発「超」入門

そもそも、swift自体は2014年4月に開催された「WWDC 2014」で公表されたばかりの言語です。なので、アプリもそうだと思いますが、本や参考サイトも乏しい状態です。多くの著書が基本的な仕様で止まっている感じです。できれば「逆引き」みたいな参考書があると非常に助かったのですが。

そして、こちらの本はiphoneでのアプリ開発の流れを紹介した本です。作成、プログラミングから、公開までの流れが詳しく書いてあるので、アプリ開発初心者にはとても参考になる本です。iOS7でも同じ本があるのですが、やはりswiftに対応しているのが良いと思います。

たのしいSwiftプログラミング

こちらの本は少し残念な感じです。というのも多分この本が出版されてからiOSのバージョンが更新されました。そのため、この本の中に書かれているサンプルコードが最新のiOSに適応できていない状態です。しかし、アプリの開発に関しては先ほどの「超」入門よりも豊富に書かれています。

実際に買われた方はこちらを参考にしてください。

詳細!Swift iPhoneアプリ開発

 こちらは非常に細かくコードが書かれています。上の二つを読み込んだ後には非常に痒いところに手がとどく様で参考になりました。ページ数も多く解説やサンプルアプリの開発も細かい説明がされています。

iphone/ipadアプリケーション開発の教科書

一番、私のなかで信頼を寄せたのはこちらの本です。この本はサンプルアプリやコードの解説はそれほど多くないのですが、swiftとはどのような設計思想にのっとり作成されたのかや、iphone自体の考え方などが紹介されていて、まったくの素人にはアプリのバックグランドが理解できるので非常に参考になりました。

1ヶ月半触った感想

まだ、アプリ自体は完成していないので、今後も勉強していくのですが、現時点swiftに感じたことをまとめようと思います。

本はいろいろと呼んでコードもなんとなく慣れてきたのですが、まだまだ、サンプルコードに毛が生えた程度です。しかし、よくよくやってみるとC#とも大きく違い、他のjavascriptPHPなどとも何か違った感じを受けます。

swiftには  UIkitという機能があり、iphoneで表示するパーツ(スライダーやボタンなど)はあらかじめ設定されていて、開発者はそのパーツの内容を少し変える程度で機能します。C#にもvisual Studioなどがあるので、パーツは用意されているのですが、iOSの場合はよい多くの機能が1つのパーツに設定されているように感じます。

そう考えると、開発する側は少しのカスタマイズでアプリを開発できるような環境を作っている様に感じます。そのためアプリ開発のプラットフォームであるxcodeなどは非常に重たくなっています。特にディバック用のシミュレーションは古いMacでは起動が遅く対応できない状態です。

また、swiftの特徴なのかObjective-cからの特徴なのか、一つの関数などがとても長いです。これも、この関数などを読むだけで何を扱っているかがわかるようになっている感じがしました。誰にでも簡単にアプリ開発ができるような仕様になっているのではと感じています。

ただ、問題は他の言語からするとなんか違和感を感じることです。自分自身がプログラミングが初心者ということもあると思うのですが、その辺りがまだ慣れない部分ではあります。慣れると気持ちいいのかもしれませんが。

やっぱりiphoneはすごい

そして、つくづく感じたのはこれだけUIkitなどが充実していて、さらに少し前のMacなどでは起動が遅くなるほどの性能が、手のひらサイズのiphoneに詰まっているというところが驚愕しました。

たとえば、FacebookTwitterなどにシェアするためのコードも数行書くだけで実現します。