Noriyasu_Katano's blog

脳科学や量子力学、政治や戦争に関して、日々の感じた雑感を書いていきます。

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

http://www.flickr.com/photos/38972116@N00/132653073

photo by Michael Woodruff

なぜかこの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以降 完全対応】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

 

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

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

たのしいSwiftプログラミング
たのしいSwiftプログラミング―[iOS 8&Xcode 6対応]

たのしいSwiftプログラミング―[iOS 8&Xcode 6対応]

 

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

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

 

『たのしいSwiftプログラミング』正誤表 | HMDT Blog

詳細!Swift iPhoneアプリ開発

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

iphone/ipadアプリケーション開発の教科書
プロの力が身につく iPhone/iPadアプリケーション開発の教科書 Swift対応版

プロの力が身につく iPhone/iPadアプリケーション開発の教科書 Swift対応版

 

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

1ヶ月半触った感想

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

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

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

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

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

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

やっぱりiphoneはすごい

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

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

let controller = UIActivityViewController(activityItems: [imageView.image!], applicationActivities : nil)

self.presentViewController(controller, animated: true, completion: nil)

参考:絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

 やはり、iphoneがこの世界にもたらした革命はとてつもなく大きな革命なのかもしれません。

広告を非表示にする