なぜかこの1ヶ月半Swiftを勉強している。友人が個人でプロヂュースしたアプリ「朗読と音」というのがあり、こちらのswift版を作成しないかというお誘いに軽くのった感じです。
iTunes の App Store で配信中の iPhone、iPod touch、iPad 用 朗読と音
はじめはUI部分だけを担当しようと思ったのですが、やはりswift自体が分からないと意味がないと感じたのと、若干iphoneアプリに興味があったので、勉強してみようと思い立ったのです。
そもそも、以前C#で自作で作ったwindowsのアプリがあり、このこともあったので、本職はWebデザイナーですが、プログラミングへの抵抗がありませんでした。
HTMLpublisherの詳細情報 : Vector ソフトを探す!
1ヶ月半参考にした著書
1ヶ月半勉強してみていろいろなことがわかりました。っといってもプログラミングに長けているわけでもなく、あまり知識ともに経験も薄く大した考えではないですが、共有したいと思います。
まずはこの1ヶ月半で読んだ参考書の紹介です。
iphoneアプリ開発「超」入門
絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】
- 作者: 高橋京介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/12/20
- メディア: 大型本
- この商品を含むブログ (3件) を見る
そもそも、swift自体は2014年4月に開催された「WWDC 2014」で公表されたばかりの言語です。なので、アプリもそうだと思いますが、本や参考サイトも乏しい状態です。多くの著書が基本的な仕様で止まっている感じです。できれば「逆引き」みたいな参考書があると非常に助かったのですが。
そして、こちらの本はiphoneでのアプリ開発の流れを紹介した本です。作成、プログラミングから、公開までの流れが詳しく書いてあるので、アプリ開発初心者にはとても参考になる本です。iOS7でも同じ本があるのですが、やはりswiftに対応しているのが良いと思います。
たのしいSwiftプログラミング
たのしいSwiftプログラミング―[iOS 8&Xcode 6対応]
- 作者: 木下誠
- 出版社/メーカー: ビー・エヌ・エヌ新社
- 発売日: 2014/10/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
こちらの本は少し残念な感じです。というのも多分この本が出版されてからiOSのバージョンが更新されました。そのため、この本の中に書かれているサンプルコードが最新のiOSに適応できていない状態です。しかし、アプリの開発に関しては先ほどの「超」入門よりも豊富に書かれています。
実際に買われた方はこちらを参考にしてください。
『たのしいSwiftプログラミング』正誤表 | HMDT Blog
詳細!Swift iPhoneアプリ開発
詳細! Swift iPhoneアプリ開発 入門ノート Swift 1.1+Xcode 6.1+iOS 8.1対応
- 作者: 大重美幸
- 出版社/メーカー: ソーテック社
- 発売日: 2014/12/13
- メディア: 単行本
- この商品を含むブログ (2件) を見る
こちらは非常に細かくコードが書かれています。上の二つを読み込んだ後には非常に痒いところに手がとどく様で参考になりました。ページ数も多く解説やサンプルアプリの開発も細かい説明がされています。
iphone/ipadアプリケーション開発の教科書
プロの力が身につく iPhone/iPadアプリケーション開発の教科書 Swift対応版
- 作者: 藤田泰介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/01/17
- メディア: 大型本
- この商品を含むブログ (1件) を見る
一番、私のなかで信頼を寄せたのはこちらの本です。この本はサンプルアプリやコードの解説はそれほど多くないのですが、swiftとはどのような設計思想にのっとり作成されたのかや、iphone自体の考え方などが紹介されていて、まったくの素人にはアプリのバックグランドが理解できるので非常に参考になりました。
1ヶ月半触った感想
まだ、アプリ自体は完成していないので、今後も勉強していくのですが、現時点swiftに感じたことをまとめようと思います。
本はいろいろと呼んでコードもなんとなく慣れてきたのですが、まだまだ、サンプルコードに毛が生えた程度です。しかし、よくよくやってみるとC#とも大きく違い、他のjavascriptやPHPなどとも何か違った感じを受けます。
swiftには UIkitという機能があり、iphoneで表示するパーツ(スライダーやボタンなど)はあらかじめ設定されていて、開発者はそのパーツの内容を少し変える程度で機能します。C#にもvisual Studioなどがあるので、パーツは用意されているのですが、iOSの場合はよい多くの機能が1つのパーツに設定されているように感じます。
そう考えると、開発する側は少しのカスタマイズでアプリを開発できるような環境を作っている様に感じます。そのためアプリ開発のプラットフォームであるxcodeなどは非常に重たくなっています。特にディバック用のシミュレーションは古いMacでは起動が遅く対応できない状態です。
また、swiftの特徴なのかObjective-cからの特徴なのか、一つの関数などがとても長いです。これも、この関数などを読むだけで何を扱っているかがわかるようになっている感じがしました。誰にでも簡単にアプリ開発ができるような仕様になっているのではと感じています。
ただ、問題は他の言語からするとなんか違和感を感じることです。自分自身がプログラミングが初心者ということもあると思うのですが、その辺りがまだ慣れない部分ではあります。慣れると気持ちいいのかもしれませんが。
やっぱりiphoneはすごい
そして、つくづく感じたのはこれだけUIkitなどが充実していて、さらに少し前のMacなどでは起動が遅くなるほどの性能が、手のひらサイズのiphoneに詰まっているというところが驚愕しました。
たとえば、FacebookやTwitterなどにシェアするためのコードも数行書くだけで実現します。
let controller = UIActivityViewController(activityItems: [imageView.image!], applicationActivities : nil)
self.presentViewController(controller, animated: true, completion: nil)
やはり、iphoneがこの世界にもたらした革命はとてつもなく大きな革命なのかもしれません。