Androidを触っていた人がiOSのOSやクラスライブラリの概要について本を読みました
「iOSもAndroidもスマートフォンなのだから、まあなんとか」と思って本を買って読み始めたところ、想像していた以上に違いがありそうで楽しそうですね、という感じでした。
iPhone・iPadとiOSについて
OSのバージョンごとに出てきた機能について
コピー&ペースト機能がついたのがiPhone OS 3.0だそうで*1、iPhoneが最初はコピー&ペーストに対応していなかったという話を見てすごい不思議な気持ちです。
また、Androidはシステムアプリだろうがサービスのアプリだろうがインテントフィルターが設定されていれば、インテントを投げて連携させられるような感じなので、Twitter連携, Facebook連携がOSの機能としてあるのも見ていて不思議な感じでした。
iOS 8.0以降の新機能について
App Extensions
新しいアプリ間連携の仕組みだそうです。
特に気になったのは、Action Extension
, Document Provider
, Share Extension
です。
触ることがあればまたまとめるのではないかなと思います。
iOSのアプリの単位をわかっていないので、この部分を読む前には設定ファイルのパラメータ読込みたいな扱いになるのだろうと想像していた部分もApp Extensionsとして紹介されていたため、結構驚いて読んでいました。
自分で想像している以上にAndroidや他のプラットフォームの考え方が染み付いてるのかもしれないです。
PhotoKit
一応写真共有サービスに携わる身なので、気になります...(苦笑)
2分割マルチタスク
iOS9のマルチタスク機能だそうで、「Slide Over」「Split View」「Picture in Picture」があります。
Androidでも次のバージョンで似たようなのが出ますね、と思って読んでみたら割と違いました。
- Slide Over
- Split View
- Picture in Picture
- 動画アプリで動画を再生しながらiPadで別の操作ができる機能です
- これ、そういうアプリを作ってはダメなの...? と思ったのは内緒です
iOSレイヤーについて
Cocoa Touchレイヤー
ボタンなどの部品や、iOSの機能を利用するために、アプリのユーザーインタフェースを作るためのクラスがいるレイヤーだそうです。
全然本筋とは関係ないかもしれないのですが、本の表などの「メールの送信」「連絡先の管理」のような一言説明だけを見るとUIKit, Address Book UI, Message UIは、ボタンなどのように画面に表示されユーザーの操作を受け付ける部品という趣旨のライブラリ以外にもUIとついているように見えます。
これに対し、iOS8.0以降で出てきたPhotoKit, CloudKitであったりにUIとついていないのが気になりました。
そこで、こちらのドキュメントを見てもう少し調べると、iOSアプリ全体で一貫したユーザー体験のために、標準システムの機能が利用できる場合は、可能な限り標準システムのUIを利用することを推奨しており、そのために利用されるクラスライブラリにUIがついているらしいことがわかりました。
Appleぽい!
Core ServiceレイヤーやCore OSレイヤーについて
Androidの場合、各レイヤーは階層構造になっていて、開発者は一番上のアプリケーション用のフレームワークレイヤーあるいはJava()を利用してコードを書いていくということになります。
少なくとも自分についてはAndroidを書いているときに、アプリケーションのレイヤーの下にこういうレイヤーがあって、下のレイヤーを叩いている、などと思いながらxmlやSQLiteを叩くコードは書いていたことがなかったな、と思いました。
なぜそういうことを意識したかと言いますと、iOSも似たような階層構造でレイヤーのスタックの絵がありまして。
その絵ではCore ServiceレイヤーがCocoa Touchレイヤーの下側にあるわけなのですが、勉強会でiOSの人がCore Dataをいじっていて辛い、とこぼしていたのを聞いたことがあって、下のレイヤーの方にあるクラスライブラリを直接意識するのかな、と思い出してました*2。
考えすぎでそんなに気にする必要はなく、とりあえず一つずつ覚えていけばいいのでしょう。
買った本について
iPhone/iPadプログラミングバイブル iOS9/Xcode7/Swift 対応 (smart phone programming bible)
- 作者: 布留川英一
- 出版社/メーカー: ソシム
- 発売日: 2015/10/27
- メディア: 単行本
- この商品を含むブログ (1件) を見る
とにかくUIのサンプルに多く当たりたくて上記の本を買ってみたのですが、お作法の問題であるとか、動かないサンプルがあるらしい問題であるとか、この本のサンプルをそれなりにちゃんと書くための参考書ないしドキュメントが必要かもしれなくて少しお財布が痛い...。