Objective-C + Xcode 4 で学ぶ iOS プログラミング入門

 図書館の本は古いので実際のチュートリアルには使えない事がわかったので、Amazon で古本を買ってみた。古本と言っても Xcode 4 なので、今の環境と大きくは違わないだろうと思った。

 iMac に入っていた Xcode は3.2だったので、App store から最新版をダウンロードした。Mountain Lion にしか対応していなかったらという不安があったが、かろうじて Lion でも動いてくれた。Mountain Lion は買ってあるのだが、移行が面倒で放置してあるWWW

 本の内容に沿ってXcodeを動かしてみたが、起動のオプション画面から違う。似たような名前のものを選んでやって進んでいくが、所々で説明と違うところがありタイムロスにつながる。自動で作られるテンプレートが違っているところがある orz…

 しかし、コードを入力してコンパイルした結果が表示されると楽しい。Xcodeには iPhone や iPad のシミュレータがあって、Mac 上で擬似的にコンパイルした結果を実行できる。これも純粋に楽しい。

本:iPhone SDK プログラミング大全

iphoneSDK 図書館で借りてみた。iPhone SDK と Objective-C の解説本。2009 年の本なので、iPad もないしiOS のバージョンも2だから、実際に今の iOS 6 向けのアプリ開発には使えないだろう。が、Objective-C の文法や開発環境については大きくは変わっていないだろうから、イマドキの開発環境をVBA for Excel しか知らない(それも深く使い込んでいるわけではない)元汎用機プログラマには参考になった。

 この本は、CやC++ の経験がある人向けのようだ。C++ の記述との比較で説明される。オブジェクト指向言語についての基礎知識がない人間には少しハードルが高いし、開発できるようにはならないだろう。

 Cobol や BASIC で育った人間には分からない作法が多く戸惑う。cobol の場合は変数の宣言は絶対だ。プログラムの中で一意でなければならない。Data division で宣言したものしか使えない(コンパイルエラー)。だから、サブルーチンの中で変数を宣言したり、ましてそれが異なるサブルーチンで同じ変数名が使われているなどというのは想像できなかった。後、変数の宣言と代入をひとつのステートメントでやるというのも、自分には読みにくかった。自分は、Cobol の癖で、VBA を書くときも、Dim は最初に置いている。途中で宣言することはしないし、いわば全てがグローバル変数みたいな使い方しかしていない。これは、汎用機のように固定長のテキストや数字のデータのやりとりしかしない場合にはいいかもしれないが、ひょっとしたら数百メガのムービーファイルとかを扱わなければならないかもしれないようなアプリには使えない。また、容量を確保できたとしても、データが予想より少ない場合には無駄だろう。動的にメモリを割り当てたり開放したりということが、特にモバイルでは重要だろうから、このような使い方を覚えるしかないのだろう。

 後、この本はオブジェクト指向についての解説はない。オブジェクトの意味やインスタンス、プロトコルの使い方は書いてあるが、「なぜそこで、インスタンスのメソッドなのか、オブジェクトのメソッドなのか」といった疑問には答えてくれない。

 ただ、ソースを見た時に「こういうことが書いてあんねんな」とは思えるようにはなった。買っていたら後悔必至だが、図書館で借りたのでオーライ。

iOS 7 は「ここ10年で最大の悪夢」となるのか?

 最終製品を見ないとわからないが、下のエントリには頷けることが多かった。「ユーザビリティを無視したデザイン変更」という意味では、前にとりあげた、Yahoo! Japan のトップページのリンクボタンもそうだ。絵なのかリンクボタンなのか全然わからない。そうやって情報をそぎ落とすことで他の情報が際立つとか見やすくなるとかがあればともかく、全然無い。単に情報が減ってボタンとわかりにくくなったこと以外、デザイナーの自己満足くらいしか得るものがない。

 操作に対するヒントを明示することは UI の基本だんじゃないのか。カッコ悪くてもいいから、一目瞭然で何をどうすればいいのか分かるデザインのほうが「良いデザイン」だと思う。事前に知識がないと操作できない DOS 機に対するアンチテーゼとして Macintosh が生まれたのに、それを自らが否定するような変更には残念だ。まあ、OS X 以降は UI は見栄え重視で使いにくくなったところも多々あるので、その延長上かも知れないが・・・

 iOS 7: ここ10年で最大の悪夢 | Ticking Point
ロック画面の “Slide to Unlock” や、そのときに着信すると表示される “Slide to answer” には、iOS 6時代には凹みの左端に右向き矢印のブロックがあって、何をスライドすればいいのか簡単に理解出来た。一方iOS 7では “Slide to Answer” という文字以外に何も表示されない。

どこをどうスライドさせろっていうんだ。「もうiOSの使い方は分かってるだろ」か? ふざけるなそんなのデザインじゃない。そんなにユーザは使い方を分かってるというなら、iOS 8では画面を真っ暗にして手探りで操作させろ。得意の「3歳児」も今と変わらず操作出来るだろうよ。元から何も分かってないんだからな。

「複雑性のなかに秩序をもたらす (bringing order to complexity)」とかいう曖昧な理念はどうでもいい。そのノリでくだらない会社のスローガンでも作ったらどうだ。結局のところ新しいデザインで何が改善される? 新しい「無意味な装飾」を生み出しただけじゃないか。しかも今回は深刻なユーザビリティの低下と一緒に。上の記事でiOS 6以前を「機能性の追求よりも売上の追求を優先した」デザインだと書いてるけど、それはiOS 7のほうだろ? 流行に取り残されない/ユーザを飽きさせないために行われた小手先のデザイン変更だよ。

iOS 7のアイコンは一般ユーザは高評価?

 興味深い結果だが、例示されている電話のアイコンは抽象化されたフラットデザインではなく、従来の延長上のアイコンをフラット化したものでしか無い。iPhone を電話として使う時に従来の電話の受話器で説明するというのは、今回否定したスキューモーフィックデザインの名残だ。そして、iOS 6 のアイコンのほうが良いとされたアイコンのうちゲームセンターとリマインダーは iOS 7 の真髄のようなデザイン変更だ。カメラは電話と同じような発想のデザインだが否定されいる。

 対象者が iOS 6 を使っているユーザだろうから、慣れのために、iOS 6 に似たデザインが好まれただけかもしれない。

批判や悪評の多いiOS 7のアイコン, しかし一般ユーザには圧倒的に好評 | TechCrunch Japan
iOS 7は、ブログや評論家やTwitter上などでは好悪両様の評価をされているが、でもInput Factoryが作ったモバイルの集票ツールPolarで行った消費者調査によると、一般ユーザにはきわめて好評である。たとえばシステムアイコンの好感度では、およそ2対1でiOS 7の方がiOS 6よりも好まれている(回答者総数46401)。

これらの数値はWWDCで発表されたiOS 7のすべてのアイコンに集まった票の総数を表しているが、おもしろいのは、単にiOS 7のアイコンが好きというだけでなく、こっちを選ぶという強い選好度を表していることだ。たとえば電話のアイコン(上図)では、80%がiOS 7を選び、残る20%が旧デザインを選んでいる。メッセージアプリのアイコンにいたっては、84%対16%でiOS 7の圧勝だ。

iOS 6はリマインダ、Safari、ゲームセンター、カメラ、電卓などでは勝っているが、でもそれらのiOS 7との差はいずれも微差だ。

iOS 7はまだ出てから間もないし、これまではOSの新バージョンに採用された新機軸に関しては賛否の分裂があった。FacebookのWebサイトやモバイルアプリの小規模なデザイン変更も、大騒ぎを巻き起こしたが、しかしFacebook上のユーザのエンゲージメントやユーザ数の増加率に、そのことが負の影響を及ぼすことはなかった。

今後もiOS 7のUIのデザイン、とくにアイコンをめぐっては、当分のあいだ激しい論争が続くだろう。でも今回の調査結果が示すのは、一般ユーザの多くが感じていることと、少数のうるさい連中の意見や批判とは、それぞれ別世界のものであることだ。Polarで投票した人たちの多くは、新デザインを断固支持しているようだ。今後もっと大規模で本格的な消費者調査をやっても、彼ら一般消費者に意見や感想を表現する機会を与えた場合の結果は、今回のPolarの結果とほぼ同じになるだろう、とぼくは感じる。

iPhone 5S は A7チップとデュアルLEDの搭載が確定?

 要素技術の進化と OS のアップデートか。もう完全に巡航状態だな。GALAXY S4 も期待ほどは売れていないらしいが、iPhone 5S は 5 からの買い替え需要はなさそうだ。2 年縛りが切れる 4S ユーザがどの程度機種変更するかがキーになるか。

 要素技術でも IGZO が搭載されれば強くアピールできるかもしれないが、シャープが iPhone の需要に応えられない(生産能力的、金額的)可能性があるのと、Apple がキーとなる要素技術を一社に依存することを嫌う可能性があることから難しそうだ。(以前、SAMSUNG に依頼していた A4 チップの生産量が予定を下回ったために iPhone 4 の販売が伸びなかったことがあった)。

 自分には関係ないとはいえ、iOS デバイスの更新はマカーにとっては楽しいネタだ。

iPhone 5Sの新たな実機写真が流出! A7チップとデュアルLEDの搭載が確定っぽい : ギズモード・ジャパン
プロセッサに刻印されたモデル番号は「APL0698」。 iPhone 5に搭載されたA6チップのモデル番号「APL0598」や第4世代iPad に搭載されたA6Xチップの「APL5598」と異なることから、今回搭載されたものが「A6」チップの修正版ではなく「A7」チップである可能性が高いと考えられます。

WWDC keynote speach watch 3(Folder, Control, Nortification)

iOS 7 のホーム画面でフォルダ内がスクロール出来るようになっていた。あまり話題になっていないが、これは嬉しい。iOS 4~6 ではフォルダには12個しか入らなかった。Jailbreak して便利さを実感した機能のひとつだった。これが、正式にサポートされることで脱獄へのモチベーションが減ることを意図したのかもしれない。

 Control center も、好意的に受け取られているようだ。電池の無駄遣いを防止するためにも Wi-Fi や Bluetooth は使わないときには切っておいたほうがいい。しかし、現在のように設定アプリを起動して・・・というのでは面倒だ。Control center のように設定画面を呼び出せたらこまめに設定の変更ができる。こちらも Jailbreak アプリでは実装されていた機能だ。

 Nortification center の拡張は微妙。iOS 6 にある Twitter や Facebook への投稿ショートカットや天気、株価などが消えている(設定できるのかもしれないが)。

 個人的には、サードパーティのアプリの機能を OS レベルに組み込むことはあまり好きではない。なので、iOS 7 のカメラが Instagram そっくりの機能を実装したことに拍手はできない。しかし、上に挙げたような機能については、OS 本来の機能の拡張であり、システムの安定性を損ないかねない部分での拡張なので、OS レベルに取り込まれるのは賛成だ。

WWDC keynote speach watch 1 (market share)

 見落としただけかもしれないし、例年 WWDC では行なっていなかったのかもしれないが、財務報告がなかったのは意外だった。ここ数年のキーノートといえば、「売上高最高」「利益最高」「保有現金最高」といった景気のいい数字が並んでいた。昨秋の iPhone 5、iPad mini、iPad 4 以降めぼしい新製品の発表がなく、Android との競争激化やパソコン市場の失速により財務状態が悪化したのか(といっても、競合他社とは比較にならないくらいいいが)。MacBook の売上の伸び率が高いと Windows PC との比較をしていたがかなり長期の比較だった。

 シェアの比較で、iOS はマイナーバージョンをまとめていたのに、Android についてはマイナーバージョン別に集計していた。ICS と Jerry Beans は Android OS 4 だ。ICS はすでに1年半前にリリースされたバージョンなので、最新OSのシェアとして入れるべきかどうかは議論が別れるところだが、4 と 4.1, 4.2 は iOS 5 と 6 ほどの差はない。

 また、二番目のシェアは二年前に発売された GingerBread だと言っているが、発売されるマシンは Jerry Beans が中心だし、開発も Jerry Beans をターゲットにしている。アプリのターゲットとして「Android 4.0 以降」としているものも多い。

 まあ、どこのメーカーでも自社に都合の良いことしか言わないと思っておいたほうがいいだろう。

禿同:Appleは、そろそろユーザーを大人扱いしてもいい頃だ

ios7 logo 自分にとって iOS に対する最大の不満がこれだ。iTunes store からしかアプリを変えないという枠組みは構わない。というより、もっと厳密にチェックして欲しいくらいだ。しかし、そこで十分なチェックをしたアプリをどう使うかはユーザにゆだねて欲しい。

 ウィジェットが置けるとかホーム画面のアイコンを任意の位置に置けるとかどうでもいい。フラットデザインにも興味を感じない。UX にとって重要なのは上っ面の絵ではない(一部ではあるが)。「」で見た Foursquareのボタン。これは従来のデザインだし、ここだけ日本語化されてない。画面的には問題のある UI と言える。しかし、UX の改善にとってこのボタンの意義は大きい。

 マカーが Mac OS を「使い易い」といって支持してきたのは表面上のデザインだけではない。UX の改善につながるのは、ここにとりあげられた API の開放だと思う。

Appleは、そろそろユーザーを大人扱いしてもいい頃だ | TechCrunch Japan

Appleはもうわれわれを大人扱いしてもいい。この会社がiOSでスマートフォンに革命を起こしたことに疑いの余地はない。しかし、iOSが年を重ねるにつれ、そのユーザーも年を重ね、初めてのスマートフォンユーザーは減っている。この、コンピューターをポケットにというアイデア自身が新しいものだった頃は、ユーザーの自由を奪っていたのもわかる。しかし、Appleがスキューモーフィックなデザインから、抽象化を高めたフラットデザインへとiOS 7で移行しようとしているのと同じように、オペレーティングシステムをどう使いたいかに関して、もう少しユーザーを信用し、権限を与えるべきではないだろうか。
続きを読む 禿同:Appleは、そろそろユーザーを大人扱いしてもいい頃だ

iPad mini Retina への準備は着々と:iOS 7デザインで移行ガイドをAppleが発行

iPsd mini 自分にとって興味深いのは下のリスト。iPad mini Retina は iOS 7 と同時リリースという予想は当たったようだ(秋になるまで分からないが)。文字の大きさやコントロールオブジェクトをピクセルでなく指定することで、画面の解像度が中途半端でも最適な物理的大きさのコントトールが可能になる。デバイスの大きさを考えてコードを書き直す手間を最小限に抑えられる。(もちろん、iPhone、iPad mini、iPad のように物理的大きさが異なる場合には違うデザインが必要だ)。

iOS 7のフラットデザインでアプリを開発するための移行ガイドをAppleが発行 | TechCrunch Japan
4.UI成分のサイズや位置をコード中で具体的に指定することをやめて、システム提供の値からそれらが自動生成されるようにする。レイアウトを変えたときにアプリが自動的に適応するためにAuto Layoutを使う(Auto Layoutの使い方は、Cocoa Auto Layout Guide)。
5.アプリ中の、UIKitコントロールやビューの寸法・スタイル等が変わるとレイアウトや外見が変わるような場所を見直す。たとえば、スイッチは幅が広いし、テーブルのグループにはインセットがなく、プログレスビューは前よりも薄い。個々のUI成分に関する詳しい情報は、Bars and Bar Buttons、Controls、Content Views、Temporary Viewsを見よ。
6.Dynamic Typeを使え。iOS 7では、アプリ内で今見ているテキストのサイズをユーザが調節できる。ユーザのそんなアクションにアプリが対応できるためには、Dynamic Typeを採用しなければならない。詳しくは、Using Fontsを。

WWDC 答え合わせ “可”

wwdc13-about-main[1] 昨日のエントリの答え合わせ。噂の大半は当たっていたようだ。自分の「IM の API 公開はない」という予想も、残念ながら、当たっていた。が、iOS 7 でマルチタスクが Apple 純正アプリ以外にも適用されるようになったのは朗報だ。iOS 7 のマルチタスキングは目覚まし時計アプリを目覚めさせるかもしれない。iOS 6 以前、Apple の時計アプリ以外には iPhone スリープ時には通知することしかできなかった(そんなもんで起きれるか!)。iOS 4 でマルチタスクが出来ると聞いた時に買った Alarm Clock を再インストールすることになるか?

うわさ 予想 結果
iOS 7 出る。リリースは秋
Mac OS X(Mountain Lion)の次バージョン 出る。リリースは冬


名前がネコ科ではなくなった。

iPhone 5S(or 6) 出ない
iPad 5 出ない
iPad mini 2 出ない
iPod シリーズ 出ない
MacBook の Haswell 化 出る。今後のすべての CPU は HAswell。ただし、発売は機種ごとに異なり未定


MBP の発表なし

MacBook Air Retina 出る。唯一の新製品ライン。個人的にはIGZOを搭載して欲しい。そうなったらシャープの株が跳ね上がる ×
Mac Pro 出ない。誰も待ってないんじゃない?

×

斜め上を行くデザイン

iMac Retina 出ない。高精細液晶の市況軟化待ち
iTV(Apple TV) 出る。セットトップボックスのリニューアル ×
iRadio 出ない。 ×
新 iTunes 出る。TVかRadioサービスが始まったら必ずアップデートされる

IM(キーボードアプリ)の API が開放されないのは予想通りだ。Scott のデザインは追放しても Jobs の亡霊には勝てないか。ただし、Scott が一人であのデザインを作ったわけではなく、みんな大好きな Jobs が承認したことを忘れているようだ。Jobs がキーノートで得意げにすきゅーもーふぉーふぃっく(Skeuomorphic)デザインのアプリを “Beautiful!” とか言っていたし、それを IT 関係のサイトではわっしょいしてた。